読者です 読者をやめる 読者になる 読者になる

日記とか、工作記録とか

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

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

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(サンファウンダー)スマートビデオカーキット [並行輸入品]