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

InfoPath & SQL Server !

Archive for the ‘インターフェース’ Category

神戸三ノ宮で開催したアドミンティーチャーズの「ラボワーク LW03 – マルチファンクションシールドを使ったシフトレジスタとダイナミック点灯のプログラミング」

leave a comment »

「ラボワーク」と題してこの 2月から兵庫県神戸市中央区、JR三ノ宮駅近くの会議室を借りて勉強会をやっている。今回は 3回目で、実験用のマルチファンクションシールドを使ったプログラミンを体験した。

マルチファンクションシールドは Arduino UNO 用に作られた実験用シールドで、昔の言い方では「ドーターボード」と呼ばれる一種の拡張ボードだ。Arduino UNO のI/Oピンにあわせて作られているが、必要なピンだけジャンパケーブルでつなげば他のマイコンボードでも使える。

P1140072_mid_640_480

このマルチファンクションボードには 4つの 7セグメント LED チューブ、3つのボタン、4つの LED、ブザー、ポテンショメーター(ボリューム)がついている。これらの部品をマイコンボードでテストしようと思えばブレッドボードで回路を組んでもいいのだが、このように基盤に取り付けられていると簡単に実験できる。ラボワークではマルチファンクションシールドと Arduino UNO、Digispark などを人数分用意した。

P1130534_mid_640_480

Arduino UNO でマルチファンクションシールドを使うには、そのまま上に載せればいい。

P1130543_mid_640_480

Arduino UNO を使う場合は上に載せるだけだが、Digispark で使う場合は次のように 5本のジャンパワイヤーで接続する。3本はデータ送信用、2本は電源供給用だ。

P1140074_mid_640_480

P1130536_mid_640_480

Digispark は前回のラボワークではオンボードの LED をコントロールしただけだったので加工の必要がなかったが、今回のようにジャンパワイヤーで I/O を接続するには I/O ピンをはんだ付けしなければならない。I/O ピンがついていない Digispark のためにはんだごてを用意した。

P1130538_mid_640_480

プログラミングは各自のコンピュータで Arduino IDE を使って行った。プリントを用意してサンプルコードを簡単なものから実用的なものまで用意して体験した。

P1130546_mid_640_480

マルチファンクションシールドには 4つの 7セグメント LEDチューブが載っている。この LEDチューブはシフトレジスタ 74HC595を介して接続されている。74HC595は汎用シフトレジスタで、3本のコントロール信号でシリアル信号を8ビットのパラレル信号に変換することができる。マルチファンクションシールドにはこの 74HC595が 2つ搭載されており、ひとつは 7セグメントの形を決め、もうひとつは出力する LEDを決める。

シフトレジスタの使い方とダイナミック点灯の概念を理解するサンプルコードを用意し、LEDチューブの形と点灯させるチューブの選択、ビットパターンの関係を表にしてイメージできるようにプリントを用意した。

P1130548_mid_640_480

P1130542_mid_640_480

「ラボワーク」は毎月第一土曜日の夜やっている。次回は 5月7日(土)の夜、19:00から。詳細は「アドミンティーチャーズ」の Webで。

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

アドミンティーチャーズの「ラボワーク LW01 – Netduino で Lチカプログラミング」

leave a comment »

「アドミンティーチャーズ」は教育の情報化や情報教育、校務の情報化に携わる教職員対象の勉強会で、このたびは「ラボワーク」と名付けて、マイコンボードや電子回路を自由に体験するというスタイルで企画された。

「ラボワーク LW01 – Netduino で Lチカプログラミング」の報告

P1110024_mid_640_480

Netduino は内部で .NET Micro Framework が動き、Visual Studio を使って C# のプログラミングができるマイコンボードだ。実際に Visual Studio で開発するためには、SDK などいくつかの追加モジュールをセットアップする必要がある。このラボワークでは、Arduino の典型的なループを使った「L チカ」プログラミングと同じアルゴリズムで C# のコードを書いて比較し、また Netduino で別スレッドで実行する 2 つの「L チカ」プログラミングのデモをした。

P1110012_mid_640_480

