フォト
2017年6月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  
無料ブログはココログ

« 次はSTM32ボードを積極的に使ていきたい(18) | トップページ | 豊四季 Tiny BASIC for Arduino STM32の動作テスト(2) »

2017年5月11日 (木)

豊四季 Tiny BASIC for Arduino STM32の動作テスト(1)

現在取り組んでいる「豊四季 Tiny BASIC for Arduino STM32」
色々と機能が充実してきましたが、テスト不十分です。
そこで動作確認テストとして、BASICにてプログラムを色々と作成して
検証して行こうと思います。

まずは、PWM出力機能を使ってサーボーモーターを制御をやってみました。

01

上記写真がその様子です。安価なサーボモーターSG90をアナログジョイスティックで
グリグリと動かすという制御です。

利用したパーツについては次の通りです。

サーボーモーター SG90
  Aliexpressで入手したものです。秋月電子やAmazonでも入手出来ます。

  Dscn6601

利用方法については秋月電子の製品紹介ページのPDFを参照参考にしました。
データシートによると、
   ・利用電圧 4.8V ~ 5V
   ・PWMのパルス 50Hz (周期 20ms)
   ・-90°~  0° ~ 90°の可動域
   ・Duty Cycle 0.4ms ~ 1.45ms ~ 2.4ms が上記の範囲に対応
とのことです。

アナログジョイスティック
Aliexpressで入手したものです。1個100円くらいだったと思います。
amazonを探すと同じようなものが販売されているようです。

Dscn6602

X,Y方向のアナログ入力、ヘッドを押すとボタンのON/OFF入力が出来ます。
今回はX方向のアナログ入力のみ利用します。

Blue Pillボードとの接続
・SG90
    VCC(赤) => 5V
    GND(茶) => GND
    PWM (オレンジ)  => PA8

・アナログジョイスティック
   VCC => 3.3V
   GND => GND
   X => PB0


プログラム  

1 'サーボモーターセイギョ
5 CLS
10 GPIO PB00,ANALOG
20 GPIO PA08,PWM
30 P=MAP(ANA(PB00),0,4095,102,491)
40 POUT PA08,P,50
45 D=MAP(P,102,491,-90,90)
47 LOCATE 0,0:?#3,D
50 GOTO 30

動作の様子


プログラムの説明

やっていることは単純です、10行、20行は利用するIOピンの設定です。

30行でアナログジョイスティックかあらアナログ値を取得しています。
アナログ入力値の範囲はジョイスティックの操作にて0~4095となりますが、
その値は102~491の範囲にスケール変換して変数Pに設定しています。
MAP関数はArduinoのmap()関数を同等の機能です。

このスケール変換は、SG90の仕様からPWM出力するduty値が4095を100%とした場合、
    -90°=>  102/4095
       0°=>  297/4095
     90°=>  491/4095
であるため、ジョイスティックの入力0~4095を102~491に対応させて、
ジョイスティックの入力で全可動域を操作出来るようにしています。

03

40行のPOUTで50Hz(周期20ms)で0.50~2.40ms幅のパルスを出力しています。
45~47行は画面に角度を表示しています。

このPWM出力いよるサーボーモーター制御、いくつか問題が発生しました。
モーターは結構、消費電力が大きいのかBlue Pillボードから5Vを供給すると、
PS/2キーボードが微妙不安定になったり、USB経由のシリアル出力をすると
フリーズしたりしました。

最初はプログラム的な不具合かと思ったのですが、電源を別から供給することで安定しました。
モーター制御は電源周りには注意が必要ですね。


« 次はSTM32ボードを積極的に使ていきたい(18) | トップページ | 豊四季 Tiny BASIC for Arduino STM32の動作テスト(2) »

arduino」カテゴリの記事

ARM」カテゴリの記事

STM32」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/571408/65266801

この記事へのトラックバック一覧です: 豊四季 Tiny BASIC for Arduino STM32の動作テスト(1):

« 次はSTM32ボードを積極的に使ていきたい(18) | トップページ | 豊四季 Tiny BASIC for Arduino STM32の動作テスト(2) »