M5Stack ATOM Matrix で ブラシレスモータ制御 ーリアクションホイールへの道2ー
前回はAliExpressで購入したフライホイール付きブラシレスモータの素性を調査し
基本動作を確認いたしました。
ここではM5Stack ATOM Matrix でモータの回転動作を制御してみました。
目次
ブラシレスモータ ID-549XW
モータの配線のおさらいをします。
左から1番目 赤:モータ電源 12V印可 (6V以上で回転)
左から2番目 黒:GND
左から3番目 黄:ブレーキ プルダウンで回転停止
左から4番目 緑:PWM入力 20kHz、ON Duty 0%で最高速度、100%で停止
左から5番目 青:回転制御 オープンで時計回り、プルダウンで反時計回り
左から6番目 白:3.3V or 5V
左から7番目 橙:エンコーダ出力 B相
左から8番目 紫:エンコーダ出力 A相
構成
可変抵抗でモータの回転を制御します。
抵抗値はATOM MatrixのG32ピンで検出します。
ATOM MatrixのG26ピンで20kHz PWMを出力してモータの回転速度を制御します。
モータのブレーキと回転方向切り替えはタクトスイッチで制御します。
Arduinoコード
M5Atomライブラリはvar. 0.0.1を使用しました。
https://github.com/m5stack/M5Atom
G32ピンで可変抵抗値を検出しPWM出力のオンデューティーに変換して
G26ピンでPWM信号(20kHz)を出力してモータを回転させています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include "M5Atom.h" #define ADC_pin 32 #define PWM_pin 26 int val, pwmDuty; void setup() { M5.begin(true, false, true); ledcSetup(0, 20000, 8); ledcAttachPin(PWM_pin, 0); } void loop() { val = analogRead(ADC_pin); pwmDuty = map(val, 0, 4095, 255, 0); Serial.println(pwmDuty); ledcWrite(0, pwmDuty); delay(50); } |
参考
動作
M5stack ATOM Matrix で
モータ制御#M5atom #リアクションホイールへの道 pic.twitter.com/cLg1M78Tlg— HomeMadeGarbage (@H0meMadeGarbage) July 30, 2020
可変抵抗でモータの回転スピードが変わり
タクトスイッチプッシュでブレーキと回転方向切り替えができています。
おわりに
M5Stack ATOM Matrix でブラシレスモータの制御が実現できました。
次回以降は慣性センサとモータ制御を絡めて、1軸の姿勢制御モジュールの実現に向けて進めていきたいと思います。
SHISEIGYO-1 の制作レシピを拝見させて頂きました。とても素晴らしいと思います。
500円と安いので購入しようと思いましたが、購入方法が、paypalかクレジットカードのみのようです。VISAプリペイドカードは使用できるのでしょうか?
または、コンビニ払いなどが利用できるととてもありがたいです。
ご検討を頂けますと幸いです。
(お忙しく、お手数がかかるようでしたら、このままで大丈夫です)
お問い合わせありがとうございます!
VISAプリペイドでカード番号、有効期限、セキュリティコードが記載あれば購入可能だと思います。
ただし確証はないのでお試しくださいという回答になってしまいます。
ご了承ください。
またコンビニ払いの対応は予定しておりません。
大変申し訳ございませんが何卒宜しくお願い致します。