Netduino や Arduino は受け取った電圧変化をディジタル変換するアナログ入力の A/D ポートを標準で持っている。このアナログ入力ポートの動作を確かめるために、まずボリュームで電圧変化を与えて A/D 変換をし、次に距離センサーを使って距離の測定ができることを確かめた。

P1110004_mid_640_480

そのほかブレッドボードを使った回路実験や 7 セグメント LED、バー型 LED、マトリックス型 LED などの使い方、Arduino の亜種や類似のマイコンボード、組み込み実装用の Arduino Pro Mini などの紹介もした。

この「ラボワーク」は今後も毎月第一土曜日に兵庫県の神戸市、三ノ宮で行うことを考えている。次回の計画は月半ばにアドミンティーチャーズのサイトで案内することとする。

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

興味のある方はぜひご参加ください。

秋月電子通商が販売するKm2Net Inc.のディジタルUSBインタフェース Km2Net USB-IO2.0(AKI)を試す

leave a comment »

Km2Net USB-IO2.0(AKI)はKm2Net Inc.のディジタルUSBインタフェースで秋月電子通商が販売している。これは汎用ディジタル入出力12ピンを持ち、USB-2.0接続、動作電力はUSBから供給するので独自電源不要、600milソケット対応なのでブレッドボードでの実験がしやすい、HIDデバイスとして認識されるのでドライバが不要、Visual Studio による VB のサンプルプログラムが添付されている、などの特徴がある。

IMG_2645_mid_640_480

<Fig.1 : Km2Net USB-IO2.0(AKI) のパッケージをあけたところ>

パッケージには Km2Net USB-IO2.1(AKI) の本体と、600mil 対応のピンが入っている。使うには工作が必要だ。まずはこれらのピンを Km2Net USB-IO2.1(AKI) の本体にはんだ付けしよう。

IMG_2646_mid_640_480

<Fig.2 : Km2Net USB-IO2.1(AKI) の本体と 600mil 対応のピン>

添付のピンのうち、L字型に曲がったピンは6列だが、Km2Net USB-IO2.1(AKI) の本体には5列のピン穴がある。ペンチかニッパーでピンを1列外そう。

IMG_2647_mid_640_480

<Fig.3 : L字型のピンを1列外す>

また Km2Net USB-IO2.1(AKI) の本体には両側にディジタル入出力のピン穴がそれぞれ7列ずつあるので、添付のピンを切り離し7列のピンを2つ作ろう。

IMG_2648_mid_640_480

<Fig.4 : 7列のピンを2つ作る>

切り離した7列のピンをブレッドボードに挿してみる。これを本体にはんだ付けするのだが、ピンが曲がってブレッドボードに挿せなくなることも考えられるので、このままはんだ付けすることにする。

IMG_2649_mid_640_480

<Fig.4 : 7列のピンをブレッドボードに挿してみる>

IMG_2650_mid_640_480

<Fig.5 : ブレッドボードに挿した7列ピンの上に Km2Net USB-IO2.1(AKI) の本体を乗せる>

この状態ではんだ付けをすると、熱でブレッドボードが痛む可能性がある。はんだ付けは手早く、確実にしよう。

IMG_2651_mid_640_480

<Fig.6 : Km2Net USB-IO2.1(AKI) の本体に7列ピンをはんだ付けした>

次に5列のL字型ピンをはんだ付けする。これは基板裏側からのはんだづけになる。

IMG_2654_mid_640_480

<Fig.7 : Km2Net USB-IO2.1(AKI) の本体に5列のL字型ピンをはんだ付けする>

Km2Net USB-IO2.1(AKI) の本体には Visual Studio のサンプルプログラムがついている。言語は Visual Basic だ。本体をブレッドボードに取り付け、J1-0入力に LED を取り付ける。Visual Studio を起動し、サンプルプログラムを動かす。

Km2Net_002

<Fig.8 : Km2Net USB-IO2.1(AKI) のサンプルプログラムを起動する>

「入出力状態」の左端「0」をクリックすると接続した LED が点いたり消えたりする。

IMG_2655_mid_640_480

