2015年4月26日日曜日

IchigoJam が楽しい

 一週間ほど前に、(mbed) LPC1114 を試した際にLPC1114つながりで、IchigoJam というLPC1114でBASICが使える子供向けコンピュータ(と言いつつ、これを楽しんでるのは、70後半~80年代にマイコンボードやパソコンをいじっていたおっさんたちだと思う)も入手して触ってみたんですが、これがなかなか楽しいおもちゃです。小学生時代にN-BASICにはじめて触った頃を思い出してしまいました。ところで、このIchigoJamはLPC1114を使っているので、BASICと言いつつマイコンっぽい機能も使えたりします。例えば、デジタルI/Oがいくつかとアナログ入力とI2CとUARTが1chずつあります。となると、当がらくた部屋としては、やはりうごきモノの載せてみたくなるわけです。

 そこで、今回はAmazonで1400円くらいで売っている、これで行ってみようと思います。

 このリモコン昆虫よりも若干大きくなりますが、タミヤのユニバーサルプレートにIchigoJamと電池ボックスを取り付け、このリモコン昆虫の上というか背中の部分に載せます。
 まず、IchigoJam 4つの穴すべてがユニバーサルプレートの穴位置とは揃わないので、内2つをユニバーサルプレートとも固定、残り2つはスペーサを立てているだけで固定はしていません。


 電池ボックス。今回は単4エネループ三本で。


 単純にモータOn/Offができればいいので、Digital出力+Hブリッジでもいいのですが、I2Cを使ってみたかったので、あえて、DRV8830 I2Cモータドライバを使っています。またいつものPSDセンサを前方部に取り付けて、アナログ入力(IN2)に接続しています。


 シールド(ドータボード)の真ん中辺にあるのは、電池から3.3Vを生成するためのDC-DCとモータ側とIchigoJam側を切り分けるためのI2Cレベル変換です。シールドを作ってはじめて気がついたんですが、このジャンパピン用のソケットの間隔って100mil単位になっていないようです。850milとかそんな感じの半端な幅です。なので、差し込むときは、ピンを曲げるような感じで半ば強引に挿し込みました。


 PS/2のコネクタがシールドの裏面をショートさせるので、絶縁テープでカバーをしています。


 みんな大好き、タミヤの楽しい工作シリーズ。リモコン昆虫。


 リンク機構で6脚を動かす仕組みになっています。大人が組立てても十分楽しいキットでした。以下、載せたところ。



 おなか側。


 動かしてみたところ。


 やっていることは、ごく単純。

2015年4月19日日曜日

