ホチキス先生の「プログラマーと呼ばれたい」

InfoPath & SQL Server !

Posts Tagged ‘アルドイーノ

小学校でマイコンボードの体験会をする。いわゆるLチカの発展形。

leave a comment »

P1460655_mid_640_480

明日は小学校で子供たちにマイコンボードの体験コーナーをする。短い時間で低学年から高学年までの子供たちに楽しさを伝えるために工夫をする。いわゆる「Lチカ」をベースに。

たとえば小学校の高学年、5年生と6年生対象なら、パソコンを使って簡単なプログラミングをすることができるかもしれない。それにしてもある程度のまとまった時間が必要だし、パソコンなど機材を準備しなければならない。

10分程度の短い時間で、小学校1年生から6年生までの幅広い子供たちにマイコンボードや電子工作の楽しさを伝えるにはどうすればいいか。そこにはいろんな工夫の余地がある。

子供たちの輝く瞳を見たい。だから教育は面白い。

「ラボワーク LW13 - Arduino UNO と Netduino 3 で リレーを駆動して DC モーターを制御する」の報告

leave a comment »

今回のラボワークでは、マイコンボード用のリレーユニットを使い、DCモーターを制御した。マイコンボードは Netduino 3  と Arduino UNO R3 のクローンを使い、リレーユニットは4回路と8回路のものを使った。

P1460386_mid_640_480

DC モーターは電圧 3 ~ 6V の模型用の安価なものを用い、端子にはあらかじめ短いリード線を半田付けしておく。リード線の端には錫メッキ線を半田付けし、熱収縮チューブで多いブレッドボードに挿し込むことができるように加工しておいた。

P1460390_mid_640_480

リレーユニットはマイコンボードなどで使うことを想定した、4回路と 8回路のものを使った。どちらも同じように利用できた。リレーユニットの駆動電流はそれほど多くなく、マイコンボードの I/O 端子の出力で十分駆動できた。前回、NPN エピタキシャル・ダーリントン・トランジスタ TIP120 を使った駆動実験をしたが、安定した駆動には 6V 程度の動作電圧が必要だったが、リレーユニットを使う方が簡単でよい結果となった。

P1460398_mid_640_480

「ラボワーク LW05 – Netduino 3 と 38 種類のセンサキット体験」の報告

leave a comment »

今年2月から兵庫県神戸市の三ノ宮駅近くの会議室を借りてやっているマイコンボードの勉強会「ラボワーク」は今月で5回目となった。今回から本格的に Netduino を使うことにした。Netduino は Arduino UNO とI/Oピンコンパチブルのマイコンボードで、Microsoft の .NET Micro Fremework が動いており Visual Studio を使って C# をプログラミング言語として開発することができる。安価で手軽に使いやすい Arduino と C# の充実したライブラリを利用できるパワフルな Netduino の両方を取り上げることで、マイコンボードの活用の幅も広がると考えている。

P1160929_mid_640_480

今回は 38 種類のセンサーキットを試した。センサーキットを試すには、アナログポートで入力した値を取得して何かの形で表示しなければならない。そこで 4本の LED チューブを備えたマルチファンクションシールドを利用した。マルチファンクションシールドはラボワークの第3回で使ったことがあり、シフトレジスタを介して LED チューブをコントロールするようにできている。そこでアナログポート A5 からの入力値をダイレクトに数値で表示するサンプルスケッチを用意し、ボリュームをつないで確認した後に様々なセンサを取り付けて試した。

P1160933_clip_640_480

P1160936_mid_640_480

このセンサーキットには、キースイッチ、ロータリーエンコーダスイッチ、タッチセンサ、距離センサ、サウンドセンサ、人感センサ、レーザーセンサ、磁気センサ、磁気リードセンサ、磁気ホールセンサ、温度センサ、赤外線センサ、傾きセンサ、衝撃センサ、水銀センサ、心拍センサ、炎センサ、リードセンサ、光ブロークンモジュール、ジョイスティックモジュール、フォトレジスタ、バイブレーション、ブザー、フルカラーLED、点滅LED、5Vリレーモジュール、などが入っている。似た機能のセンサやアクチュエータが複数あり、どんなセンサなのか想像しがたいものもある。実際に使っても反応がわからないものもあった。またフルカラー LED のようにセンサではないものもあったが、それらは今回テストしなかった。