<Fig.9 : Km2Net USB-IO2.1(AKI) のJ1-0に取り付けた LED が消えている>

Km2Net_001

<Fig.10 : Km2Net USB-IO2.1(AKI) のサンプルプログラムを起動して左端の「0」をクリックして赤色に変える>

IMG_2656_mid_640_480

<Fig.11 : Km2Net USB-IO2.1(AKI) のJ1-0に取り付けた LED が点いた>

このように、実に簡単にUSBインタフェースを使えることがわかった。これを使って様々なディジタルデバイスをコンピュータからコントロールできるだろう。

Arduino UNO と XBee で双方向無線通信のテストをする。

with one comment

Arduino に XBee を取り付けると、シリアル通信を無線化することができる。シリアル通信は双方向に送受信できるので、PC側から XBee によってデータを送り、Arduino で受け取ったデータを判断して結果を返す、という実験をする。

Arduino と XBee はあらかじめ設定しておく。通信の対になる XBee も設定しておき、通信できる状態にする。一方の XBee は XBee Wireless プロトシールドで Arduino に載せ、もう一方の XBee はXBee USB アダプターで PC に接続する。

Arduino_XBee_双方向通信_003_IMG_6553_mid_640_480

<Fig.1 : XBee を載せた Arduino と USB アダプターで PC に接続した XBee>

Arduino のスケッチは次のようなものだ。シリアルポートから受け取ったデータを数値に変え、値が正か負かゼロかを判断している。受け取った値が正なら「It is bigger than 0」、値が負なら「It is smaller than 0」、値がゼロなら「It is the same as 0」の文字列を送る。

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

int i = 1;
void setup()
{
  Serial.begin(9600);
}
void loop()
{
  while (Serial.available() > 0) {
    int i = Serial.parseInt();
    if (i > 0) {
      Serial.print("It is bigger than 0");
      Serial.print("\n");
      }
    if (i < 0) {
      Serial.print("It is smaller than 0");
      Serial.print("\n");
    }
    if (i == 0) {
      Serial.print("It is the same as 0");
      Serial.print("\n");
    }
  }
}

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

Arduino_XBee_双方向通信_002

<Fig.2 : 双方向通信をテストするArduinoのスケッチ>

スケッチを Arduino に書き込んだら PC から切り離して XBee Wireless プロトシールドで XBee を載せ、別電源を使って USB に給電して動かす。次に PC に XBee を載せた XBee USB アダプターを接続し、XBee でシリアル通信を行う。シリアル通信には X-CTU を使ってみる。

X-CTU を起動したら Terminal タブを開き、シリアル通信を行う。正の数や負の数、ゼロを送信し、正しい結果が返ってくることを確かめる。Arduino を PC から離し、どの程度の距離まで通信するか、障害物があれば通信が途絶えるか、などを確かめる。

Arduino_XBee_双方向通信_001

<Fig.3 : X-CTU を使った XBee 無線シリアル通信のテスト>

Written by Yoshio Matsumoto

2014年1月18日 at 2:30 PM

Microsoft Surface RTにCreative CB2530 Bluetoothステレオヘッドフォンを接続して音楽を楽しむ。2005年に発売されたベッドフォンも使うことができる。

leave a comment »

Creative CB2530 Bluetoothヘッドフォンは2005年に発売された、Bluetoothヘッドフォンとステレオミニプラグで音楽プレイヤーと接続するBluetoothトランスミッターのセットだ。このヘッドセットの利用シーンとしては、Bluetoothでないパソコンやオーディオ機器にトランスミッターを接続し、無線で接続するというものだが、もちろんBluetooth規格になっているのでBluetooth対応のパソコンなどで直接接続することもできる。Bluetoothのバージョンは不明だが、Bluetooth 2.0のリリースが2004年11月のようなのでおそらく2.0だろう。

IMG_0390_mid_640_480

<Fig.1 : Creative CB2530 Bluetoothステレオヘッドフォン>

IMG_0391_mid_640_480

<Fig.2 : Creative CB2530 BluetoothステレオヘッドフォンのBluetoothロゴマーク>

