SPRESENSE用モータードライバ・アドオンボードを作ってみた(1) [ロボット]
モータードライバには、DRV8835を使っています。秋月電子で入手できます。
http://akizukidenshi.com/download/ds/akizuki/AE-DRV8835-Ss.pdf
回路は極めてシンプルです。電源系の引き回しが少しやっかいですが、ほとんどはピンをそのまま出しているだけです。(ハンダが下手くそで、お恥ずかしい)
裏面は少しゴミゴミしています。モーター出力端子を100kΩでプルダウンしているためです。これは必ずしも必要はないですが、モーター出力の波形を見ると抵抗でプルダウンをしたほうが一番効率がよさそうなので、少しがんばってハンダ付けしました。
次は前回作った倒立振子のメカに搭載してモーターを動かしてみたいと思います!
( ・ิω・ิ)/
SONY SPRESENSE メインボード CXD5602PWBMAIN1
- 出版社/メーカー: スプレッセンス(Spresense)
- メディア: Tools & Hardware
HiLetgo 3pcs DRV8833デュアルモータードライバー
- 出版社/メーカー: HiLetgo
- メディア: おもちゃ&ホビー
倒立振子制御学習用ロボット ビュートバランサー2 [学習教材] [vstone]
- 出版社/メーカー: Vstone(ヴイストン株式会社)
- メディア:
倒立振子用のSPRESENSEフォルダーをデザインしてみた! [ロボット]
久しぶりの割にはなかなかの出来です。これを我が家のポンコツ3Dプリンターで出力して、ギヤモーターに装着してみました。
おお、想像以上にかっこよく出来ました。しかし、このサイズに収めるにはモータードライバをSPRESENSEのアドオンボードにする必要があります。
次は、がんばって2つのモーターを駆動できるアドオンボードを設計してみたいと思います!!
( ・ิω・ิ)
Fusion360操作ガイド ベーシック編 2020年版―次世代クラウドベース3DCAD
- 作者: 三谷 大暁
- 出版社/メーカー: カットシステム
- 発売日: 2020/01/01
- メディア: 単行本
ANYCUBIC MEGA-S 3Dプリンター 金属製 高精度 Titan押出機 TPU/ABS/PLA等 操作簡易 家庭用 3DPrinter 初心者/学校等向け
- 出版社/メーカー: ANYCUBIC
- メディア:
SPRESENSEで2つのモーターを制御してみた [ロボット]
BMI160のライブラリは、次のGitHubからダウンロードして使っています。サンプルが少ないので使いこなすには、自分でソースを読み解く必要がありそうです。
hanyazou/BMI160-Arduino
https://github.com/hanyazou/BMI160-Arduino
次のようなスケッチを書いてBMI160とモーターの動作を確認をしてみました。電圧が低い状態だとトルク不足で車輪が回らないので、駆動時の頭で車輪が回らない程度の短い時間トルクをフルでかけて車輪を回す工夫をしています。(十分な出力容量がある電池なら不要かもしれません)
#include <Wire.h> #include <BMI160Gen.h> #define AIN01 25 #define AIN02 26 #define AIN11 18 #define AIN12 19 #define DELAY 3000 #define DASH 5 float convertRawGyro(int gRaw) { // since we are using 250 degrees/seconds range // -250 maps to a raw value of -32768 // +250 maps to a raw value of 32767 float g = (gRaw * 250.0) / 32768.0; return g; } void print_gyro() { int gxRaw, gyRaw, gzRaw; // raw gyro values float gx, gy, gz; // read raw gyro measurements from device BMI160.readGyro(gxRaw, gyRaw, gzRaw); // convert the raw gyro data to degrees/second gx = convertRawGyro(gxRaw); gy = convertRawGyro(gyRaw); gz = convertRawGyro(gzRaw); // display tab-separated gyro x/y/z values Serial.print("g:\t"); Serial.print(gx); Serial.print("\t"); Serial.print(gy); Serial.print("\t"); Serial.print(gz); Serial.println(); delay(500); } void motor_drive(uint8_t i, bool cw) { #ifdef DASH if (cw) { analogWrite(AIN01, 255); analogWrite(AIN02, 0); analogWrite(AIN11, 255); analogWrite(AIN12, 0); } else { analogWrite(AIN01, 0); analogWrite(AIN02, 255); analogWrite(AIN11, 0); analogWrite(AIN12, 255); } delay(DASH); #endif int n = i*ADJUST; if (cw) { analogWrite(AIN01, i); analogWrite(AIN02, 0); analogWrite(AIN11, i); analogWrite(AIN12, 0); } else { analogWrite(AIN01, 0); analogWrite(AIN02, i); analogWrite(AIN11, 0); analogWrite(AIN12, i); } Serial.println(i); delay(DELAY); } void setup() { // put your setup code here, to run once: Serial.begin(115200); BMI160.begin(BMI160GenClass::I2C_MODE); uint8_t dev_id = BMI160.getDeviceID(); Serial.print("DEVICE ID: "); Serial.println(dev_id, HEX); BMI160.setGyroRange(250); Serial.println("Initializing IMU device...done."); } void loop() { int i; for (i = 0; i <= 250; i+=10) { motor_drive(i, true); print_gyro(); } for (i = 250; i >= 0; i-=10) { motor_drive(i, true); print_gyro(); } for (i = 0; i <= 250; i+=10) { motor_drive(i, false); print_gyro(); } for (i = 250; i >= 0; i-=10) { motor_drive(i, false); print_gyro(); } while(1); }
どうも左右のモーターの特性が異なるようで、回転数に明らかな差がでてしまっています。モーターはアナログなものなので特性に差が出るのは仕方ないけど、倒立振子がきちんと動くのか心配です。
その前に、これらのパーツを組み上げるための台を3Dプリンタでデザインしないと…。久しぶりのCAD使えるかな。
(ー'`ー;)
SONY SPRESENSE メインボード CXD5602PWBMAIN1
- 出版社/メーカー: スプレッセンス(Spresense)
- メディア: Tools & Hardware
Tenflyer 6軸レートジャイロBMI160 6Dof重力加速度センサーモジュール
- 出版社/メーカー: Tenflyer
- メディア: ホーム&キッチン
HiLetgo 3pcs DRV8833デュアルモータードライバー
- 出版社/メーカー: HiLetgo
- メディア: おもちゃ&ホビー
SPRESENSE メインボードでDCモータを動かしてみた(電流編)! [ロボット]
前回の繰り返しになりますが、使用したモータードライバはTI社のDRV8835です。
精度の高い電流計はないので、いつものように市販のテスターを使って電流値を測ります。信頼性はあまりないので、大体の傾向を見るくらいで見てみてください。
測定環境は、前回と同じく次の3条件です。モーターには負荷をつけていません。
(1)モータードライバ DRV8835 の出力から直接DCモーターに接続した場合
(2)モータードライバ DRV8835 の出力に1000pFのコンデンサをつけた場合
(3)モータードライバ DRV8835 の出力に100kΩの抵抗をつけた場合
結果は次のようになりました。横軸が analogWrite の出力値(PWM)、縦軸が電流値(A)です。
ほとんど傾向に変わりはありませんが、(1)の場合は流れる電流がばたつく感じでした。やはり電圧差が不安定なためでしょうか。(2),(3)はあまり有意な差はなさそうです。
細かい制御をしたい場合は、(1)は避けたほうがよさそうです。
( ̄ ~  ̄;)
関連記事
SPRESENSE メインボードでDCモータを動かしてみた!
https://makers-with-myson.blog.ss-blog.jp/2020-03-08
SONY SPRESENSE メインボード CXD5602PWBMAIN1
- 出版社/メーカー: スプレッセンス(Spresense)
- メディア: Tools & Hardware
HiLetgo 3pcs DRV8833デュアルモータードライバー
- 出版社/メーカー: HiLetgo
- メディア: おもちゃ&ホビー
SPRESENSE メインボードでDCモータを動かしてみた! [ロボット]
いろいろ探したところ、ロジック電源が2V(メインボードは1.8Vなので少しスペック割れですが)のDRV8835を使ってみることにしました。(秋月電子で購入しました)
回路は次のようにしてみました。
テスト用のスケッチは次のような単純なものです。
#define AIN1 14 #define AIN2 15 void setup() { // put your setup code here, to run once: } void loop() { int i; for (i = 0; i <= 255; ++i) { analogWrite(AIN1, i); analogWrite(AIN2, 0); delay(100); } for (; i >= 0; --i) { analogWrite(AIN1, i); analogWrite(AIN2, 0); delay(100); } for (i = 0; i <= 255; ++i) { analogWrite(AIN1, 0); analogWrite(AIN2, i); delay(100); } for (; i >= 0; --i) { analogWrite(AIN1, 0); analogWrite(AIN2, i); delay(100); } while(1); }
実際に組み上げた様子がこちら。
波形を見てみると、モーター駆動待機状態でフラットになっていません。モーターに若干のブレーキがかかっている可能性があります。
ということで、キャパシタンスを追加してみることにしました。
実際に組み上げた様子がこちら。
波形を見てみると、電圧がLOWになっていません。モーターを動かす前の段階でモーターにブレーキがかかってしまっています。
次は、電圧をグランドに引っ張ることを考えてみました。で、100kΩの抵抗をつけてみました。
実際に組み上げた様子がこちら。
波形を見てみると、期待通り電圧がLOWになっています。モーターを動かす前の段階でフリーランになっているので、モーターに負担はかかっていないように見えます。
とは言うものの、どの方式が一番トルクが出ているは実際に測ってみないとわかりません。どうやって測ってみようかなぁ。
(。-`ω´-)
お時間のある方は動画もどうぞ。
SONY SPRESENSE メインボード CXD5602PWBMAIN1
- 出版社/メーカー: スプレッセンス(Spresense)
- メディア: Tools & Hardware
WINGONEERデュアルモータドライバモジュール1A TB6612FNG Arduinoマイクロコントローラ用
- 出版社/メーカー: WINGONEER
- メディア: エレクトロニクス
最新版 モータ技術のすべてがわかる本 (史上最強カラー図解)
- 作者: 赤津 観
- 出版社/メーカー: ナツメ社
- 発売日: 2012/09/04
- メディア: 単行本
ボール型ヘリコプター玩具の電子部品を解析してみた! [ロボット]
解析がしやすいように裏面に端子が出ている部品からワイヤーを這わせました。ワイヤーを取り付けるだけなのですが、細かい作業なので、とっても肩が凝ります。(´・ω・`)
部品名の刻印があるものについては、多くの場合インターネットにデータシートが転がっているので、それがヒントになります。
モータードライバらしきものについては、「A2SHB」と読めます。
ググってみると、すぐに見つかりました!想像していたとおり FET のようです。
N-Channel Enhancement Mode Power MOSFET
https://www.mikrocontroller.net/attachment/212878/HM2302A.PDF
もうひとつバッテリーチャージャーらしきものは、「40548」もしくは「4054B」でしょうか。
なかなか見つけることができずに、あきらめかけていたところで、ようやく以下のサイトを発見!
800mA Standalone Linear Li-Ion Battery Charger
http://www.belling.com.cn/media/file_object/bel_product/BL4054B/datasheet/BL4054_V1.4_en.pdf
こちらも想像どおりバッテリーチャージャーのようです。
赤外線出力ポートと、赤外線センサー、マイコンらしきものは残念ながら型番分からず。解析はまだまだ続きます!
( ー`дー´)b
Liebeye リモコン付きティーンエイジャー用赤ちゃんの手の誘導飛行、フライングボールドローンヘリコプターの赤外線センサーの変色飛行ボール
- 出版社/メーカー: Liebeye
- メディア: おもちゃ&ホビー
GPTOYS ヘリコプター 室内大型赤外線 ラジコンヘリ 6軸ジャイロ LEDライト付き 壊れにくい・初心者に適合
- 出版社/メーカー: GPTOYS
- メディア:
ボール型ヘリコプター玩具を分解してみた! [ロボット]
裏面はこんな感じ。配線はかなりシンプル。バッテリーとモーターがワイヤーで接続されています。
バッテリーを抜き出してみると、どうも 75mAh の 3.7V LiPoバッテリーのようです。
プロペラの駆動部はこんな感じ。ギア比を変えてプロペラの回転速度とトルクを調整しているようです。このあたりの設計ができるようになると楽しいだろうなぁ。
基板をよく眺めてみると、おや?これは赤外線センサーでは???
外観から解析しただけですが、モータードライバと思っていたのは、どうやらマイコンのようです。
大分見通しがよくなってきました。あとは配線をじっくりと観察して、信号を通してみて予測があたっているか確認してみたいと思います。
(^^)/~
Liebeye リモコン付きティーンエイジャー用赤ちゃんの手の誘導飛行、フライングボールドローンヘリコプターの赤外線センサーの変色飛行ボール
- 出版社/メーカー: Liebeye
- メディア: おもちゃ&ホビー
GPTOYS ヘリコプター 室内大型赤外線 ラジコンヘリ 6軸ジャイロ LEDライト付き 壊れにくい・初心者に適合
- 出版社/メーカー: GPTOYS
- メディア:
ボール型ヘリコプター玩具を買ってみた! [ロボット]
しかし、中国製なので例によって説明書も何もありません。どうやって操作してよいのかよく分かりません。ググってようやく分かりました。どうも手(静電気?)に反応して上下をコントロールするみたいです。
困ったことにこれを手にとろうとすると、反応して上にあがってしまうのでなかなか取れない。なので仕方なく紐をつけて飛ばしています。
だいたい動作は分かったので解体してみました。部品は非常に簡素です。
モータードライバらしきものとバッテリチャージャーらしきものは確認できました。静電気を検出してモーターの推力を変える部分がよく分かりません。引き続き解析してみたいと思います。
(^^)/~
Liebeye リモコン付きティーンエイジャー用赤ちゃんの手の誘導飛行、フライングボールドローンヘリコプターの赤外線センサーの変色飛行ボール
- 出版社/メーカー: Liebeye
- メディア: おもちゃ&ホビー
GPTOYS ヘリコプター 室内大型赤外線 ラジコンヘリ 6軸ジャイロ LEDライト付き 壊れにくい・初心者に適合
- 出版社/メーカー: GPTOYS
- メディア:
WiFiカメラ付の重力感知ドローンを飛ばしてみた! [ロボット]
ドローンのカメラの画像は、スマホのアプリで見ることができます。
WiFi UFO
https://play.google.com/store/apps/details?id=com.lewei.multiple.lewei&hl=ja
最初に行うのは、ドローンのセットアップです。重力方向をドローンに覚えさせるためにキャリブレーションを行います。
次にアンロックをするとモーターが回り始めます。
コントロールは、左レバーが推力の調整、右レバーがコントロールです。
実際に飛ばしてみた映像です。重力感知機能があるので制御が簡単かと思ったのですが、ドローンビギナーにはちょっと難しかったようです。
安いだけに画質もいまいちですね。階調が立っていて色がとんでいます。かなり古い安いセンサーのようです。ちょっと残念。やはり小型で画質のいいドローンは自作しかないかなぁ。
(´・ω・`)
SHIRUI 901HS ミニドローン 折り畳み式 Wifi FPV ドローン HDカメラ 高度維持 重力感知 iPhone&Android対応 (グリーン)
- 出版社/メーカー: SHIRUI
- メディア:
WiFiカメラ付の重力感知ドローンを買ってみた! [ロボット]
中身を空けてみると、カメラ映像を見るためのスマホホルダー、予備のプロペラ、プロペラガード、あとはプロポと本体。なかなか充実しています。
それよりも目を引いたのは取扱説明書です。日本語ですよ日本語。
しかし、よく読むと日本語がちょっとおかしい。
お客様へ、 いつもお世話にになっております。 ご注文いただいた商品が問題なく動作できる様子、大変嬉しく存じます。 不良品、飛行操作など、任意の問題があっても、直接にメールにて弊社へ連絡することができます。 ちなみに、もしこれが良いドローンと考えれば商品ページにご意見を出してお客様に参考を提供してくれれば、幸いだと思います。 今後とも弊社商品をご愛顧くださいますよう、よろしくお願いいたします。 |
うん初めて買ったので、いつもお世話になってないし、まだ動かしてないし、”ちなみに”ってお客様に使っちゃだめでしょ。
でも、3Dプリンター買ったときは日本語の取扱説明書があまりにも意味不明すぎて、英語版を見たくらいだったことを考えると、中国のベンチャーも着実に進化してますね。意味通じるので。
で、気になる本体をアップで映してみました。
プロペラ広げるとカッコイイですね。
カメラモジュールは小さいの使ってますね。軽量化のためかな。
全体重量を測ったら、なんと 25.26g !すごいな。
週末の3連休でファーストフライトしてみたいと思います!
(^_^)
SHIRUI 901HS ミニドローン 折り畳み式 Wifi FPV ドローン HDカメラ 高度維持 重力感知 iPhone&Android対応 (グリーン)
- 出版社/メーカー: SHIRUI
- メディア:
ジーフォース PXY CAM ピクシィカム (Black) MODE1 GB302 [日本正規品]
- 出版社/メーカー: ジーフォース
- メディア: おもちゃ&ホビー