2015年6月13日土曜日

LEGO TECHNIC 42036 Street Motorcycle

 久々のLEGOです。テクニックシリーズのストリートバイク 「LEGO TECHNIC 42036 Street Motorcycle」 です。



 積みレゴから比較的部品点数の少なめのものを選びました。他にもトレインシリーズがいくつかとスターウォーズシリーズのスターデストロイヤーも積まれたままになっているんですが・・・。

 まずは、パッケージ。



 開梱。


 それほど、目を引く部品は入っていませんが、やはり、大きくて細いタイヤが目を引きます。あとは、チェーンが小さな部品を30個連結して作るような特殊な部品で、これは、他に用途がないんじゃないかという部品ですが、その2種類くらいかな。

 では、組み立て開始。

 一体、どの辺を組み立てているのかわからないですが、本体のフレームとかでしょうか。


 やっぱりフレームっぽいですね。真ん中が、エンジンが収まる空間かな。


 後輪のサスペンションが付きました。






 後輪がついて、チェーンを掛けるギアも。



 エンジン部分の組み立て。


 エンジンをフレームに乗せて、チェーンを掛けます。チェーンは小さな部品を30個連結しなければいけません。


 前輪、ハンドル。



 本体とつないで、


 バイクになりましたね。


 あとはカールやパイプなどを取り付けていって、


 できあがり。かっこいいですね。フレームに使われているビームのななめの組み合わせってどうやって思いつくんだろう。斜めにつないでいって、最初と最後が合って一周できるように組み合わせるって結構難しいと思うんだけど。









IchigoJamで遊ぶ、その2

 2ヶ月くらい前に IchigoJamを手に入れて、早速タミヤの昆虫ロボットに載せてがらくたを作りましたが、その後、IchigoJamはファームが日々改良されて、色々機能も増えたりしているようです。その中で、昆虫ロボットを作ったときにはアナログ入力が1chしか使えなかったのが、今は2ch使えるようになっていて、このアナログ2chを活かして何かできないかなぁ?と思っていたんですが、なかなか手を動かせずにいました。先日、アマゾンを「ロボット 工作」とかで検索して徘徊していたとき、前回の昆虫ロボットと同じタミヤのロボクラフトシリーズで「ボクシングロボット」というのを見つけました。面白そうなので、早速ポチって、これにIchigoJamとセンサ×2の組み合わせを考えることにしました。


 センサは前回と同じPSD測距センサです。前回は一つだけで手前にものがあったら避ける動作をさせましたが、今回は手前にあるものに向かわせる動作を左右に2つのPSDセンサを使って、やってみようと思います。

 まずは、タミヤのROBO CRAFTシリーズのボクシングロボット(Boxing Fighter)を開梱。



  説明書に従って組み立て・・・の前に、いつものDRV8830 I2Cモータドライバをモータに取り付けます。ロボットのボディ内部に余裕があるので、モータドライバ基板は絶縁テープで巻いて、ボディ内に入れてしまいます。




 モータにノイズ用のコンデンサとドライバへの配線をはんだづけしてギアボックスに取り付け。


 あとは、組み立て。本来リモコンと繋ぐ線を出す切り込みから、電源、GND、I2CのSDA、SCLの4本の線を取り出しています。












 形ができたところで、前回の昆虫ロボットからIchigoJamを取り外して、


 ボクシングロボットの背中にIchigoJamと単3×2本用電池ボックスを取り付けました。



 それから、頭の上にPSD測距センサを左右斜めに向けて取り付け。




 コネクタを差すために簡単なドータボード(シールド)を準備しました。



できあがり。


 この時点ではPSDセンサは縦置きにしていますが、実際に動かしてみて、調整した結果、最終的には横向きに取り付けることになりました。



 プログラムを入れて実際に動かしてみたところ、センサは横向きであまり左右に斜めにしない方向で落ち着きました。



 ボクシングロボット対博士。


 動かしてみたところです。ロボットの左側の足が右側に比べて接地が悪く(短い?)、左方向へはすぐに方向転換できるのですが、右方向へ向くのに時間がかかってしまいます。


 以下、ソースです。