P1160932_mid_640_480

P1160937_mid_640_480

P1160939_mid_640_480

P1160944_mid_640_480

今回のラボワークでは、様々なセンサを体験しながら、それらをどう使うかという利用シーンについてもディスカッションができた。またアクチュエータについても試したいという希望もあった。次回以降、またこれらの結果をふまえてラボワークの企画を作っていく。興味のある方はアドミンティーチャーズのサイトから電子メールで申し込みをしてください。

アドミンティーチャーズ
https://adminteachers.wordpress.com/

アドミンティーチャーズの「ラボワーク」、第5回は「Netduino 3 と 38 種類のセンサキット体験」をする。

leave a comment »

今年2月から毎月第一土曜日と決めて神戸三ノ宮の会議室を借りてやっているアドミンティーチャーズの「ラボワーク」。第5回は「Netduino 3 と 38 種類のセンサキット体験」をする。

38 種類のセンサは、キースイッチ、ロータリーエンコーダスイッチ、タッチセンサ、距離センサ、サウンドセンサ、人感センサ、レーザーセンサ、磁気センサ、磁気リードセンサ、磁気ホールセンサ、温度センサ、赤外線センサ、傾きセンサ、衝撃センサ、水銀センサ、心拍センサ、炎センサ、リードセンサ、光ブロークンモジュール、ジョイスティックモジュール、フォトレジスタ、バイブレーション、ブザー、フルカラーLED、点滅LED、5Vリレーモジュール、などだ。似た機能のセンサやアクチュエータが複数あり、どんなセンサなのか想像しがたいものもある。今回はセンサキットを買っただけで使っていない。ぶっつけ本番の、まさに「ラボワーク」だ。

P1160745_mid_640_480

また今回から再び Netduino を取り上げる。Arduino と Netduino の両方でプログラミングをする。Netduino はモデルチェンジをしており、Netduino 2 から Netduino 3 となっている。Netduino 3 では I/O ポートが独立したコネクタでボードの片端にまとめられているのでセンサなどを接続しやすい。

P1160846_mid_640_480

P1160848_mid_640_480

第5回ラボワーク「Netduino 3と 38 種類のセンサキット体験」の詳細は、アドミンティーチャーズの Web サイトで。

アドミンティーチャーズ
https://adminteachers.wordpress.com/

アドミンティーチャーズ「ラボワーク LW05 – Netduino 3 と 38 種類のセンサキット体験」
https://adminteachers.wordpress.com/2016/06/03/%e3%83%a9%e3%83%9c%e3%83%af%e3%83%bc%e3%82%af-lw05-netduino-3-%e3%81%a8-38-%e7%a8%ae%e9%a1%9e%e3%81%ae%e3%82%bb%e3%83%b3%e3%82%b5%e3%82%ad%e3%83%83%e3%83%88%e4%bd%93%e9%a8%93/

<概要>

日時:2016年6月4日(土)19:00~20:00
場所:神戸市青少年会館 サークル4号室(6階)
        (前回の勤労会館と同じ建物です)

神戸市中央区雲井通5丁目1番2号
最寄駅は三宮(JR、阪神、阪急、神戸市営地下鉄)徒歩2分から5分
神戸市勤労会館へのアクセス

対象:高等学校の情報教員、または情報教育に関心のある方
定員:15名
申し込み:電子メール

宛先 ad-teachers@outlook.com
件名 「2016年6月4日 ラボワーク LW05 申し込み」
メールの本文にご氏名、所属をお書きください。

アドミンティーチャーズのラボワーク LW04 「W5100 イーサネットシールドを使ったWebサービスのプログラミング」の報告

leave a comment »

