2021/12/15 よりサイトリニューアルしました

Raspberry PI ZERO2 W で2足歩行ロボットottoを動かしてみる「通信時のタイムラグが無くなりました」

Raspberry PI ZERO 2 W

先日、ひょんなことからなんと「Raspberry Pi ZERO2 W」を入手致しました。

※現時点(2021/12/6)で技適が取れてませんので、国内での使用は制限されていますが、我が家のシールドルームにて動作確認等行ってみました。

ZERO W からZERO2 W になって大きく変わった点は「4コア」になった所でしょう。その辺りの違いを知るために、今回は「otto」の二足歩行ロボットに Raspberry Pi ZERO2 W を制御基板として組み込み、ZERO W との違いを確認しましたので、ここで結果をまとめようかと思います。

 

 

検証内容

ブラウザからpythonスクリプト実行時のタイムラグを比較

raspberry pi zero 2 w otto

以前、ブラウザからサーボモーターを動かす2足歩行ロボットを作成しました。動作の流れとしては、

Raspberry Pi(Apache→js→CGI(Python))→i2c→PCA9685→サーボモーター

になります。ラズパイに立てたWEBサーバーにコントローラーとなるhtmlを格納し、ボタン押下でjsイベント発火、ajaxでCGIのpythonスクリプトに値をpost、値に紐づいた動作をPCA9685のモータードライブへ転送、の流れです。↓

 

この一連の流れで、「 ajaxでCGIのpythonスクリプトに値をpost 」の部分が、ZERO W の場合に遅延が発生していました。プログラムの構造的に、pythonスクリプトの起動に時間がかかってしまえば連続した動作が出来ないので、一旦停止してしまう場面がZERO W の場合では多く見受けられました。jsのセットインターバルとpythonスクリプトが重なってしまい処理が追い付かなかったのか(タスクの重複)、単に通信速度が遅いだけなのか、とにかくシングルコアだったのでなにかと動作が遅い印象でした。

ZERO W の場合、pythonスクリプトを起動する際に、だいたい1.5秒ものタイムラグが発生していました。使い物になりません。

これがZERO2 Wの場合、見事に解消されていました。遅延時間はほぼ無しです。4コアで処理速度約5倍とはよく言ったものです。個人的には大満足です。電源の起動も早い。

 

 

otto

タイムラグ無し

こんな感じで、jsのセットインターバル時間に対して指定した時間通りにpythonスクリプトが起動しているので、連続した動作の間にタイムラグが発生していません。↓

https://twitter.com/ketunorobio/status/1467669616231346176

 

 

まとめ

otto raspberry pi zero 2 w

ちっこいロボットやらを作る時にはマイコンも小さいやつを使わざるを得ません。ラズパイ3とか4が入ればいいですが、中々使えないですからね。。無線付きで低価格の小型マイコン、かつこのパフォーマンスがあればかなり重宝しそうです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です