DCモーターを動かす(w/ PWM)

部品も揃ったので、機能ごとの動作確認を行なっていきます。

まずはDCモーターからですが、両輪の回転差を発生させないと直進しかできないので、ただしモーターの特性は不揃いなので曲がりますが、PWMを使って実質DCモーターへの供給電圧をコントロールすることで、直進性あるいは回転を実現します。

  • PWMに使えるピン 11(D0~D8、D10、A3、A4)
  • 1周期 732Hz

との情報から、D0とD5をPWM制御、D1~D4を回転方向制御に使います。

Arduinoのコードは以下の通り。元のソースではPWMのduty(0~255指定)を可変していますが、電源電圧9.2Vぐらい(デバッグ時は外部の低電圧電源使用)だとdutyが30%以下あたりでモーターは回らなくなるので固定値を使って確認しています。

pinModeのピン番号指定は0から始まります。

————————————————–

// デジタルピンの定義
// pin number start from 0(D0)
const int IN1 = 1;
const int IN2 = 2;
const int IN3 = 3;
const int IN4 = 4;
const int ENA = 0; // PWM制御で使うENAピンをD9に(モーター1のPWM制御ピン)
const int ENB = 5; // PWM制御で使うENBピンをD10に(モーター2のPWM制御ピン)

int i = 0;
int step = 5;

void setup(){

pinMode(IN1, OUTPUT); // デジタルピンを出力に設定
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(ENA, OUTPUT);
pinMode(ENB, OUTPUT);

}

void loop(){

digitalWrite(IN1, HIGH); // HIGH LOWの組み合わせでモーター回転
digitalWrite(IN2, LOW); // 2つのモーターを正回転
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);

for(i=0; i<=255; i=i+step){ // PWM制御のデューティー比を指定してモーター回転速度を変える
analogWrite(ENA, 160);
analogWrite(ENB, 160);
delay(50);
}

delay(1000);

digitalWrite(IN1, LOW); // HIGH LOWの組み合わせでモーター回転
digitalWrite(IN2, HIGH); // 2つのモーターを逆回転(上記とは反対に回転)
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);

for(i=0; i<=255; i=i+step){ // PWM制御のデューティー比を指定してモーター回転速度を変える
analogWrite(ENA, 80);
analogWrite(ENB, 220);
delay(50);
}

delay(1000);

}

————————————————–

参考情報及びソースは以下のサイトから。

https://burariweb.info/electronic-work/arduino-learning/arduino-motor-driver-l298n.html#L298N-2`

 

動作の状況は以下の動画から、分かりづらいですが(途中でモーターの回転音が一瞬途切れた時)順方向から逆方向に回転しています。

 

admin

Arduino内蔵のEEPROM

何らかの状態保存しておきたい時に使える不揮発記憶としての使い方。

http://7ujm.net/micro/arduino_eeprom.html

何に使いたいかというと、手元にあったステッピングモーターをサーボモーターの代替えに使いますが、移動量しか知ることができないので次の電源オン時に絶対位置がわからなくなるから電源オフ時に位置情報を保存したかったから。

ステッピングモーター使えばそんなことは考慮不要なのですが。

と思ったらArduino MKR WiFi 1010にはEEPROMないんだ。ということは電源オフ時の処理として、ステッピングモーターの初期化処理(最初の位置に戻す)しないといけない。

admin

Arduino(MKR WiFi 1010)のステッピングモーター制御ライブラリ

ステッピングモーターの制御をどうやってやるのかなと思っていたら、Arduino IDEにはStepper.hというライブラリがあって簡単に制御できるようです。

注意すべき点は、関数の引数の記述でしょうか。

以下のリンクからの引用です。

——————————————————

注意点はStepper(steps,pin1,pin2,pin3,pin4)で使用するピンを選びますすが、

ステッピングの磁励順番ではないので注意です。

記載の順番はSteper(Steps,A,A,B,B)

