Robot」タグアーカイブ

Raspberry Pi Robot 2号機を作ってみる その1

Raspberry Pi Robot

大人の底力を発揮すべし

Raspberry Piで動かすロボット、作ってみるね。
と云うか、過去にもトライしてるんだけど、まともに動いてない。orz だからこれは2号機ね。
ここ最近の、諸々の活動を通して、これはやっぱり俺がやらないといけない、大人の底力を発揮すべし。という結論に達した訳だ。
カレーより、プライオリティ高いかもしれん。

で、何がしたいかと云うと、

  • Raspberry Piで動かす
  • Arduinoもありかも?
  • Scratchで動かす
  • 汎用性のあるパーツを使う
  • 誰でも組み立てられる
  • なるべく安価に
  • 無線で
  • センサー類は別途後付け

このくらいにしておくか。

ということで、とりあえずシャーシを作ってみた。
その前に、これまでの振り返り。

これまでにやったこと

Raspberry Pi Robotこれはかれこれ2年半前だな。なのぼ積んでScratchから動かしてる動画が残ってた。


その後に、同じシャーシになのぼをRPiに載せ変えて動かそうとしたんだけど、上手く動かなくてモータードライバー積まないとダメだってことになってる。

まずはシャーシから

まず、手始めにシャーシの作り直しな。今回はちゃんとアクリルで作るよ。
とりあえず寸法だして、切って、穴開けて、組み立てた。
Raspberry Pi Robot 2号機を作ってみる Raspberry Pi Robot 2号機を作ってみる
Raspberry Pi Robot 2号機を作ってみる Raspberry Pi Robot 2号機を作ってみる
Raspberry Pi Robot 2号機を作ってみる Raspberry Pi Robot 2号機を作ってみる
あぁ、なんかバランス悪くてかっこ悪いわ。
なるべくコンパクトにしたいんだけど、長さの割に幅が広いからだな。
タミヤのギヤボックス2種類あって、取り付け幅が違うんだよね。どっちも乗っけられる様に幅の広い方にあわせてシャーシの幅を70mmにして、Raspberry Pi載せた時に前後左右のマージンを同じ様に取ったら全長100mm位でいいかと思たんだけど、これもう20mm位延ばさないとかっこ悪いね。ユニバーサルプレートと10mmしか幅変わらないのに、チキショー。
一応、Raspberry PiもBとB+どっちも行ける様に穴開けといたぜ。
ついでにいうと、RSコンポーネンツでA+が換える様になったので、速攻オーダーしたわ。ただし、穴開け直しだわ。

まぁ、ちょっとかっこ悪いけど、これはこれでよしとして、次はRaspberry Piにモータードライバー載せるところ作るわ。

Scratchワークショップに行ってきた 2014年9月編

OtOMO Scratchワークショップ

Scratchで喋って動く! 漫画編

なんか気がついたらもう9月だよ。
という訳で、OtOMOのScratchのワークショップに行ってきたぜ。
9月のお題は「Scratchで喋って動く! 漫画編」だぜ。
OtOMO Scratchワークショップ OtOMO Scratchワークショップ
OtOMO Scratchワークショップ OtOMO Scratchワークショップ
なんだけど、ゴメン、ワークショップの内容はあまり見てないんだわ。

meArmをScratch 1.4とちびでぃ〜のBBで動かしてみた

で、その間何をやっていたかと云うとだな、これをやってたのよ。

まず、アクリルのロボットはこれな。
Pocket Sized Robot Arm #meArm V0.4
オープンソースなので設計図が公開されてるのでダウンロードしてレーザーカッターで切って組み立てる。3mm厚のアクリルでA4サイズあれば大丈夫。
サーボはAmazonで2個で¥1,000程度。DXとかで探せば1個¥200ぐらいで手に入る。
ネジもサイズと本数が上記のウェブサイトに書いてあるから必要な分だけヒロスギネットとかで買えばいい。ヒロスギネットは小ロットで買えるからスゲー便利。
制御側はちびでぃ〜のBBとScratch 1.4と、必要なものは全て揃っててソフトウェアもちびでぃ〜のBBで8チャンネル動かせる改良版Scratchを@tomonnn1からもらっていたのだけど、うちでは動かず。@yokobondは動いたって云ってたから一緒にやってみたけどそれでもやっぱり動かない。
こうなると(っていうか最初からだけど)俺の手には負えないので2人に任せてデバグ大会だよ。
OtOMO Scratchワークショップ OtOMO Scratchワークショップ
まぁ、何を言ってるのか、何をやってるのかも分らないので隣で見てるだけなんだけど、なんだかんだ原因を見つけて動いた時には皆で大喜びだよ。
まぁ、俺がどうがんばってもどうにもならない世界だな、これは。ジタバタしないで自分の領域の中で最大限できるところにエネルギーを注ぐべきだと改めて感じたよ。

ただの愚痴だけど

誰でも、そうだと思うんだけど、得意な分野とそうでない分野がどうしてもあると思うのね。
いいか、何やってもダメなヤツとかいないんだぞ。
歪な形をしててもそれを上手いこと隙間なく組み合わせることができたらちょっとやそっとじゃ壊れないのよ。
なんだけど、あれはダメ、これはダメってとんがったところ皆削り落として同じ形に収まる様にしないと気がすまない人達もいて、そりゃ皆同じ形なら積み上げるのも簡単なんだけど、どこか抜けたらそこから総崩れになっちゃうととか思わないのかね? って、ただの愚痴だけど。
そんな訳で10月のワークショップはmeArmネタらしいよ。

Raspberry Pi Robotを動かしてみた

Raspberry Pi Robot
前回はRaspberry Pi Robotを作ったところまで書いたから、今日はその続きな。

問題山積み