今年2月から毎月第一土曜日と決めて神戸三ノ宮の会議室で行っているマイコンボード勉強会「ラボワーク」。5月は「W5100 イーサネットシールドを使ったWebサービスのプログラミング」をテーマにした。

P1100979_clip_640_480

このイーサネットシールドは Arduino の事実上のデファクトスタンダードなイーサネットシールドで、Wiznet の W5100 チップが使われている。Arduino IDE 開発環境で標準でライブラリが用意されているのでプログラミングもしやすい。

このイーサネットシールドを使って Web サービスを実装するには次のようにする。

———————————————————————————

void setup() {
  Ethernet.begin(mac,ip);
  server.begin();
}

void loop() {
  EthernetClient client = server.available();
}

———————————————————————————

たったこれだけで Web サービスが動く。あとは受け取ったデータを解析し、適切な HTML テキストをクライアントに返すだけだ。

クライアントに対してテキストを送り返すには次の一行でいい。

———————————————————————————

  client.println("This is my web");

———————————————————————————

ただこれを単に void loop() に書くだけでは、ひたすら際限なく同じテキストをクライアントに送り続けることになる。そこでクライアントから接続要求があったときに、テキストを一回だけ送るという処理が必要になる。

たとえば次のスケッチは接続要求のキャラクタを文字列につなぎ、文字列に「GET」があれば HTML のリクエストだと判断し、一回だけテキストを返してサービスを終了する。

———————————————————————————

void loop() {
  EthernetClient client = server.available();
    if(client.connected() == 1){
    c = client.read();
    stc.concat(c);
    if(client.available() == 0){
      Serial.println(stc);
    }
  }
  if(stc.indexOf("GET") != -1 && client.available() == 0){
    client.println("This is my web");
    client.stop();
    stc = "";
  }
}

———————————————————————————

これでクライアントから接続すると「This is my web」の文字がブラウザに表示される。正しい HTML 文ではないが、表示されるはずだ。

クライアントからの要求が POST メソッドだったときは、受け取ったテキストを解析して必要な処理をさせることができる。たとえば HTML 文にチェックボックスとボタンを用意して、8 x8 マトリックス LED をコントロールするようなこともできる。

P1160747_mid_640_480

P1160639_mid_640_480

しかし、メモリの制約だと思われるが、あまり長い HTML テキストを送ることや POST メソッドも長いメッセージを受け取ることができない。そこで、HTML テキストは SD カードに保存しておき逐次読みだして送信することを考えなければいけない。また POST メソッドも不要なテキストを削除して処理する必要がある。

イーサネットシールドになぜ SD カードスロットが付いているのかが疑問だったが、実用的な Web サービスを構築するには長い HTML テキストを処理する必要があるからだ、ということがよくわかった。

Arduino と Web サービスは今後も「ラボワーク」でとりあげることにする。無線ネットワークもやってみたい。わかったことの詳細は、また別途項を改めて報告したい。

今週末は神戸三ノ宮でアドミンティーチャーズのラボワーク。ArduinoでWebサービスをプログラミング。

leave a comment »

今週末は連休の後半だが、5月7日(土)に神戸三ノ宮でアドミンティーチャーズのラボワーク第4会をやる。今回のテーマは「Webサービス」だ。使うのは WIZnet の TCP/IP ハードウェア処理チップ W5100 を使った Arduino UNO 用の定番イーサネットシールドだ。

アドミンティーチャーズ「ラボワーク LW04 – W5100イーサネットシールドを使ったWebサービスのプログラミング」
https://adminteachers.wordpress.com/2016/04/18/%e3%83%a9%e3%83%9c%e3%83%af%e3%83%bc%e3%82%af-lw04-w5100%e3%82%a4%e3%83%bc%e3%82%b5%e3%83%8d%e3%83%83%e3%83%88%e3%82%b7%e3%83%bc%e3%83%ab%e3%83%89%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%9fweb/

p1140109_clip_640_480

Arduino には、このイーサネットシールドを使って TCP/IP 通信をするライブラリが提供されている。このライブラリを利用すると簡単に TCP/IP 通信をするプログラムを作ることができる。Web サービスのサンプルコードも提供されており、簡単に Web サーバーを作ることができる。

