2026年4月22日水曜日

絵文字ロボ

プログラミング教育用のロボットです。文字を使わず記号でプログラミングします。おもな構成要素は、Arduino Nano、OLEDディスプレイ、超音波距離センサ、赤外線受光素子、赤外線反射型センサー、スピーカー、モータードライバー、ギヤモーター、9V電池です。プログラムは最大31ステップまで入力でき、9つのプログラムをEEPROMに記憶させることができます。

 

 

 

 

 

 


プログラムは、下のような赤外線リモコンで入力します。加えて、テレビのリモコンも利用可能です。

 

 

 

 

 

 

 

 

 

 

 

 

簡単なプログラムの例です。前向きと回転の矢印はロボットの動きの命令、右端の大きな矢印は先頭に戻る命令です。 一つのロボットの動作命令は0.8秒続いたあと、次の命令に移ります。これをタクトタイムと呼びます。

 

 

 

 

 

 



このプログラムの入力と実行の様子です。前進、右45度回転、前進、左45度回転、を繰り返します。

 

 

 

次のプログラムはライントレースです。最初の三角はロボットの動作を連続にする命令です。0.8秒のタクトタイムが無くなり、モーターへスピードの指示を出すとすぐに次の命令に移ります。下線のある4つのブロックは、「もし」が1つ、「そうでなくてもし」が2つ、「そうでなければ」が1つです。やっていることは、

もしロボットが線の中央にいれば前進

そうでなくてもしロボットが線の左側なら右前へ

そうでなくてもしロボットが線の右側なら左前へ

そうでなければ前進



 

 

 

 

 

 

上のライントレースのプログラムの入力と実行の様子です。 

 

 

このロボットにはプログラムの流れを可視化できるモードがあります。上のライントレースのプログラムで、ロボットが線の左側にいる場合の画面です。四角で囲まれている命令が実行された命令です。最初の「もし」で条件判断(ロボットが線の中央)が偽なので前進は実行せず、次の「そうでなくてもし」の条件判断(ロボットが線の左側)が真なので右前への動作を実行します。その後は「もしおわり」の命令までスキップし、最後の「くりかえす」命令で最初にもどります。表示のために若干の動作の遅れが生じますが、ロボットを動作させながらプログラムの流れをリアルタイムに見ることができます。


 

 

 

 

 

 

 

 

 回路図やプログラムは後日公開予定です。

 

2025年3月16日日曜日

Emoji Robot

The robot is for educational purpose and is programmed without language.  Main components are Arduino Nano, OLED display, ultrasound distance sensor, reflective photo sensors, IR receiver, speaker, motor driver and geared motors.



 

 

 

 

 

 

 

The program is entered using an IR remote control shown below.  Regular TV remote controls can also be used after teaching its IR codes.




 

 

 

 

 

Below is a program of zigzag motion.  Small arrows are robot movement, and the big arrow at the end is the instruction to go back to the beginning.  Each motion continues 0.8 seconds (takt time).

 

 

 

 

 

 

Here is the video.



Below is a program of line following.  The first triangle instructs the robot to keep moving (as opposed to 0.8 sec takt time).  There are 4 blocks (if, else if, else if, and else). 







And here is the video.

 



2022年9月11日日曜日

バランスロボをESP NOWで操縦

 月刊I/O(2022年7月号、工学社)で紹介していただいたM5ATOMのバランスロボ(リンク)を、ESP NOWを使ってジョイスティックで操縦できるようにしました。

左がロボット、右がジョイスティックコントローラです。



ジョイスティックコントローラの裏側からの写真です。M5StackのATOM Lite、TailBAT、 Joystick Unit(ATMega328内蔵の旧バージョン)を利用しています。(MFT2022で展示したものは、M5StickCで制御していましたが、ソフトを簡略化するためにATOMに変更しました。)

 



 

 

 

 

 

 

 

 このロボットとジョイスティックでサッカーを試してみました。ボールが転がりすぎないように、サッカーフィールドには布を貼ってあります。


 

 

 

 

 

 

 

  


   ビデオです。ジョイスティックを押し込むと、ロボットの顔が赤くなるようになっています。


ロボットのソースコードです

コントローラのソースコードです

 2022/9/14 上記ソースコードのリンクが間違っていたのを訂正しました。

2022年4月1日金曜日

M5StickCとサーボでバランスロボ

 倒立振子を研究されている n_shinichi さんとのやり取りの中で、思いついたバランスロボです。M5StickCと連続回転サーボと車輪だけの構成です。

 サーボはFS90R、車輪は「ちっちゃいものくらぶ」のプーリー+Oリングです。 


 

裏側です。サーボの電源はM5StickCの5V出力を使っていますが、BATから取ったほうがよいかもしれません(試してません)。


ビデオです。


回路図です。(2022/6/4 追加)


ソースコードはこちら


2022年3月19日土曜日

M5Atomでバランスロボット

 M5ATOM MATRIXとTailBATでバランスロボットを作ってみました。


 

TailBATの中には若干スペースの余裕があるので、そこにモータードライバ(共立エレショップのKP-DRV8830)を入れました。GROVE端子の基板接続部分からモータードライバへ、i2c信号と電源5VおよびGNDを配線してあります。i2cのプルアップ抵抗は追加せず、ESP32の内部プルアップのみを使っています。i2c(Wire)のクロックを50kHzに落として使っています。


モーターは、「ちっちゃいものくらぶ」の「ちびギアモータ+プーリー・タイヤセット」(https://tiisaishop.dip.jp/product/sg/)です。



モーターへの電線を通すために、やすりでTrailBatのケースを一部削りました。

 
 
 
 カバーを付けたところです。



2つのモータは、厚めの両面テープで貼り付けました。M5ATOMを取り付けた全体像の写真です。


 

裏側です。


 

M5Stack の Timer Camera X に付属のマウンターを使って、M5CAMERAに付属のスタンドを取り付けると、腕のようになります。(格好だけです)


回路図です。TailBATは省略してあります。


ビデオです。


 

TailBATについての注意。手元にあるTailBATには2種類あって、古いタイプ(写真左)は、Grove端子のソケットがATOMのピンに届きませんでした。新しいタイプ(写真右)ならば、大丈夫でした。


 

ソースコードはこちらです。

 

2021年7月28日水曜日

M5StickC Clock Auto Tuner

M5StickC (ESP32) controls the accuracy of a small pendulum clock.  The pendulum has a small magnet attached to it.  The CPU detects pendulum vibration with a Hall sensor (A3144), and determines the rate of the clock.  It then compares with the internet time, and depending on the difference, the coil under the pendulum pulls down or push up the pendulum.  This has the same effect as adjusting the gravity.


Here is the close-up of pendulum, magnet, coil and Hall sensor.

 

The accuracy chart of the clock displayed on the M5StickC.


The chart below shows accuracy and current for about 4 hours.  The blue line is clock accuracy (left scale in seconds).  Once it gets stable, the deviation is within +/- 0.2 seconds.  The red line is relative coil current.  As the clock's mainspring gets unwound, the coil current is gradually changing.



Below is the schematic diagram.  The clock has a tiny pendulum which weighs only 3.3 grams including the magnet, thus does not require much magnetic force to change cycle time.  So the coil is connected directly to the M5StickC GPIO with a series resistor of 100ohm.


Here is the video.  The clock accuracy chart and the relative coil current chart are alternating every 5 seconds.