日記とか、工作記録とか

自分に書けることを何でも書いてゆきます。作った物、買ったもの、コンピュータ系の話題が多くなるかもしれません。

Smart Video Car Kit for Raspberry pi(消費電力が測れない編)

引き続きSmart Video Carをいじって遊びます。
f:id:WindVoice:20161120152159j:plain

もうちょっとスマートにコントロールしたい

前回の最後にスクリーンショットを載せましたが、Smart Video Carの操作はなんといいますか、「簡易な」という表現がぴったりの見た目です。現代的なゲーム世代には到底受け入れられそうにありません。マウスでボタンをクリックして操作するということは、一度に一つの操作しかできないという意味でもあります。非常にプリミティブな前進、後退、ハンドルを右に、左に、上向け、下向け…… など、ひとつひとつやるのでは眠くなってしまいます。

このあたりソースコードではどうなっているのかなということで調べました。

まずはWindowsから直接コントロールしよう

コントローラの役をしているクライアントプログラムは、Pythonで動いています。Raspberry piTCP接続して、前進、後退などのコマンドを送るという単純な仕組みで動作しています。Windows版のPythonをインストールしてWindows PCにもSunFounderのGitHubサイトからソースコードをダウンロードしておけばOKです。Surfaceなので64bit版をインストールです。

www.python.org

あとはRaspberry piでサーバプログラムを起動して、Windows PCからクライアントプログラム(接続先IPはRaspberry piに変更)を起動すれば、GUIWindows上に表示されます。

マウスではなくキーボードでコントロール

マウスのコントロールより少し便利にキーボードで操作したいわけですが、ソースコードをよく見たらもうWASDでの操作には対応していました。でもカメラの向きを操作するキーはバインドされていなかったので、この部分だけ追記しています。

ゲームコントローラで操作しようとするともう少し工夫が必要だと思いますが、とりあえずこれだけなら簡単でした。というかソースコード短いですね。ほとんど見たまんまのことしか書いていないというか……

# =============================================================================
# Bind buttons on the keyboard with the corresponding callback function to 
# control the car remotely with the keyboard.
# =============================================================================
top.bind('<KeyPress-a>', left_fun)   # Press down key 'A' on the keyboard and the car will turn left.
top.bind('<KeyPress-d>', right_fun) 
top.bind('<KeyPress-s>', backward_fun)
top.bind('<KeyPress-w>', forward_fun)
top.bind('<KeyPress-h>', home_fun)
top.bind('<KeyRelease-a>', home_fun) # Release key 'A' and the car will turn back.
top.bind('<KeyRelease-d>', home_fun)
top.bind('<KeyRelease-s>', stop_fun)
top.bind('<KeyRelease-w>', stop_fun)

# ちょっとした改良。ikjlキーでカメラの向きを変更
top.bind('<KeyPress-i>', y_increase)
top.bind('<KeyPress-k>', y_decrease)
top.bind('<KeyPress-j>', x_decrease)
top.bind('<KeyPress-l>', x_increase)

消費電力はどうなのか?

Raspberry piは消費電力が少ないことがひとつのウリなわけですが、追加のボードを使ったりDCモーターを2個つけたりしていますから、消費電力が大きくなっているはずです。これを測りたいのですがよい方法がありません。以前購入したUSB電流/電圧計で測ってみましたが、この場所ではモーターの消費電力はふくまれていませんでした。モーターを回しても数字はほとんど変わりません。4.99V - 0.28Aですから、だいたい1.4Wくらいの消費電力になりますね。

youtu.be

SunFounder(サンファウンダー)スマートビデオカーキット [並行輸入品]

SunFounder(サンファウンダー)スマートビデオカーキット [並行輸入品]

Smart Video Car Kit for Raspberry pi(試験走行編)

さて、前回の組み立てから間が開いてしまいました。試験走行の様子です。
f:id:WindVoice:20161120095729j:plain

インストール

メーカーであるSunFounderから、動かすためのプログラムが提供されています。これを搭載したRaspberry piに配置(git clone)しておくのが最初のポイントになります。

github.com

git clone https://github.com/sunfounder/Sunfounder_Smart_Video_Car_Kit_for_RaspberryPi.git