Raspberry Pi Robotとりあえず、出来上がったRobotをちょこちょこ動かしてみた訳。
モーターだけ回してるときはなんの問題もなく動いていたんだが、シャーシに積んで動かしたら途中で暴走しちゃう。
車輪もついて負荷がかかるし、電流が云々で上手くいかんじゃね? と思ってるんだが、モーターにコンデンサかませてノイズを減らしてみ、という意見をもらったので、モーターに付けてみた。

それと、これは直接は関係ないと思うけど、さんざんいろんなものを詰め込んだRasbianだったので、更のSDカードにNOOBSを入れて、ScratchGPIOもVersion4を入れた。
NOOBSは落とすのにえらく時間がかかったけど、これ便利というか初心者にはこれいいね。基本コピーするだけだからね。

Raspberry Pi Robotを動かすスクリプトを書く

という訳で新しい環境を整えてからRobotを動かす側を作ったよ。
どうやって、モーターをコントロールするかはまずScratchGPIOのチュートリアルを見てね。
「Power11」と「Power12」という変数を作るんだけどこれがそれぞれGPIOの11ピンと12ピンに繋がってる。この変数の0から100までの値がそのままモーターの出力になるのね。

ScratchGPIO サンプルスクリプトなのでサンプルのスクリプトは英語で書いてあるけど、日本語になおすと右の様になる。

  • 緑の旗が押されたら11ピンに繋がるモーターパワーを0にする。
  • 1秒待って、モーターパワーを10上げる。
  • それを10回繰り返す。

ってことね。

ScratchGPIO スクリプトこれだけじゃまだ動かないからね。
Robotは2モーターなので、これを左右のカーソルキーに割り当てる。
右のカーソルキーを押してるときは左のモーターパワーを30にする、押してないときは0。左側はその反対。
カーソルキーを押してないときはモーターパワーを0にする、って云うのが入ってるからスペースキーを押したら〜って云うところは関係ないけどね。

ゴールはまだまだ先


こんな感じで動くのだけど、やっぱり途中で暴走したり固まったりしてる。
途中で薄々感づいていたのだけど、これ、前にしか進めんのよ。orz

Scratchエラーおまけにこんな見たことないエラーまで出る始末。

Raspberry Piではじめるどきどきプログラミングにモータードライバーを使う方法が出てるので、こっちも参考にしてみよう。

道のりは険しいわ。

Raspberry Pi Robotを作ってみた

Raspberry Pi Robot
Raspberry Piでいろいろとやってみてるんだけどね、やっぱりロボットでしょ。
ScratchGPIOでモーターをコントロールできればMINDSTORMS並みに遊べるんじゃね、と思った訳。
で、コードがかけなくても電子回路とか知らなくても、とりあえず動くところまで漕ぎ着けたので記しておくわ。

ズブの素人でもロボットが作れる

Raspberry pi GPIORaspberry PiにはGPIO(General Purpose Input/Output)っていう外部の電子回路と通信できるとげとげがある訳さ。
1番から26番まであって、それぞれに役割があるんだけど、どうれがどう、っていう話は飛ばすので知りたい人は下記をみてね。

この画の一番左の手前が1番ピンね。その上が2番で、左から2番目の手前が3番…で一番右の奥側が26番な。
で、このとげとげとモーターを繋いでごにょごにょするんだ。
モーターを繋ぐ方法はあとで書く。

GPIOをコントロールする方法

ScratchGPIO次にGPIOをコントロールする方法だけど、こじ研みたいなオマジナイは使えないので、そういう人のためにScratchGPIOっていう素敵なものがある訳よ。
「素敵」とはいえ、これもそれなりにハードルが高いから覚悟しろよ。
まず、ScratchGPIOのインストールとLチカのチュートリアル、モーターの動かし方は下記にある。

ここで使ってる「ULN2003」っていうトランジスタアレイは秋葉原中探したけど何処にも売ってなかったけど、東芝の「TD62083」というのが代替えで使えるらしいのでこっちを買ってきた。
一旦ブレッドボードに組んでみて、モーターが廻ることを確認してから、ユニバーサル基盤に半田付けする。

モジュールを作る

ScratchGPIO with Motorsブレッドボード上で動くところまで確認できたら、あとは間違わずに半田付けすればいいのよ。と、簡単に書いてるけど細かい作業は最近特に面倒だわ。目見えんのよ、まぢで。
上記のサイトでは外部電源を繋いでたんだけど、GPIOの情報をいろいろ漁ってたら2番ピンと3番ピンから5V出てんじゃん、ってことでそのように配線。
本当は通電の確認用にLEDも付けようとしたんだけど、GPIOに差したら隣のビデオとおもいっきし干渉することが解ったので、その部分は急遽切り落とした。

ScratchGPIO裏側はこんな感じね。
ここまでくればもう、あと1歩だぞ。

シャーシに載せる

Raspberry Pi Robotシャーシは前に作ってあったものをとりあえず使うけど、そのうちアクリルで作り直す予定。
汎用のきくパーツがいいので、ギヤボックスとホイールはタミヤのな。
ユニバーサルプレートはアッパーはタミヤのだけど、ロワーは実はタミヤじゃなくてミュウロボ用なんだ。
スタジオミュウのユニバーサルプレート(スタジオミュウではタッピングプレート)はタミヤのとぱっと見は同じなんだけど、穴の径が微妙に小さくて3mのタッピングビスが使えるんだよね。タミヤのは丁度3mなのでM3のナットが必要な訳。なので使い分けてるのね。
穴のピッチとRaspberry Piの固定用の穴がちょうどいい感じに収まるのでスペーサーかませれば難なくきれいに固定できる。
ピロボールもミュウロボのプレートに付属してるヤツね。
とりあえず、ハードはこれでよしと。

続きはまた今度書くわ。