以下の回路図ならば、

Stepper myStepper(100, 8, 10, 9, 11);

と記述します。

https://electronic.tousekice.com/arduinoでステッピングモーターを回す%E3%80%82/

https://omoroya.com/arduino-lesson28/

<P.S>

動きが変(予定移動量のほぼ半分しか動かないし、脱調しているように正確に刻まない)だなと思っていたら、出力をLowにしてもD11はHighのままであることにドライバ基板上のledでわかった。設定方法が他のビットとは違うのかもしれないけど、D12も同じでD13は制御可能だったから11 -> 13に変更したら思った通りに動作するようになりました。D11/12はI2C用のピンであることと関連があるのかも知れない。

 

admin

 

仕様変更

誰かがレーダー(超音波センサ)の首を振らせていたので、急遽ステッピングモーターを追加して首振り仕様に変更します。

超音波センサーはakizukiにオーダーしたけど、納期は遅いように思う。

 

admin

フィラメントようやく二巻目(Flashforge)

PLAのフィラメント、5月購入して半年も経過すると吸湿のせいなのかガチガチになってくる。そのせいなのか、リールからの引き出し時に巻き線に干渉して供給できなくなるから、そばで監視していないといけないから実質使えない。

それでも最後まで使い切って、色変更したPLA素材に切り替えると、やはり新品は気持ちよく成形される。

ただし新しいフィラメントはラフトから剥がれにくくなるから、設定で「モデルのスペース」のデフォルト値を0.15mmから大きめの値、例えば0.25mmぐらいにすると剥がれやすくなる。

 

admin

 

MSアカウントブロック

 

こんなメールが来て、MicroSoftのセキュリティアラームでアカウントロックしたと。同時刻にqnapがクラウドと同期できなくなったの通知、当然ですが。

で再認証して、パスワードを強力タイプに再設定。おそらくパスワードが甘かっただろうと思う。

 

admin

Arduino電源をどうする

Arduino MKR WiFi 1010に使われているBQ24195は入力電圧範囲が仕様によると、

・3.9-V to 17-V Input Operating Voltage Range 

となっているから単三アルカリ4本でモーターを駆動して、モータードライバから出力される公称5V(実測はフレッシュ電池使って4.6Vぐらい)を入力にできそうだから、ロジック用電源としてLi-Po電池は当面不使用。電池電圧落ちてくるとギリギリの感じだから、場合にはよっては電池は4直から6直で電圧を確保することになるかも知れません。

 

これがコネクタ部分の回路図でVIN(pin12)が外部電源入力です。

スクリーンショット 2021-12-14 11.42.08.png

こちらがLi-PO充電制御兼DC-DCコンバーター、内部ロジックは全て3.3Vで動作です。制御チップのVBUSに外部供給電源が接続されますが、USBからの+5Vと付き合わせになっていて、VIN供給時にはUSB側の5Vはカット(Q2A)されます。

スクリーンショット 2021-12-14 11.42.49.png

 

admin

Arduino car用のシャシー(その一)

シャーシーは元々3Dプリンタで制作と考えていましたが取り掛かり。シャーシー無いとモーター駆動のトライアルも不便だし。

FlashPrint5(FlashForgeの制御アプリ)はだいぶインターフェースが変わってるけど初使用。

 

admin

launchpad macos montereyアイコンを消したい

インストール完了後もlaunchpadに残り続ける”macos montereyインストール”の疑問符付きアイコン、Apple Storeからインストールしたアプリを消すのは簡単でストアからダウンロードしたアプリはiOSと同じくアイコン長押しでxマークが左上に表示されるのでxマークをクリックするだけ。

これもmontereyから?今まで意識してなかっただけかも知れないけど。

Apple Store以外からダウンロードして残ってしまったアイコンの消し方は以前書いてます。

Macで削除したアプリがLaunchpadに残るのを消したい

admin