IMG_0392_mid_640_480

<Fig.3 : Creative CB2530 Bluetoothステレオヘッドフォンの製品番号ラベル>

IMG_0393_mid_640_480

<Fig.4 : Creative CB2530 Bluetoothステレオヘッドフォンの電源スイッチ>

Creative CB2530 Bluetoothステレオヘッドフォンには多くのBluetooth機器にあるペアリングのボタンがない。電源スイッチを入れるとペアリングが働くようになっている。

IMG_0395_mid_640_480

<Fig.5 : Microsoft Surface RTでBluetoothデバイスの追加を行う>

Creative CB2530 Bluetoothステレオヘッドフォンの電源スイッチを入れたらMicrosoft Surface RTに近づけ、Bluetoothのアイコンをクリックして「Bluetoothデバイスの追加」を行う。

IMG_0396_mid_640_480

<Fig.6 : Microsoft Surface RTのBluetoothデバイスの追加画面>

「デバイスの追加」メニューが出たら「+」をクリックする、するとMicrosoft Surface RTはBluetoothデバイスを検索し始める。

IMG_0397_mid_640_480

<Fig.7 : Microsoft Surface RTがBluetoothヘッドセットCB2530を検出した>

デバイスを検出したら、検出した「CB2530 Bluetoothヘッドセットのアイコンをクリックし、設定を次へすすめる。

IMG_0398_mid_640_480

<Fig.8 : Microsoft Surface RTがCB2530 Bluetoothデバイスを接続中>

IMG_0401_mid_640_480

<Fig.9 : Microsoft Surface RTがCB2530のデバイスを追加>

IMG_0404_mid_640_480

<Fig.10 : Microsoft Surface RTにBluetoothヘッドフォンを接続しSlapp Happyのアルバムを聴く>

最初にも書いたが、このヘッドフォンは2005年の製品でずいぶん古いものだが、Microsoft Surface RTで使うことができる。このようにパソコン用の周辺機器との互換性があるところがSurface RTの利点といえる。

Microsoft Surface RT用の日本語タッチカバーとタイプカバーを使う

leave a comment »

俺のSurface RTは日本で発売される前に知人から米国製のものを譲り受けたので、US版のタッチカバーだった。日本語入力にUS版キーボードは全く支障がないが、あえて日本語キーボードを買ってみた。

IMG_0264_mid_640_480

<Fig.1 : Microsoft Surface RT用日本語タッチカバー>

IMG_0266_mid_640_480

<Fig.2 : Microsoft Surface RT用日本語タッチカバー>

IMG_0267_mid_640_480

<Fig.3 : Microsoft Surface RT用日本語タイプカバー>

IMG_0269_mid_640_480

<Fig.4 : Microsoft Surface RT用日本語タイプカバー>

製品名をあえて「キーボード」とせずに「カバー」としているのは、あくまでもSurface RTにとっては専用カバーがキーボードにもなっている、というコンセプトだ。特にタッチカバーは薄く軽く、ほんとうにキーボードを意識させないものだ。

それに比べてタイプカバーは厚さ重さをやや犠牲にしながら入力しやすいものに設計されている。こちらは「カバー」というより「キーボード」と言ってもいいだろう。それでも薄い。軽い。また見た目からはキーボードとして頼りなげだが、実際に入力してみると意外にストロークがしっかりしている。さすがだ。

IMG_0375_mid_640_480

<Fig.5 : Microsoft Surface RT用日本語タイプカバーの接写>

タッチカバーより厚い、重い、といってもその差は小さい。文字入力を必要とするシーンが多いならば、迷わずタイプカバーを選択するべきだ。

もちろん普段はタッチカバー、必要なときにタイプカバーと使い分けるのもいい。タイプカバーは今のところブラック一色しかないが、タッチカバーはブラック、ホワイト、マゼンタ、シアン、の4色がラインナップされている。Surface RT本体が黒なので、カバーだけ他の色では合わないだろうと思ったが、実際にブラック以外のタッチカバーを付けたSurface RTを見ると全く印象が違い、なかなかいいと感じた。全色揃えたいと思わせられる。