見出し画像

自分のLEVELを上げます! その1

先週 ワークショップが中止となりましたが、自分のレベルを上げるべく、勉強(実験)をしています。

一つ目は、以前ここの記事で紹介した「プラレールのリモコン化」の現代版につながる実験です。10年前の玩具(装置)では従来の無線技術を利用して「プラレール」を動かしていましたが、現代の無線通信といえばやはり「Wi-Fi」や「Bluetooth」を使ったモノですね。これについても既に多くの方が記事や動画をアップされています。それらを参考に「ラジコンカー」を製作してみました。

使用しているのは「ESP32」です。ワンチップのコンピュータでArduinoと同様にプログラム開発ができます。「Wi-Fi」や「Bluethooth」の機能を持っていて、既に多くのサンプルプログラムやモジュールが作られており、これらを用いることで、簡単に工作することができます。一つ1000円程度で、USBで電源を供給すると直ぐに動作します。豊富な入出力端子を持っていて、ワクワクする仕様です。

以前作った「ライントレースカー」を利用し、搭載していたアナログセンサ・制御回路を「ESP32とモータードライバー」に置き換え本体は出来上がります。ここで、コンピュータ用とモーター駆動用の電源は別にしました。このコンピュータはUSBからの電源で動作しますが、3.3V電源端子があり単三電池2本でも動作します。コンピュータとモーターをこの電池2本だけで動作させると荷が重いです。 二つのモーターを勢いよく回すと電圧が落ちコンピュータが動作しなくなり暴走してしまします。(いわゆるノーコン状態)コンピュータ回路に比べて大きな電流を必要とするモーターなどの負荷をぶら下げる時は電源を工夫する必要があります。

教員時代に「ロボット競技大会」や「相撲ロボット」「マイコンカーラリー」などの大会に参加させてもらいましたが、「電源」は曲者です…

操作は「スマホ」「タブレット」を使います。これらのアプリを自分で開発できれば良いのですが、まだそのスキルがありません。(10年以上前からこちょこちょ勉強してみたのですがモノになりません…プログラムのセンスがないんかなあ〜HyperTalkはスラスラ(?)浮かんできたんだけど…)

そこで、先人のお知恵を拝借。「Blynk」というよくできたアプリがあります。これを使えば「ESP32」を「Wi-Fi」や「Bluetooth」を使ってコントロールできます。操作画面に表示するボタンやスライダーにポイントが割り当てられており、合計2000ポイントまで無料で使えます。例えばボタン一つは200ポイント。ラジコンを前後左右に動かすボタンを4つ使用すると800ポイントになります。

あらかじめArduino IDEに「Blynk」のスケッチ(プログラム)を読み込ませておきます。必要に応じて「Wi-FI用」、「Bluetooth用」を選択します。今回はインターネット環境がなくても遊ぶ事ができるよう「Bluetooth用ラジコン」にします。

「Blynk」でブロジェクトを作成すると、事前に登録したメールアドレスにプログラムに必要な「コード」が送られてきます。このコードとスマホの上のボタンが押された際、ESP32のどの端子に信号が「出力」されるかなどの命令をプログラムとして記述します。 (下のプログラムは仮想ボタンを使用したもの)

プログラム(ラジコン)

例えば、このラジオコンカーは左右にモーターがあって両方のモーターを前に回転させれば前進、後ろに回転させれば後進右のモーターだけ前に回転させれば左折、右のモーターを前、左のモーターを後ろに回転させれば左旋回となります。ESP32からの出力をモータードライバーに送り、それぞれのモーターの回転方法を決め車をコントロールします。図を参考にして下さい。(信号1=High  0=Low)

モータードライバー

一応完成ですが、一つ疑問。「Blynk」 のボタンには「押している時だけON」の信号が出力されるもの(離すとOFFになる)⇦リアルタイムスイッチと、
「一度押すとON」「もう一度押すとOFFが出力されるもの」があります。⇦ ラッチスイッチ     

直接「ESP32の出力端子に信号を送るボタン」ではリアルタイムスイッチとなり「仮想ボタン(一つのボタンで複数の端子の出力を制御できるようにしたボタンのこと)」の場合はラッチスイッチになるようです。⇦ ここがどうなのか?単純に私の使い方が間違っているのか?おわかりの方がいらっしゃいましたらお教え下さい。

スイッチについて

例えば、前進ボタンを押すと左右のモーターが前回転後進ボタンを押すと左右のモーターが後回転する「仮想ボタン」を使用した場合、押している時だけラジコンカーに動いて欲しいのですが、前進ボタンを押した後 指を離すとまだスイッチが入ったまままで、車は移動してしまいます。止めたい時は別に作成した「停止ボタン」を押すことになります。う〜ん… ⇧ 上のプログラムがそうです。
⇧上の動画はリアルタイムスイッチに書き換えて操縦しています。

まあ、詳しことは置いといて、コンピュータから信号を出力し、その信号を受けてモーターの回転方向が制御される流れについては小学生にも十分理解できる事だと思います。ブレッドボードを使って部品を並べ、配線して回路を組み、出来合いのプログラムに少し手を加えて新たなプログラムを作る。自分のスマホでラジコンカーを操縦する。こんな体験したらもう「わくわく感MAX!!になるでしょう。

「おもしろ〜い! 次は、こう動かしてみよう。こんなことできるかな〜」って




この記事が気に入ったらサポートをしてみませんか?