2012年1月22日日曜日

NanoBoardAGで2つのモータを動かす

前回NanoBoardAGWithMotorsHelloBoardなのぼ〜どをつないでモータが動くかどうか実験をしましたが、今回は、2つのモータを同時に動かすことが出来るかという実験をしてみました。

この実験には、以前に作成したHelloBoard用モータドライバモジュールを使おうと思ったのですが、これには設計上の問題があることがわかっています。このモジュールでモータを動かすことはできるのですが、センサボードに過度な負担をかけてしまうのです。また、PWMによるパワーコントロールにも対応していませんでした。今回の実験では、このモータドライバモジュールを設計し直すことを目標として、動作確認をすることにしました。

はじめに、HelloBoardで実験をしました。モータAをTA7291SG(モータA用)の3番と7番ピンに接続します。HelloBoardの「D3.PWM」をTA7291SG(A)の8番ピン(制御電源=Vref)につなぎ、「D2」と「D7」を9番と1番ピンにつなぎました。次に、モータBをTA7291SG(モータB用)の3番と7番ピンに接続します。HelloBoardの「D9.PWM」をTA7291SG(B)の8番ピン(制御電源=Vref)につなぎ、「D8」と「D12」を9番と1番ピンにつなぎました。そして、両方のTA7291SGの2番ピン(ロジック電源=Vcc)を「5V」に接続し、そこからさらに抵抗を介して6番ピン(出力電源=Vs)に接続しました。最後に、両方の5番ピンを「GND」に接続して終了です。

この状態で、両方のモータを動かしてみましたが、問題なく動いてくれました。スピードコントロールも問題ありませんし、正逆回転も正常に動きました。片方ずつ動かしてみたり、急に正逆を変えてみたりといろいろやってみた結果、2番と6番の間に入れる抵抗は、4.7Ωでは抵抗が熱くなりすぎることがわかりました。そこで、1Ωや2.2Ωで試してみたのですが、2.2Ωでも過酷な使い方をすると少し熱くなることがわかったので、1Ωでやることにしました。
#センサボードは、1Ωでも落ちることはありませんでした。

今度は、この環境でなのぼ〜どでも動くか実験をしました。モータとの接続はそのままにして、なのぼ〜どの「9」をTA7291SG(A)の8番ピン(制御電源=Vref)につなぎ、「7」と「8」を9番と1番ピンにつなぎました。なのぼ〜どの「10」をTA7291SG(B)の8番ピン(制御電源=Vref)につなぎ、「5」と「6」を9番と1番ピンにつなぎました。そして、両方の TA7291SGの2番ピン(ロジック電源=Vcc)を「5V」に接続し、そこからさらに1Ωの抵抗を介して6番ピン(出力電源=Vs)に接続しました。最後に、両方の5番ピンを「GND」に接続して終了…と言いたいところですが、なぜか「5V」のとなりの「GND」に接続しないと(他の「GND」に接続したのでは)動きませんでした。

今回の実験で、いずれも快適に動くことがわかりました。ロジック電源と出力電源を1Ωの抵抗でつなげば実用的なモジュールが作れることもわかりました。しかし、HelloBoardとなのぼ〜どは、ピン互換性がないため同じモジュールを載せて使うことができません。それぞれ専用のモジュールを作るか、何かうまい方法があるか考えて設計してみようと思います。

2012年1月16日月曜日

NanoBoardAGでSensorBoardからモータを動かす

ちっちゃいものくらぶなのぼ〜どを使って、モータを動かすのがちょっとしたブームになっているようなので、私も参加してみることにしました。
#備忘を兼ねて、環境整備から記述しておきます。

まず、オープンになっているScratchを2モータ対応に改造して頂いた「NanoBoardAGWithMotors」を自宅のMacで使えるようにします。ダウンロードした.zipファイルを開いて「NanoBoardAGWithMotors.image」ファイルを既存の「Scratch 1.4」と同じフォルダに入れます。そして、「Scratch(.app)」を複製して適当な名前をつけます。この「内容を表示」して「info.plist」を編集(NanoBoardAGWithMotors.imageから起動するように)すると、Macのアプリとして使えるようになります。

次に、Arduino-IDE 1.0からNanoBoardAGWithMotors付属のスケッチを、なのぼ〜どに流し込みます。ここでちょっとつまずいたのですが、エラーメッセージを見ると「pins_arduino.h」が見つからないと言っていることがわかりました。「boards.txt」を見ると、他のボードには、「(ボードの種類).build.variant=standard」というような一行がありました。そこで、以前に設定したものに「atmega8o.build.variant=standard」という一行を加えました。すると、書き込みが完了したというメッセージが出るようになりました。
#それでも、なんか変なメッセージが表示される…。

これで準備万端と思って、TA7291SGとつないでモータを動かそうとしましたが、何だか動きが変なのです。そこで、これまで動作実績のあるHelloBoard(helloboardv2motor.pdeを使用)から動作確認をすることにしました。