mbed LPC1114FN28 お試し

 今日のガラクタは スイッチサイエンスさんのmbed LPC1114FN28 です。入手したのはキットの方でコネクタ類は自分で♫ハンダ付け♪しています。


 合わせて、mbed LPC824も入手しました。


 いつもRaspberry Piと組み合わせてアナログ入力やPWM出力を拡張するためにArduino Microを使用するのが自分の常套手段なんですが、最近のArduinoの分裂問題なんかもあり、Arduinoの先行きが不安なので。(まあ、オープンなハードなので相当品を含めてハードを入手できなくなることはないと思いますが、どちらかというと開発環境やライブラリが分裂して使い物にならなくなって、ユーザが離れていくのが怖い気がします。)なので、代替の手段を模索しておこうかなというのが今回の目的です。

 で、今回、候補として調査対象にしたのが、mbed LPC1114FN28です。スイッチさんのこのモジュールでは、USB接続でマスストレージにプログラムを書き込めたり、シリアル通信したり、あとCMSIS-DAPデバッグもできる機能を外部チップ(LPC11U35)でできるようにしてありますが、基本的にはほとんどのLPC1114FN28のピンがそのまま右から左に出ている感じです。ただし、素のLPC1114FN28は600mil幅ですが、スイッチさんのモジュールは400milと幅が変わっています。ここはできれば、同じ幅のままピンを出しておいて欲しかったところです。そうすれば、モジュールの状態で開発・デバッグして、Fix後は素のICをそのまま挿して電源供給だけしてやれば済むわけですから。んー、なんで、幅変えちゃうかな?まあ、そもそも600milってでかすぎじゃね?機能の割りに?チップ自体が400milで十分な気がします。そんなわけで、mbed LPC1114FN28の基板上のICソケットに手持ちのゼロプレッシャーソケットを装着して、ゼロプレッシャーソケットにLPC114FN28のチップ自体を挿しています。スイッチさんで発注した際についでにmbed LPC824も頼みました。

 mbedは以前にちょっとだけ試したんですが、Arduinoの方が慣れていたので、その後、あまり手を付けていませんでした。今回は、もう少し突っ込んで、CMSIS-DAPでのローカルデバッグ等も試してみます。
 mbed のプロダクトページから ファームウェアの最新(beta)版をダウンロードして、LPC11U35側のファームウェアを更新して、mbedクラウドコンパイラで新規プロジェクト作成時に生成されるLチカプロジェクトをエクスポートして、ローカルの開発環境に取り込み、デバッグを試しました。当初、LPCXpresso形式でエクスポートして、LPCXpressoに取り込もうとしたんですがエラーが出て取り込めません。ネットで調べたところ、エクスポート機能に不具合があるようです。仕方ないのでMDKのプロジェクトとしてエクスポートして、MDK-ARMでデバッグを試しました。MDK-ARM Liteという無料版はLPCXpressoの無料版に比べてコンパイルできる容量が32KBまでと大幅に制限がきついんですが、LPC1114の場合はFlashが32kBしかないので、全く問題はありません。(他のmbedを使いたいときには容量制限が問題になるかもしれません。)
 実際にMDK-ARMでCMSIS-DAP(パソコンとUSBケーブルでの接続のみ)でステップ実行して、変数ウォッチなども出来ました。Arduinoにはこういったデバッグ環境がないので、これは便利です。
 PSDセンサをアナログ入力で読むのとI2Cコンパスの動作を確認しました。もう少し、具体的に使ってみないとわかりませんが、Arduino Microの代わりとして十分行けそうです。

 また、今回、mbed LPC1114FN28とは別にゼロプレッシャーソケットを秋月電子さんに注文したんですが、部品一個だけでは送料がもったいないので、IchigoJam というLPC1114でBASICが使えるモジュールのキットも合わせて購入しました。


 Raspberry Pi 同様に子どもたちにコンピュータやプログラミングに広く触れてもらいたいという開発者の意図ですが、Raspberry Pi 同様にまず飛びついてくるのは、我々世代のおっさんではないかと思います・・・。
 おそらくは、Tiny Basicをベースにしているのではないかと思いますが、LPC1124のADやI2Cの機能も利用できるように拡張された専用のBASICでセンサやI2Cモジュールが使えます。写真はストリナのI2C LCDとコンパス、EEPROMをI2CにPSDをADにつないでいます。この内、コンパスはまだ、動かせていませんが、他は動作を確認できました。I2CコマンドのR/Wビットの扱いの仕様でちょっとわからない部分もあるんですが、なかなか楽しいおもちゃです。






2015年4月12日日曜日

ロビクル 18号~完結30号

 今日のガラクタは ロビクル です。しばらく、組み立てを進めずに放置していましたが、最終号が届いたので、組み立てることにしました。

 前回の続きからで、まずは、18号。サイドパネルの取り付け。


 19号は左LEDパネルの取付。


  20号で左カウルパネルの取り付けですが、これは仮止めで、あとで外すことになるので、一旦飛ばします。


 21号の右LEDパネルの取付。



 22号の右カウルも仮止めなので、一旦飛ばします。


 23号はCPUボードの取付です。




 24号はバッテリの取り付け。



 ここで、動作テストを行ったところ、左後輪のモータが動作しないことが発覚。手で車輪を回しても、正常な右側は手で車輪を回してモータ軸も回るのですが、左側はモータ軸が全く動かず、車輪内のクラッチが作動してしまいます。一旦分解して左側モータを取り出してペンチで軸を回しても相当な力をかけてやっとキキキッて感じで回る感じでモータ単体でも回転しません。触感的には(ギア付きモータになっているんですが、)ギアが壊れてる感じ。ディアゴスティーニのサポートに連絡したところ、代替え品を送ってくださるということでしたので、ここでしばらく部品待ち。

 モータの代替え品が入手できたので、交換して、無事動作することを確認。

 25号で本体が完成です。後輪のカバーなどは「一旦取り付けて」の記述があったので、あえて説明書通りに取り付けずにおいたものもここで取り付けました。






 ひと通り組み上げて、本体の完成です。スイッチを入れてLED類の点灯確認。ただし、本体だけでは動かすことはできません。




 26~28号でリモコンを組み立て。


  29号ではロビの頭部にロビクルへの赤外線送信モジュールを取り付けます。


 ロビの頭部を分解して、



 ケーブルを接続しなおして、赤外線送信モジュールは頭部左側に取り付けます。


 最終30号では交換用のロビの心(microSDカード)が付いてきて、これを交換。




 ロビクル完成です。起動テストの様子。