ラベル DRV8830 の投稿を表示しています。 すべての投稿を表示
ラベル DRV8830 の投稿を表示しています。 すべての投稿を表示

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年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のピンに届きませんでした。新しいタイプ(写真右)ならば、大丈夫でした。


 

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

 

2019年8月11日日曜日

M5StickC バランスロボ


M5StickC には加速度計、ジャイロスコープ、電池、などが入っており、 モーターとドライバを追加するだけで、倒立振子を作ることができました。
 8月2日のM5Stackユーザーグループミーティングと8月3日4日のメーカーフェア東京で展示しました。

 全体像です。左から、M5StickC、モータードライバ、モーターです。
白い粘着テープは転倒したときの衝撃防止用です。


モータードライバは、共立エレショップのKP-DRV8830。
i2cのプルアップに4.7kΩの抵抗を使っています。
モーターも、共立エレショップのRM0TV0009AWZZ。
軸には、内径0.8mmの熱収縮チューブをかぶせています。
モーターや、基板の固定は両面テープで、かなりいい加減です。



裏側です。


MPU6886対応版はこちら。

2018年6月13日水曜日

振り子時計の精度改善 - その2

メーカフェアプラハでMAKER of MERIT賞をいただきました。
メーカーフェア東京2018にご来場の皆様、ありがとうございました。




以前実験に使った振り子時計(リンク)は、大きすぎてメーカーフェアに持って行けないので、小型の振り子時計を入手しました。高さ50cm程度のものです。



ドアを開けたところ。



調整デバイスはWROOM-02-DEVを使って作り直しました。



遅れ進みのデータをブラウザでグラフ表示(青線)できるようにしました。正が進み、負が遅れです。+2/-1秒以内に収まっています。赤線は正が振り子を上方向に押し上げる方向、負が振り子を下に引っ張る方向の磁力線の強さを表します。



振り子を350秒ほど止めた後の復帰の状況です。約4時間で誤差がなくなっています。(上はスマホの画面ですが、こちらはタブレット)。



回路図です。



ソースコードはこちら(Source Code)


2018年3月20日火曜日

Improving Accuracy of Pendulum Clock





https://prague.makerfaire.com/makers-exhibits/
Maker of Merit prize won at Maker Faire Prague 2018!




Spring-powered pendulum clocks have accuracy of 10 seconds to a few minutes per day, and the inaccuracy accumulates every day.  The clock in the picture for this project is probably 50-year old and I could not get the accuracy better than 30 seconds per day.   We will see how it gets improved.


The period of pendulum swing cycle is
T = 2 * pi * sqrt( L / g )
where L is the length of the pendulum and g is the acceleration of gravity.
The idea of pendulum tuning is to add/subtract magnetic force to/from the gravity force and change the T.
 T' = 2 * pi * sqrt( L / (g + A/M) )
where A is the magnetic attraction force to the pendulum, and M is the mass of the pendulum.


Top view of the device.



Below is the side view.



Schematic diagram


The clock above should make 130 pendulum cycles per 147 seconds according to the gear train reduction ratio.  The time of the clock in seconds is
tc = C * 147 / 130
where C is the cycle count of the pendulum.
Every 60 seconds, tc is compared to the CPU time, and depending on the difference between the two, appropriate power is applied to the coil.
CPU time is calibrated every 5 minutes with NTP time server.


The device has web server function and any browser can access through WIFI connection.  The device status as well as the accuracy and coil power history for the last 15 hours can be displayed.  Below is a tablet screen showing a part of the accuracy history (in seconds).  In addition, device parameters can be modified with web browser.



Below is a graph showing time error and relative current on the coil for 26 hours.  A big delay on the left is because the pendulum was stopped for about 25 seconds during spring winding.  Other than that, the accuracy was within 2 seconds.



The latest hardware and software are here.




Click here to see another project for a wood foliot clock.  (in Japanese)



2016年5月2日月曜日

ミニ2輪倒立ロボにライントレースをさせてみました

全体の写真です。ライントレース用に反射型赤外線センサー、衝突防止用に距離センサーを追加しました。



赤外線センサーは、ヴィストンで安売りしていた反射型赤外線センサーを改造して、出力電圧が0から1ボルトになるようにしました。(ESP8266のアナログ入力電圧の範囲に収まるように)



マイクロテクニカのブレークアウトボードには、アナログ入力の配線がないので、WROOM02に直接端子をはんだ付けしました。(写真右上の白い線が接続されている)




隊列を組んでライントレースをさせたいので、衝突防止用に距離センサーを使っています。シャープのGP2Y0E03というセンサーで、I2Cで通信します。



ライントレースの動画です。懐中電灯を検出して停止します。懐中電灯を取り除くと、また動き出します。





2016年4月30日土曜日

ミニ2輪倒立ロボを作ってみました

ESP8266とDRV8830を使用


全体の写真です。白いプラスチックの半円は、倒れた時に基板類を保護するため。


裏側です。電池は単4型Ni-MHを3本です。レギュレータは使わず直結しています。


モーターは、eBayで1個370円くらいで買った3V 100RPMというマイクロギヤモーター。ギヤ比は75:1と思われます。巻線抵抗は約10Ωでした。固定金具はホームセンターで買ったパイプなどの固定用のもの。車輪は、確かマルツで買ったと記憶してます(2個セットで400円くらい)。


マイコンはWROOM02をマイクロテクニカのブレークアウトボードに載せています。スライドスイッチは、ブートモードの切り替え用。タクトスイッチはリセット用。


ジャイロ加速度センサーはMPU6050。アマゾンで300円くらいで買えます。モータードライバは、DRV8830。秋月で1個170円です。電流検出抵抗として0.2Ωを入れています。どちらもWROOM02とI2Cで通信しています。


周回動作の動画です。