HelloBoard TA7291SG 端子記号
+5 2 Vcc
+5 6(2とジャンパ) Vs
D3 8 Vref
GND 5 GND
D7 9 IN1
D8 1 IN2
Motor1 7 OUT1
Motor2 3 OUT2

この状態で、NanoBoardAGWithMotorsから制御しようとすると、何だか思い通りには動いてくれません。そこで、ちょっとつぶやいてみたところ、いつも助けて頂いている@abee2さんから「HelloBoard用のスケッチを作ってなかった」というお返事を頂いたので、ブログを書きながら待つことにしました。しばらくすると、出来上がりのお知らせがあったので、NanoBoardAGWithMotors.zipに同梱して頂いた「HelloBoardAGWithMotors.pde」をHelloBoardに流し込んで動作確認してみました。いやいや、お見事という他ありません。これで、バッチリ動作します。
#調子に乗って勢い良く回していると、HelloBoardが過電流でダウンすることがあります。

なのぼ〜どの方は、どうもうまくNanoBoardAGWithMotors付属のスケッチが流し込めていなかったようなので、純正の「書込装置(AVRISP mkII)」を使ってやってみました。今度は変なメッセージが出ることもなく、なんとなくうまく行った感じだったので実験を続けると、これも問題なく動作してくれるようになりました。

実はこれまでの動作実験は、モータとドライバの配線が面倒だと感じていて、モータにドライバを付けてしまおうと考えて実験をしていたのでした。モータに接続する7番&3番ピンの間隔が丁度よい感じで満足しています。0.1μFのセラミックコンデンサは、見た目が大きくて自己主張が強い感じ。VccからVsへは、ジャンパではなく4.7Ωの抵抗でつなぎました。この方が安定して動いてくれます。(特に計算をして決めたのではなく、自宅にあった一番抵抗値の低いものをつけただけです)次は、2つのモータを同時に動かす実験をしてみたいと思います。

2012年1月5日木曜日

古いラップトップPCにMint 12を入れてみる

2004年に(独)情報処理推進機構(IPA)が公募した「学校教育現場におけるオープンソースソフトウェア活用に向けての実証実験」に(株)アルファシステムズさんに誘われて参加しました。その際に頂いたラップトップPC(SHARP MebiusAthlon XP-M 2000+搭載)は、現在もフィジカル・コンピューティングの授業研究に活用させて頂いております。今までは、KNOPPIX 6.0.1で動かしていたのですが、USBメモリの取り扱いがイマイチ(マウント/アンマウントが面倒だったり、それを繰り返しているとマウント関係がおかしくなるという不具合がある)なので新しい環境を構築し直すことを考えました。とは言え、古いPC故に動くものが限られているため、何でもOKという訳には行きません。条件は、(1)このPCで快適に動く、(2)debパッケージがインストールできる、(3)子どもたちにとっても使い勝手が良い、の3つとしました。そこで白羽の矢を立てたのが、Linux Mint 12でした。

Linux Mintは、私が使っているUbuntuやKNOPPIXと同じdebian/GNU Linuxの仲間で、Ubuntuをベースに作られています。最新のLinux Mint 12のCD版isoファイルを、本家のダウンロードサイトからダウンロードしてCDに焼きました。件のPCにはCD-ROMドライブしか付いておらず、ライブCDの部屋にあるような、豪華DVD版は使えないのです。

実は、他にもPuppyDSLなどを候補として考えたのですが、パッケージ管理が特殊だったり最新版がちょっと古い感じだったりするのでやめました。一方で、この古いPCで最新のものが動くのかという疑問もありましたが、チャレンジしてみることにしたのでした。

はじめにCD-Rから起動を試みた時には、起動はしているようなのですが、ディスプレーに何も表示されませんでした。あっちこっち弄ってみましたが、徒労に終わりました。この間、起動カウントダウン中に、マウスクリックや矢印キーを押すと、別の起動メニューが選べることを知りました。そこで、「(compatibility mode)」となっている方を選んで起動すると、かなり時間はかかりましたが、無事にデスクトップを表示してくれました。

後は、ネットワークの設定をしてデスクトップに並んでいる、「Install Linux Mint」でHDDにインストールするだけです。それなりに時間はかかりましたが、スムーズに終了しました。とは言え、デフォルトのままだと日本語環境が貧弱なので、「ソフトウェアの管理」から「scim-anthy」と幾つかのIPAフォントやTakaoフォントをインストールしました。続いて、OpenJDK(フォントの設定をしました)やWineをインストールして、いつものScratchDolittleをインストールしました。自分が普段使っているPCには、LibreOfficeも入れました。動作確認も今のところすべて問題なしです。使用感としては、今までのKNOPPIXよりもたもたした感じはあるのですが、使えないレベルじゃないのでよいかなといったところです。