モータドライバ他との接続でRaspberry piのI2Cポートを使用していますので、raspi-configコマンドでポートを有効にしたり、/boot/config.txtを変更したりします。このあたりは解説の小冊子がついていますので(英語ですが)、コマンドラインをそのまま入力していけば準備ができると思います。

ほかにカメラの映像をストリーミング配信するためのMJPG-streamerをインストールしたりなどしてゆきます。

カリブレーション(調整)

サーボモータの初期の状態がとても重要です。くみ上げの段階で、サーボモータがちょうど首振りの真ん中になるようにしているのですが、プログラムも初期配置の状態を記憶しておかなくてはなりません。

カリブレーションのためのプログラムもGitHubに含まれています。Raspberry piIPアドレスだけちょっと書き換えて動かせばOKです。Raspberry piリモートデスクトップ接続して、このプログラムを起動すると、簡易的なGUIが起動します。f:id:WindVoice:20161120103741p:plain

なんかよくわからない画面ですが(笑)、とりあえずこれで車が前後に正しく走るか(ケーブルの接続を間違えているとモーターが片方逆回転になったりなどするかも)、左右にタイヤが振れるか、カメラの首振りが正常かを確認します。うまくいったところでConfirmボタンです。

いざ出発

プログラムは、サーバプログラム(DCモータ、サーボモータ、カメラを制御する)と、クライアントプログラム(サーバへ動作コマンドを送信する)に分かれます。クライアントプログラムはGUIを使うので、リモートデスクトップ環境から起動する必要があります。

f:id:WindVoice:20161120104717p:plain

またストリーミングサーバプログラムも別に起動することができ、車載カメラ視点の映像をFirefoxから(なぜかIE非対応)参照することができます。

f:id:WindVoice:20161120104449p:plain

こんな感じで車をリモコン操作して楽しむ…… というのが、とりあえずデフォルトの機能でできる部分です。動作している状態の動画はこちら。


Smart Video Car Kit for Raspberry pi

今後の展開

正直なところ低機能です。工作キットですから、ここから各自でいろいろ試してみてね、というのがメーカーの意図なんだろうと思います。プログラムはPythonでできていますから読むことができますし、GUIのボタンをポチポチ押しながら動かすちょっとイケてない感じも、それが嫌なら自分で開発しよう、ということなんだろうと前向きに解釈するのがよいでしょう。

やってみたらいいかも、というToDoを挙げておきます。

  • クライアントプログラムはWindows PCにおいておく(難易度:低)
  • 車の操作をゲームコントローラに対応させる(難易度:中)
  • カメラに映ったものを識別する(難易度:高)
  • さらに自動走行までできちゃったりする(難易度:超高)
  • DCモーターを換装してパワフルにする(もしかすると電源強化が必要かも)

SunFounder(サンファウンダー)スマートビデオカーキット [並行輸入品]

SunFounder(サンファウンダー)スマートビデオカーキット [並行輸入品]

Smart Video Car Kit for Raspberry pi(組み立て編)

目次

Smart Video Car Kit for Raspberry Pi(買い物編) - 日記とか、工作記録とか

前回購入したラズパイ搭載の車を組み立てます。今回は写真多めで。

車体の組み立て

基本的には、アクリル板のボディにパーツを搭載してゆく手順です。

前輪がサーボモータSG90で左右に振れることで曲がれるようになっています。アクリル板は左右対称ではないので注意が必要です。気がつかずに裏表逆のまま組み立ててしまい一度分解することになりました。

f:id:WindVoice:20161112195945j:plain

後輪はDCモータ2個とギアがセットになっています。モータはそれほどパワーのある感じではありません。スピード感のある走りを期待していたのですが……

f:id:WindVoice:20161112200004j:plain

車体の前後を合体させて電池ボックスをつけました。青のリボンはあとで電池を抜きやすくするためのひもです。

f:id:WindVoice:20161112201525j:plain

フロントカメラの組み立て

USBカメラが付属しており、これを車の眼にすることができます。カメラの上下角度、左右角度を変えるためのサーボモータSG90が2個付いておりこれを組み立てます。

こんなのと……

f:id:WindVoice:20161112203614j:plain

