PCとラズパイ連携


H30.3.15

 ルーターを起動して、取りあえずラズパイだけつないでおく。iPodToutchをこのルーターに接続してやると、NodeRedで作成したラズパイのBME280画面を見ることができる。グラフを載せてしまうと固まるようになったので、数値だけにしてみた。すると、刻々と変わる気象要素がiPodTouchでも見ることができた。

 何か役に立たないかな?>P>  フロー画面も見ることができたけれど、これって、操作はできないよね?! できたとしても、とてもとても画面が小さくて扱えないけど。


H30.1.24

 母艦PCから無線WIFIでラズパイのデスクトップをコントロールすることができる。ラズパイにインストールされているScratchを母艦PCから動かすことができるということだ。

 Scratchでプログラミングすることで、ラズパイのGPIOを通してモーターを制御できるので、母艦PCからラズパイ搭載の車を思う通りの動きをさせることができることになる。

 家庭内であればインターネットにつながるネットワークができているので、VNCを利用して母艦PCとラズパイは簡単につながった。けれど、勤務先や学校などでは勝手にネットワークに入ることができないので、簡単にラズパイをネットワーク接続することはできない。

 そこで、場所を選ばす母艦PCとラズパイを接続しようと試みた。けれど、徒労に終わった。

 最初に、昔からある方法(DOSの時代にやったような...)のアドホック接続を試みた。ネットにはいろいろな情報があったが、ころころ変わるラズパイのOSのバージョンによって、どうも設定の方法がさまざまになってしまっている。私のラズパイはstretchなのだ。また、windowsだったりMACだったりする説明ということでの問題もある。なかなか難しい。

 ラズパイをアクセスポイントにしてしまうという手も試みた。アクセスポイントになったからといってVNCでラズパイをコントロールできるかは不明だったのだけれど。これも、アドホックの時と同様の理由で上手くいかなかった。ただ、2度ほど母艦PCから、アクセスポイントになったラズパイを見ることができた。しかし、そのアクセスポイントにつながらなかった。ネットワーク関係についての理解不足だね。

 諦めかけたのだが、ふと「家庭内のローカルネットワークがルーターを使ってできるのだから、ラズパイと母艦PCだけのネットワークをルーターを使って作ればいいのじゃないか??」ということにひらめいた。← 遅いね(^^;)

 家庭用のインターネットにアクセスしているルーターのケーブルを引き抜くことができなかった?ので、安いルーターを注文することにした。

 届いたので早速試してみた。

 ルーターに電源を入れてみる。ラズパイで探してみるとちゃんとある! 当たり前か。母艦でも認識できるし、なにか両者はつながった模様!

 両方がつながった状態で、ラズパイのVNCサーバーでアドレスを確認する。母艦のVNCビューワーにそのアドレスを入れてみると、見えた!

 外のインターネットワークにつなぐ必要がないのでこれで完了。このルーター5V2.9Wとあるので、モバイルバッテリーでも運用できそうだし。これで、山野のどこでも活用ができる。

 両者はつながっているので、VNC経由でファイル交換もできた。面倒な操作だけど。共有フォルダを設定すればもっと簡単にできるかな。


H30.1.17

 RaspberryPi_ZERO_WのOSにはStretchを入れてある。ネットにあった「自動起動の5つの方法」という記事にあった5つの方法を実行したが、実は上手く動かなかった。RasbianはJessie以降の自動起動は、systemdを使うということをネットのどこかで見たこともあり、じっくり取り組んだがこれもだめだった。自分の理解力の弱さにめげる。

 ふと目にしたRaspberryPiのConfiguration。Interfaceのタブを開いたら、VNCの項目があって、Disableにマークされているではないか。そういえば、新しいraspbianにはVNCが入っているという記事も見たような気がする。

 Enableにマークして再起動すると、なんと母艦とつながった。母艦PCにZERO_Wの画面が出てきたのだ。けれど、遅い!

 結果として実行できたのだが、あれこれと5つの方法を試しているので、configurationのEnableをマークしたことの他に、どの手段が妥当だったのかが不明なままだ。

 いずれにしても、母艦でZERO_Wをコントロールできたことは嬉しい。しかし、操作に対する反応が遅い。これはZERO_Wだからなのか。  母艦からZERO_WのScratchを起動して事前に作っておいたプログラムファイルを呼び出して実行すると、当たり前のことだが、その通りに車は動いた(^^)/  そこで、VNCに関しては無垢のPi3でもやってみた。すると、StretchにはRealVNCのモジュールがプリインストールしているので、サーバーのサービスを入れてあげればすぐにVNCサーバ化するらしい(プログラムはインストールしなければいけない)ことが分かって試してみたところ、満足するスピードで母艦に画面が複製されてつながった。

RealVNCのサーバーをインストールする
 sudo apt-get install realvnc-vnc-server
タスクバーのラズベリーアイコンMENUから設定−RaspberryPiの設定−インターフェースVNCで有効にするとラズパイ起動時のサービス自動起動設定までされる。

 インストールするとタスクバーに出てくるRealVNCアイコンをクリックで表示されるアドレスを母艦のVNCビューワーで入力すれば、アクセスできるようになる。ただ、VNCビューワーもRealVNCのものでなくてはいけない。母艦に残っていた前のビューワーではアクセスできなかった。

 車の運動状態だが、画面に雷マークが出ないので、モーター2つとWIFI、ナノボードや本体などの電力を、百均で購入した300円のモバイルバッテリーは力を発揮しているということだ。ありがたい。

ここで動画が見れる。Scratchのプログラムは下図の通り。ただし、「1秒待つ」でなく、「0.5秒待つ」ほどにしたと思う。待ち時間の調整で真四角に動くことができるかもしれない。

 ただ、動かしてみて、車の車輪の固定に不安が残った。小さなビス1つでは気がかりだ。細くてもボルト止めが適切か。また、車体にモーターを取り付けている部分が、接着剤で取り付けたものなので弱そうだ。これも2本のボルトで留めてみたい。

 子どもが扱うとしたら、もう少し強度を上げる必要があるからね。

 モバイルバッテリーが使えるなら、次のステップとして、サーボモーターを2個使ってコントロールする車を計画してみようと思う。