ラベル ライントレース の投稿を表示しています。 すべての投稿を表示
ラベル ライントレース の投稿を表示しています。 すべての投稿を表示

2021年6月16日水曜日

壁に張り付くロボットの試作

 プログラミング教室でデモをするときに、ホワイトボードに張り付いて動くロボットがあると便利だろうと考え、JK Soft・ランニングエレクトロニクスさんの「うぉーるぼっと」をまねて、Arduino Nanoで動くロボットを作ってみました。

全体像です。メイン基板は別のプロジェクトで作ったもの、N20ギヤモーターとタイヤはうぉーるぼっとBLEのものを流用しています。タイヤの直径は約43mm、摩擦を増やすために液体ゴムを塗ってあります。


裏側です。電池はリチウム電池2個を直列に接続。中央のネオジウム磁石は直径20mm、厚さ3mmで、真ん中に穴があいているものです。2つのキャスターもどきは、アルミのくるみボタンにプラスチックねじを接着して使っています。

 

横からの写真です。磁石はタイヤに隠れていますが、磁石と壁との距離は2.5mm程度にしています。


動画です。冷蔵庫に張り付けてテストしています。




 

 

 

 

 





2021年6月15日火曜日

ALGYAN6周年基板でライントレース

 ALGYAN6周年IoT基板をいただきました。モータードライバ基板を実装できるようになっているので、ライントレースロボットを作ってみました。基板設計者様の意図とは違う使い方をしている部分もありますが、 なんとか動いています。

全体像です。

 

 

 電池を取り除いて、上から撮った写真です。秋月のDRV8835ドライバーモジュールが在庫切れとのことなので、代わりに、同じく秋月のTC78H653モジュールを使いました。このモジュールは16ピンで、DRV8835モジュールより大きいですが、両端の4ピンを使わず、部品面を下にして実装すると、ほぼDRV8835モジュール同じように使えました。

 

 

TC78H653モジュールの写真です。両端の4ピンと、MODEピン、STBYピンには、ピンをはんだ付けしていません。 VMとSTBYをショートしてあります。ALGYAN基板のJP3は、+5V(CN1側)をブリッジしてあります。

 



CN4USBと、SW1、SW2の穴を利用して反射型フォトセンサを取り付けました。

 

 

裏側です。N20ギヤモータ(手元にあった3V 100RPMのもの)を秋月のユニバーサル基AE-FRISK-120-UV-THに固定し、それをALGYAN基板の取付穴を使ってスペーサを介して取り付けました。3mmのねじを使うため、ALGYAN基板の穴を少し大きくしました。

 

 

電源は、とりあえず9Vの電池から3端子レギュレータで5Vを作っています。

 

 

回路図です。

 


8の字ライントレースの動画です。


 





2021年6月12日土曜日

Arduino Nano でミニロボット


Arduino Nanoを利用したミニロボットです。 鎌ケ谷市中央公民館でのデジタルワークショップ(2021年8月8日)で使いました。

 


全体像です。台車は9V電池のケース、車輪とDCギヤモータは「ちっちゃいものくらぶ」で調達しました。


KiCADで設計して作った基板です。Seeed Fusion PCBで製造してもらいました。モータードライバとして、秋月のTC78H653またはDRV8835が使えるようになっています。

 

部品を実装した裏側です。白い球形のプラスチックはスペーサーです。(2021/8/7 アップデート)


 

回路図です。(2021/8/7 アップデート)

 

 

細い線のライントレースができるようにしてみました。


カーナビの赤外線リモコンで操縦してみました。


ソースコードは、後日アップロード予定です。



2020年5月25日月曜日

BalaCでライントレース

M5StackからBalaCという倒立振子のキットが発売されました。M5StickC、モータードライバが載った基板、ギヤモーター、ホイール、充電池がセットになっています。
これに反射型の赤外線センサーを取り付けて、ライントレースをしてみました。
ビデオへのリンクです。


上からの写真です。サーボのように見えるのはギヤモーターです。オレンジ色のモジュールがBalaCに同梱されているM5StickCで、基板を固定するためのねじ穴が2個追加されています。先端に付いている基板が追加した赤外線センサー部分です。


裏側です。i2cのインターフェイスとモータードライバがBalaCの基板に載っています。青い充電池があるので、モーターを回しても余裕です。M5StickCにUSBを接続すれば、この充電池に充電されるようです。


