.NETラボ勉強会 in 仙台でロボットアームを動かしたよ

.NETラボ 勉強会 2016年6月 in 仙台 | .NETラボ まで手持ちのロボットアームを持って行って1枠話した来たので、そのひとり反省会。みなさまありがとうございました。

仙台での写真を撮り忘れてしまったのですが、

こんな材料を使って

こんなものを動かします。Raspberry Pi – Arduino – Robot Arm というややこしい感じになっていますが、Windows IoT Core in Raspberry Pi から直接は細かくサーボを制御できないので、Arduino を噛まします。Raspberry Pi – Arduino 間はシリアル通信なので、実は PC – Arduino で USB ケーブル接続でも可能なのですが…そこは Windows IoT Core を無理矢理使うということで。この部分をコマンド制御にしておくことで、ワタクシ的には ROS への練習とか PLEN2 への練習とかを兼ねています。あと、かつてロボットアームでスマホゲームを動かしたかったので、それも兼ねて。

プレゼン資料

Windows IoT Core and Robot Arm

[slideshare id=63470614&doc=windowsiotcore-160627045432]

デモ用のコード

https://1drv.ms/u/s!AmXmBbuizQkXgflgZRXM-PnmEla5ng

デモについて

ここ1年ぐらいは、LEGO EV3 を持って行ったり、Raspberry Pi を持って行って Windows IoT Core で Lチカしてみたりする訳ですが、IoT 自体の説明時間とデモの説明時間のバランスが難しいです。普通の PC の場合、キーボードとモニタで完結することが多いので、自分としてはデモで「モニタの外側」に出ることを意識してやってる…んですが、自分でやってても「だから何?」の疑問が付きまといます。なんか、ソフトウェア技術的にすごいものと組み合わせてあれこれとハードを動かせれば「すごい」感じがするんでしょうが(まだできないけど)、でもそれだと「すごい」だけで終わっちゃうしなー、という感じ。

今回のロボットアームの件で言えば、

  • 適当なモーションを作って、暫く動きっぱなしでもよかったかも。
    • 1コマンド打ち込みだけだと、6軸同時に制御する、ってのがわかりづらい。
  • やっぱり、Raspberry Pi から大型モニタに出したほうがよい。
    • HDMI がないところが多いので、VGA変換ケーブルを買って試しておく。
  • 説明なしで、コントローラはタブレット(Xamarin)で良いかも。
    • あまり説明なしだと「何かのおもちゃが動いているだけ」になるけど、ポイントだけ解説するとか。
  • 当日、配線するのは結構大変なので(大抵、事前に30分ぐらいしか取れない)、そこだけは基盤にしないと駄目かも。

 

ソフトウェア屋さんがハードを触るときの最初のハードル

西村さん と話して、盛り上がったのでメモ的に

  • ハード特有の用語がわからん。そもそも、ブレッドボードが何か?とか。
    • これは、ソフトウェアの専門用語と同じだから、電子工作のはじめて本で覚えるしかないかな。私はオライリーの「Arduino をはじめよう」が最初の一冊です。
  • 電子部品は何処で買うのかわからない。
    • 昔は、秋葉原に行けばあったけど(今でもあるけど、数が減ったから探しあたる必要があり)、地方の人はどうしているんだろう。むしろ通販だから前よりよくなった?
  • 電子部品を何を買うのかわからない。
    • いさぎよく、最初は「初心者キット」(ちょっと割高だけど)を買うのがベター
    • その後、古めの電子工作の本を買ったのだけど、電子部品の番号が今は売っていなくて互換品を自分で探す必要あり。
  • だいたい2か月頑張れば、次に進める気がする。
    • プログラミングと同じで「慣れ」が必要かなと。キーボードじゃなくて、ブレットボードとジャンプワイヤーで手を動かすので、そっちの方面の「慣れ」が必要。
  • Raspberry Pi, Arduino で得意分野が違うので、両方やっておいたほうが良い。
    • Raspberry Pi だと画像処理とか通信処理とかが楽。
    • Arduino だとマイクロ秒単位の細かい制御ができる。
    • ブラウザ経由でLチカできる、ってのもアリだけど、直接ハードを触って「どんなことが起きているのか」を知っておいたほうがいいかな。

ロボットアームのその先

実験的に自前シリアル通信を作ったけど、Firmata を使うか ROS にしたいですよね。少しずつそれっぽい感じにする予定。ロボットアームからのフィードバックが必要なので、ポテンショメータの値の取得と、加速度センサーの追加、あと Raspberry Pi 側からカメラを引っ張ってきて画像解析できるように、ってところまでが目標。

カテゴリー: Win IoT パーマリンク