こんなのを組み合わせて……

f:id:WindVoice:20161112204013j:plain

こうなります。

f:id:WindVoice:20161112204347j:plain

車体と結合してこんな結果になります。

f:id:WindVoice:20161112205914j:plain

電子部品の組み立て

ここまできてやっとRaspberry pi 2を搭載です。古くなってちょっとサビてきていますが。

f:id:WindVoice:20161112210718j:plain

PWMドライバ(これはサーボモータSG90の制御で使います)、電源モジュール、L298N DCモータドライバを搭載します。
念のため注:PWMドライバモジュールは上下逆につけてしまっています。あとで直しました。

f:id:WindVoice:20161112211255j:plain

ボード類が載ったらケーブルをつないでいきます。ハンダごてはいりません。ドライバを使って締めて固定する部品があります。

f:id:WindVoice:20161112214910j:plain

カメラやWi-Fiアンテナを接続して組み立て完成です。ここまでくるのに約4時間かかりました。

f:id:WindVoice:20161112215301j:plain

次回は電池(18650 3.7V リチウムイオン充電池)を2本セットして動作確認です。

f:id:WindVoice:20161112231401j:plain

SunFounder(サンファウンダー)スマートビデオカーキット [並行輸入品]

SunFounder(サンファウンダー)スマートビデオカーキット [並行輸入品]

Smart Video Car Kit for Raspberry Pi(買い物編)

前回までのあらすじ

以前作成したRaspberry pi搭載完全自作のロボット自動車なのですが、正直私にはハードルが高すぎました。

windvoice.hatenablog.jp

いちおうなんとか動くところまではきたのですが、やけに動作が遅いし(たぶんモーターのパワーがたりない)、ボディがどう考えてもイケてないし(LEGOで組んだほうがよかったですかね)、モバイルバッテリー駆動にしたら車体重いし、それらをリニューアル設計することも考えたのですが、私にはかなり大変そう(もともとハードに詳しくないというのもあり)だったので、初心者向けのキットを探すことにしました。物理的なものを自分で設計できる人はすごいなぁと思う次第です。

買い物

SunFounderというサイトで見つけました。Smart Video Car Kit for Raspberry Piというものです。

www.sunfounder.com

Amazonでも買えますが、並行輸入品のためやっぱり高価なので、私は上のWebサイトから直接購入しました。英語での購入に不安がなければ上のサイトでよいと思います。思っていたよりは結構スピーディで、(香港から)DHLで5日で到着しました。Raspberry pi同梱モデルとそうでないものがあるのですが、私はRaspberry pi 2と3をすでにもっているので流用します。

SunFounder(サンファウンダー)スマートビデオカーキット [並行輸入品]

SunFounder(サンファウンダー)スマートビデオカーキット [並行輸入品]

注意事項として、自分で用意するもの、が書いてあります。TF cardというのはSDカードのことのようです。

Self-provided Parts
2 x 18650 Rechargeable Li-ion Battery (3.7V) without protection circuit board
1 x TF-card

リチウムイオン電池で、汎用的な規格のものは身の回りではあまり見ないと思います。18650というのが電池のサイズ(18が直径、650が長さ)を示しているそうです。こちらは1本800円台のものと、2000円近いものに大きく分かれます。

明らかに値段の違いがあるのでこれは何だろうかと調べたところ、高価なほうは過充電、過放電、ショートを防ぐための保護回路がついているということです。保護回路がない場合、充電しっぱなし、放電しっぱなしにするとバッテリーに過度な負荷がかかり危険なこともあるとのこと。というわけで保護回路付きを購入(注:上記注意事項には「保護回路なし(without protection circuit board)」と書いてあるのですが頭に入ってなかった)。

電池、結構でかいです。保護回路があるとサイズが一回り大きくなるのが不安だったのですが、先ほど組み立てたところ問題なく電池ボックスにはまりました。ただし電池を抜き取るときはあらかじめ挟み込んでおいたリボンを引っ張らないと出てこないです。ギリギリサイズ。

f:id:WindVoice:20161112231401j:plain

さて、必要なものはそろいました。次回は組み立て編の予定です。