側面です。


赤外線センサー基板を含む先端部分です。適当なボールキャスターが無かったので、アルミのスピンナーを流用しています。

赤外線センサー基板の表側です。

赤外線センサー基板の裏側です。



回路図です。赤外線センサーはTCRT5000です。フォトトランジスタは、コレクタをLEDのアノードに接続し、約1.2Vで動作しています。M5StickCのVoutが5Vなので、このような回路にしています。




ソースコードの主要部分です(LCDの制御などを省いています)。モーター制御のi2cは正しい使い方かどうかわかりませんが、動いています。

#include <M5StickC.h>

void setup() {

  M5.begin();
  Wire.begin(0, 26); //SDA,SCL
}

void loop() {
  
  int16_t sLeft=analogRead(32);
  int16_t sRight=analogRead(33);
  int16_t diff=(sLeft-sRight)/35;
  drive (30+diff, 30-diff);
  delay(20);
}

void drive(int16_t spL, int16_t spR) {
  drvMotor(0, (int8_t)constrain(spL, -127, 127));
  drvMotor(1, (int8_t)constrain(-spR, -127, 127));
}

void drvMotor(byte ch, int8_t sp) {
  Wire.beginTransmission(0x38);
  Wire.write(ch);
  Wire.write(sp);
  Wire.endTransmission();
}

2017年11月8日水曜日

DRV8835を使った2輪倒立ロボの小改良

昨年作ったDRV8835利用の2輪倒立ロボの、その後の改良です。

赤外線受信素子を搭載し、テレビのリモコンで操縦できるようにしました。手持ちの東芝RegzaとLAPIOという液晶TVのリモコンのコードをデコードするようにしてあります。


モーターのPWM音が低周波でうるさいので、周波数を上げました。
このため、今まではモータードライバ用にProMiniの4,5,6,7番ピンを使っていましたが、8,9,10,11番ピンに変更し、
TCCR1B = TCCR1B & B11111000 | B00000001;
でPWM周波数を変更しています。


モーターからのノイズ対策を強化しました。それでもモーターに大電流がながれるとProMiniがリセットされてしまうことがあります。回路図です。



2016年8月6日土曜日

COTTON虫でライントレースできるようになりました

手元に適当なものがなかったので、反射型赤外線センサーから取り外したフォトトランジスタを使いました。省電力のため、LEDは使わず、環境からの光を使っています。


裏から見た写真です。


A4の紙に描いたトラックの上を走らせてみました。振動的ですが、これが虫の動きに似ていて面白いです。

2016年5月7日土曜日

DRV8835で2輪倒立ロボをつくってみました

全体の写真です。白いプラスチックの半円は、転倒したときのダメージ軽減用。



裏側です。電池は単三型Ni-MHを4本。タミヤのダブルギヤボックスをギヤ比114.7:1で使っています。タイヤ径は約55mm。


Arduino ProMini 3.3Vの互換品がeBayで250円くらい。ただし、シリアルのピン配列が純正品と逆でした。



ジャイロ加速度センサーのMPU6050を載せたGY521というモジュール。eBayで200円くらい。Amazonでも買えます。このモジュールには3.3Vを作るためのレギュレーターが載っていますが、入力電圧範囲が3-5Vらしいので、ProMiniから3.3Vを供給しています。I2C通信です。



モータードライバのDRV8835。小さなチップにフルブリッジが2回路搭載されているので、これ1個でDCモーター2個ドライブできます。モーター用電源とロジック電源が分かれているのも使いやすい。モードピンをHIGHにして、ENABLEピンにPWMを、PHASEピンに回転方向を入れています。



距離センサーはGP2Y0A21YK。電源は電池から直結。出力は0から3.3Vの範囲に収まります。距離(mm)の計算はかなりいい加減ですが、95000をanalogRead()の値で割って30を引いています。



ライントレース用センサーは、ヴィストンで安売りしていた反射型赤外線センサーを少し改造。ProMiniから3.3Vを供給し、analogRead()で読み込んでいます。



ライントレースの動画です。


2017年11月5日
その後追加した赤外線リモコンによる操縦機能も入っています。

2017年11月8日

2016年5月2日月曜日

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

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



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



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




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



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