ラズパイ日記 探索くん1号 外部からのWebIOPi
ようやく外部からインターネット経由で探索くん1号を操作することに成功。
カメラによるストリーミング撮影も同時に起動できている。
前回の予定手順から少し変更してここまでたどり着きました。
1. ラズパイのipアドレスをDHCPから固定ipに変更する(ルーターにて固定DHCPを設定)
2. ルーターでポート開放する
8000: WebIOPi
9000: jmpeg-streamer
3. ルーターにてポートマッピングを設定しルーター宛ポート番号8000/9000のアクセスを上記ラズパイのローカルip8000/9000にマッピング設定
4. 外部からグローバルipにアクセスする
振り返ってみると大したことをやっていないのですが苦労しました。原因は大きく3つ。
・作業前の自宅ネットワーク設定が全然把握できていなかった
・ポートマッピングの仕様と設定方法の習得に時間がかかった
と色々ありましたが動いたので苦労も報われました。
というのも束の間、新たな課題です。
外部からのLTE経由だと操作もカメラも反応がかなり遅い。
コントローラ
LANのときは上下左右ボタンは押している間だけ探索くんが動きたのですが、外部からのLTEだと 押したら2秒遅れで動き出ししかも時々止まらなくなる。
カメラ
コマ落ち、遅延、しまいには更新されない
というわけで、通信スループットに適した各種設定のチューンアップが必要となりました。
ラズパイ日記 探索くん1号外部インターネットからWebIOPi
引続き課題対応中
Weavedに払った$24分は足掻いたものの結局jmpeg-streamerとWebIOPiの同時起動はできなかった。
代替案として、Weavedを使わずに外部からのアクセスを試みることに
ステップは以下の通り
1. ラズパイのipアドレスをDHCPから固定ipに変更する
2. ルーターにてポート開放する
8000: WebIOPi
9000: jmpeg-streamer
3. 外部からグローバルipにアクセスする
1で早速躓く。ネットワークはいつやってもすんなり行かないのが常。
ip固定したらインターネット接続できなくなる
眠かったので終了
通勤中調べてみると
固定する前にルーター側でDHCPのipアドレス範囲を確認し、その範囲外になるようにしなければならないようだ。
今夜やってみよう。
ラズパイ日記 探索くん1号 外部インターネットからWebIOPi操作
探索くん1号の完成からはや一ヶ月半たってしまいました。
1月は忙しくてラズパイにほとんど触れられず、2月に入ってようやく再開できました。
探索くん1号にカメラをつけて、Webコントローラ上にストリーミング動画も見せるところまでは、書籍の演習通りに実施して成功しました。
さらにそれを外部インターネットからできるようにして、会社から自宅の探索くんを操作してやろうというのが今回の目標です。
さてここでお約束のトラブル発生です。
■事象
外部インターネットからアクセスすると、
WebIOPiとjmpeg-streamerを同時に有効化することができない。ブラウザ上でWebIOPiコントロールすることはできるし、streamer設定サイトでラズパイカメラの映像配信もできるが、WebIOPiサイトでstreamer配信ができない。
■原因
恐らくはWebIOPiがポート番号8000でjmeg-streamerがポート番号9000となっていることが関係していそうだが、不明
■対応
WebIOPiを外部インターネットから操作するために使用しているWeaved.comというサービスのフリーアカウントでは同時起動できるサービスが一つまでとなっていたのでBuilders Planを購入(年間$24)。
しかし事象に変化なし。
悔しいので$24分は足掻いてみようと思います。
乞うご期待。
ラズパイ日記 探索くん1号
2016年12月11日(日)
書籍の演習に沿ってラズパイ工作を続けてはや一ヶ月。ついに最終10章にたどり着きました。
最終章ではこれまでのすべての演習要素を取り入れた仕組みになっており、キャタピラロボットをWebから操作するという大作でした。
そして着手から約10時間という過去の演習より遥かに大きい工数でしたがなんとか完成しました!
演習の装置には名前をつけていませんでしたがこれは紛れもなくロボットですので特別につけました。
名付けて、「探索くん1号」です。
なんといっても特徴は、自走型、かつWebから操作できるところです。前進、後退、旋回が可能で補助アームキャタピラがあるので小さな段差も乗り越えられます。
次回はこの探索くんにカメラをつけてみようと思います 。
ラズパイ日記.タッチくん1号
ラズパイ日記 12月5日月曜日
ラズベリーパイを入手してはや一ヶ月。そろそろ書籍に載っている演習以外にも、自分なりにガジェットを作ってみたい。ということで作ってみました記念すべき処女作!
私が遊んでいる某スマホゲームには毎分一回タッチを何十時間も継続することで貴重なアイテムが手に入るのですが、課金すれば手に入るといった仕様にはなっていない為、極めて忍耐と根気が問われる苦行です。それ故にプレイヤー達からはマラソンと呼ばれています。
そこでラズベリーパイのロボット作りの第一弾としてこのマラソンを自動化してやろうと考えました。
そしてできたのがコチラ。
名付けて「タッチくん1号」
(メカとかロボに、1号とかつけたくなるのは私だけですかねw)
用意したもの
・Raspberry Pi 3 model B+
・サーボモーターSG90
・タミヤユニバーサルアーム
・木材
・マット
・ブレッドボード
・ジャンパーワイヤ
・電池ボックス(単3×4本)
・文鎮(重り)
まずは仮組みとして無理やりモーターとタッチペンをくっつけてスマホをタッチさせてみました。ここで課題発生。反応しない。
事象:
手でタッチペンを使うと反応するのに、モーターだと反応しない。
原因:
最近のスマホのタッチパネルは静電式というやつで、常に静電気を帯びている人体の性質を利用している。タッチペンも電気を通しやすい素材でできているため、静電気を帯びていない機械にもたせてもスマホは反応しない。
対応:
アース線をロボットアームに繋いたところ無事反応するようになった。
解説:
つまってから色々ググり、他の人が作ったロボットの動画を参考にしたところ、どの方もアース線を繋いでいることに気がつきました。
最初は人体静電気の代わりに何かで静電気を起こしてアース線でロボットまで流しているのかと思って頭を悩ませましたが、はたと逆であることに気がつきました。
アース線の片方をタッチペンに繋ぎ、もう片方は宙ぶらりんで、どこにも繋がない状態にすることで、静電気の通り道を作り、スマホからの静電気を空気中に逃がしてやるのです。
こうすることであら不思議、スマホがバッチリ反応するではありませんか。
最大の課題が解決したところで工作が始まりました。
工作:
DOITで買ってきた杉の棒を20cmくらいに切り落とします。
サーボモーターの固定位置を決め、
タミヤユニバーサルアームをポキっと折ってネジでモーターを固定します 。
アームの残りを再度折って、タッチペンのペン先を、アームとアームで挟み込んでネジで締めます。これがロボットアームになります。
あとはサーボモーター付属のペラをモーターに装着し、ペラとアー厶の残りをねじドメしてロボット本体完成です。
:配線
ラズパイとブレッドボードを配線し、ブレッドボードに電池ボックスとサーボモーターを配線します。
写真ではADコンバーターや半固定抵抗(ツマミ)も搭載している為線もゴチャゴチャしてますがタッチくん1号にはこれらは使ってません。
モーター系を扱う場合、ラズパイからの電源供給ではなく、別途電池などの電源を用意するといいそうです。ノイズが出てしまうので。よって電池ボックスが出てくるわけです。
プログラミング:
最後にロボットを制御するプログラムを書きます。言語はpython。
書籍の演習で半固定抵抗のツマミでサーボモーターを動かすプログラムを作っていましたので、サーボモーターの入力値(デューティ比)を半固定抵抗ではなくプログラムロジックでセットするように変えるだけです。
特徴としては、WiringPiというライブラリをインポートして使うことで精度の高い制御を可能としているところです。ラズパイはLinuxでマルチタスク制御できる反面、単機能での高精度な動きが苦手です。それを解決するのがWiringPiというわけです。
さてあとはロジックでサーボに角度(デューティ比)を指定していくだけですがここは実際に動かしながら値を微調整していきます。
設置:
動かしてみると、アームに振られて本体が動いてしまいます。そこでマットと文鎮の登場です。さらにタッチする度に、少しづつ回ってしまうのを止めるストッパーとしてネジをマットにテープどめしました。
稼働:
ミスタッチが時々出るものの、30分間自動でゲームをすすめることに成功!
ロボットにゲームをさせることは果たして楽しいのか?なんの意味があるのか?などと哲学してしまいますが、結論としては、「すげー楽しい」です。
今後はこのタッチくんを進化させつつ別のロボットにも挑戦していこうと思います。
ラズパイ日記 演習
2016年11月23日(祝)
半固定抵抗をもちいたAD変換の演習にとりかかるも、苦戦。
事象:
半固定抵抗のつまみを回しても、0のまま表示されてしまった。
原因:
本では12Bit ADコンバーターだったが購入していたセンサーキット付属は、8BitADコンバーターだったことで、配線は調整して動いたものの、ビット操作のロジックが解読できず数値がとれなかった。
対策:
8Bit用ビット操作ロジックへの書換えを検討しつつ、解決できなかったときのことを想定し、12BitADコンバーターを秋月電子で追加発注。
概況:
2歳の娘がお昼寝の間だけラズパイを弄る。
昼寝前は遊園地に連れて行き、昼寝後はゴルフ打ちっぱなしに行ったら、夜疲れ果ててダウンしてしまいました。私の身体では意識高い生活は耐えられないようです。
ラズパイ日記 参考書
今日はラズパイをはじめるにあたって非常に参考になった、というよりもはや著者の金丸先生を恩師と呼びたい勢いの名著を紹介します。
"カラー図解 最新 Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる (ブルーバックス)"(金丸隆志 著)
ラズパイの初期セットアップから始まり、章をすすめるごとに登場する演習を書いてある通りに進めていくたけで、電子回路や電圧制御の何たるか、各種インターフェースの特徴と使い方、pythonプログラミング、部品調達方法が自然と身につく仕掛けになっています。
軽重の付け方が上手で、学習目的が明確に定義されているので、今理解しなくても良い部分はそのように明言してくれます。
原理的な仕組みから順に教えてくれるので、後続の章でつかわれる技術が前段の技術を理解していることでよりわかりやすく納得感を得られます。
なおかつこれ一冊で最終章では
インターネット経由でスマホからラズパイを載せたカメラ付きキャタピラロボットを操作することまでできるようになります。
電子工作経験のない私が予定よりかなり早く、ラズパイ入手から3週間でスマホタッチロボット「タッチくん1号」を完成させられたのは、紛れもなくこの本のおかげです。大感謝。