f:id:WindVoice:20161109210037j:plain

耳かきカメラ(イヤスコープ windows MARK2)

イヤスコープ windows MARK2を入手しました。
f:id:WindVoice:20161103202037j:plain

私は小さいころから耳掃除が苦手です。右の耳を綿棒で掃除していると、ある場所に触れた瞬間に強く咳き込むのです。このあたりに迷走神経というのがあるのが原因らしいのですが、そうとわかっても防止できるわけでもなく。耳の中が観察できたら必要なときだけ掃除できるのに、と思っていました。

この手の製品は前々からあります。すごくほしかったのですが、レビューが悪いものが多くて、どうもまだ使い物になる段階ではなさそうだと考えていました。しかし、先日咳き込んだ勢いで思い切って買ってしまいました。

インストール

USBポートに接続する前に、ソフトウェアのインストールが必要です。CD-ROMの読み込みが必要なことに気が付いてSurfaceでどうするか?と少し悩んだのですが、別のPCで読み込んでインストーラだけコピーしてきたら普通にインストールできました。円盤のドライブを持っていない人は(最近はいる可能性があるかなと)注意が必要ですね。

使う

ソフトを起動したら、USBポートに耳かきカメラを接続します。自動的に映像が映り始めます。

しかし…… Surfaceは高精細ディスプレイのため、映像がほんとに小さいです。それこそ穴を覗きこんでいるみたいです。ちょっとがっかりしたのですが、拡大鏡アプリで200%くらいに拡大するとまずまずの見え具合になりました。GUIにも拡大ボタンがあるのですが、これは画像変換的に拡大するだけで、ウインドウが大きくなるわけではないみたいです。視界が狭まるので意味がないような気がします。

USBケーブルの途中にボリュームコントローラのようなものがあり、ダイヤルをひねるとLEDの明るさが変わります。耳の中は暗いのでLEDをつけないと探しているものは見つからないです。映像は写真に撮ったり、録画したりすることも可能です。

解像度は決して良いとはいえませんが、しかし耳垢を識別するには十分です。先端部分がダイヤルで回転するようになっており、これを回すと耳かきが回転します。これで狙った角度にスプーン状の部分を回すことができます。いずれにしても細かい作業なので、手先が慣れるまでに時間が少し必要です。

で、どうなの?

以下耳掃除画像です。しかし、耳垢がみつからず、つまらない動画になっています。自分の耳の中を見たのは初めてですが、週に一度の耳掃除でも結構きれいになっているものですね(自画自賛)。後半部分は、キーボードなど身の回りの物を映しています。画質など性能を知りたい方もいるのではと思いますので載せていますが、微グロ映像が苦手な方はごらんになりませんように。代わりにSurfaceキーボードのShiftキーを映したものを載せておきますね。

f:id:WindVoice:20161103205409j:plain

余談

解像度を考えると、顕微鏡としての転用は難しそうです。狭いところをピンポイントで見たいような用途がほかにあるかどうか。耳かきは外せるようになっているので、外せば小さなUSBカメラとして使うことも、あるいは可能かもしれません。

のんきな動画(エタノールの蒸発する様子をタイムラプスで)

Windowsで使用できるMicrosoft Hyperlapseというソフトがあることを知ったので、身の回りで何か試せるものは…… と考え、消毒用エタノールが蒸発する様子を記録してみました。


エタノールの蒸発 Time Lapse

涼しい気温のせいかあんまり蒸発せず、Windows 10に標準のCameraアプリは3時間までしか動画が撮れずということで最後まで蒸発させることはできませんでした。3時間の動画をやっぱり3時間くらいかけて変換し(Surface Pro使用)こんな動画になりました。

もう一回HyperLapseにかけないとアルコールが減って見えないかも。タイムラプスはアイディア勝負ですね。

サイキョウ・ファーマ 消毒用エタノールIP「SP」 500mL [指定医薬部外品]

サイキョウ・ファーマ 消毒用エタノールIP「SP」 500mL [指定医薬部外品]

【メモ】すっかり忘れられてた超音波距離センサー HC-SR04

未開封のまま忘れてました。これをなんとかしなくちゃ……
f:id:WindVoice:20161030155707j:plain