Web サーバーを作るだけでなく、プログラム上で TCP/IP 通信のデータを見ると、Web サービスでどんなデータがやりとりされているかがわかる。すると単に決まった固定の HTML テキストを返すだけでなく、I/O ポートから受け取ったデータを返すことや、POST メソッドで受け取ったデータをどう処理すればいいかが理論的に理解できる。

このように今回の実習では、単に実用的な Web サービスを作るだけでなく、HTTP 通信の中身を明らかにすることもラボワークの目的とする。まさに「ラボ」という言葉にぴったりの時間にするように企画している。

3月5日(土)、神戸三ノ宮で行った「ラボワーク LW02 – Digispark 切手大の小さい Arduino を使う」

leave a comment »

アドミンティーチャーズ「『ラボワーク LW02 – Digispark 切手大の小さい Arduino を使う』の報告」
https://adminteachers.wordpress.com/2016/03/28/%e3%80%8c%e3%83%a9%e3%83%9c%e3%83%af%e3%83%bc%e3%82%af-lw02-digispark-%e5%88%87%e6%89%8b%e5%a4%a7%e3%81%ae%e5%b0%8f%e3%81%95%e3%81%84-arduino-%e3%82%92%e4%bd%bf%e3%81%86%e3%80%8d%e3%81%ae-2/

今回の「ラボワーク」では、参加のみなさんがご自分のパソコンをお持ちになったので、実際に環境を整えたりスケッチを書いたりという実践的な実習ができた。とてもよかった。今回の「ラボワーク」では、次のようなことをした。

・切手大の Arduino の亜種といえる Digispark を使ってみる。
・Arduino IDE で Digispark を開発するための環境を整える。
・Digispark と PC 間のインタフェースについて知る。
・Arduino IDE を使って簡単な「Lチカ」プログラミングをして Digispark を動かす。

Digispark は USB インタフェースの形状が異なるものを 2種類用意した。ひとつはむき出しの USB コネクタがボード上に形成されているもので、もうひとつはボードにマイクロ USB コネクタが付いているも。むき出し USB コネクタのものはケーブル不要で直接パソコンに挿すことができるので便利だ。どちらの Digispark も中身は同じ。

Digispark は Arduino IDE で開発することができるが、Digispark 用のボードマネージャーを適用する必要がある。ここで現在、Digispark 開発用に提供されているボードマネージャーが、Arduino IDE のバージョンによっては動かないという現象がある。Windows 用の Arduino IDE では、1.6.5 では正しく適用されることがわかっているので、異なるバージョンの Arduino IDE を使っている方には 1.6.5 をインストールしなおしていただき、その後 Digispark 用のボードマネージャーを適用していただいた。

Digispark は他の Arduino と異なり、パソコンとのインタフェースは USB – シリアル変換ではない。パソコンからは Digispark はキーボードやマウスと同様の HID (Human Interface Device) として動作する。したがって固有のデバイスドライバを導入する必要がなく、標準の HID ドライバが適用されればいい。スケッチを導入するには、まず Arduino IDE で「マイコンボードに書き込む」ボタンを押してから USB に Digispark を挿す。Digispark は通電後、数十秒間はプログラム転送モードになり、その間にスケッチが導入される。スケッチの導入が終われば自動的にリセットし、プログラムが動き始める。

Digispark にはオンボードで LED が 1個ついているので、スケッチでオンボードの LED を点滅させるスケッチを作って確かめた。点滅速度を変更したり、PWM でフェードイン、フェードアウトの光らせ方を体験したりした。

次回は 4月2日(土)。テーマはプログラミングとし、シフトレジスタでコントロールする LED チューブの点灯と、ダイナミック点灯のプログラミングを考えている。前回同様 12 名の定員の小さな会議室を予約しているので、希望の方は早めに申し込んでください。数日中にアドミンティーチャーズのサイトで告知します。

アドミンティーチャーズ Web
https://adminteachers.wordpress.com/

P1120096_mid_640_480