2015年5月3日日曜日

Windows IoT for Raspberry Pi 2 で Lチカ

 今回は Windows IoT ネタです。以前に GalileoでWinIoT を試したことがありましたが、先日、Windows IoT for Raspberry Pi 2 のプレビュー版が公開されたので、早速、試してみることにしました。
 やることは、サンプルプログラムを元にLチカを最も簡単なプログラムでかつ新しいプロジェクトの作成から試してみることです。すぐに出来るだろうと思って調べ始めたところ、とんでもなく面倒でした。書くのも面倒なので・・・全ては書く気にもならないですが、手順の一部を載せておこうと思います。

 まず、Get Start のページで必要環境を確認したところで、心が折れます。開発する側の環境として、 Windows 10 Insider PreviewVisual Studio 2015 RC が必要になります。Visual Studio 2015 RC はいいとして、Windows 10 のプレビュー版をインストールできる端末の余分がないとできないわけです。自分は幸か不幸か仕事柄も最新のOSの動向などは知っておく必要があるので、思い切って現用端末の内の一台をWindows8→Windows10Previewへのアップグレードインストールを行って、環境を用意しました。
 次に Windows IoT for Raspberry Pi 2 Preview をダウンロード してzipファイルを解答すると、microSDに書き込むためのOSイメージとVisual StudioにWinIoTの開発機能を拡張するためのインストーラが展開されます。

 イメージ展開用のmicroSDをWindows10にマウントして、コマンドプロンプトで
   diskpart
   list disk
   exit
としてドライブ番号をリスト表示させて確認します。(例えば、ディスク N だったとします)
 OSイメージ Flash.ffu のあるフォルダに移動して、以下のコマンドを実行します。
   dism.exe /Apply-Image /ImageFile:flash.ffu /ApplyDrive:\\.\PhysicalDriveN /SkipPlatformCheck
 PhysicalDriveN のNは実際にはディスク番号の数字です。
 これで展開されたmicroSDをRPi2に挿して起動すればOKです。初回起動時は時間がかかるので気長に待ちましょう。うまく起動すれば、先の拡張ツールと一緒にインストールされた検出ツールで minWin というPC名で検出されるはずです。自分はモニタは使っていませんが、モニタを接続しておけば、以下の様な画面が確認できるそうです。



 つぎは、Lチカプログラムです。ここにあるように GPIO5(29ピン)と3.3VをLEDと抵抗で接続します。(下の画像は前述のここのものをそのままコピーさせてもらいました)




 Visual Studio 2015 RC でC#の新しいプロジェクトを作成して、空のWindows Universalアプリ(Blank App(Windows Universal))を選択します。


 プロジェクトへの参照の追加で「Windows IoT Extension SDK」を追加します。


 MainPage.xaml.cs を編集します。まず、using Windows.Devices.Gpio; を追加します。


 Lチカのソースは次のような感じにしました。Arduinoのような単純な待ち時間を取らせる方法がわからなかったので、サンプルプロジェクトを参考にしてタイマでLチカ動作するような方法としました。

 プロジェクトのプロパティのビルドタグでプラットフォームタイプでARMを選択します。


 DebugタブでプラットフォームをARM、Start optionsのTarget device をリモートコンピュータにして、Remote machineにRPi2のPC名(デフォルトだとminWin、下記の画像の例だとWinIoTPiに変えてあります)かまたはIPアドレスを指定、Use authenticationのチェックを外します。


 ビルドの構成がARMになっていることを確認して、ビルド・実行します。


 プロジェクトがビルドされて、リモートコンピュータ(RPi2)にダウンロードされて実行されます。


 なんか、Lチカやるだけで、すごく大掛かりになってしまったんだけど・・・。