最近ブラシレス関連に興味がありまして、、
海外の安いESCを買ってみて分解して回路構成なんかを勉強していました。
そのESCを動かすにはサーボ信号などと呼ばれるパルス信号が必要です。
パルス信号は周期約20ms、パルス幅1~2msとなっています。
重要なのはパルス幅で、周期はアバウトでも大丈夫みたいです。
このパルスはタイマIC555などを用いて簡単に発生させることが出来ますが、今回は米粒AVRであるTiny10を使ってみました。
Tiny10は、小さい割にA/D、16bitタイマ、アナログコンパレータ、内蔵クロックなどが搭載されていて素晴らしですが、EEPROMが非搭載なのが残念ですね。。
製作したサーボテスタは恒例のフリスクケースに収めてみました。
可変抵抗の厚みで蓋が若干浮くのでネジで固定しています。
内部は結構スカスカです。
ピンヘッダや基板は瞬間接着剤で固定しています。
Tiny10周辺の拡大
小さすぎて扱いにくいので変換基板に実装
マイコンを用いたので周辺回路はとてもコンパクトになりました。
手描きでナンですが、回路図です。
2014/03/07追記 保護用のポリスイッチなど抜けてたところを書き足しました。
※可変抵抗からの信号を入力するポートには、周辺ノイズの影響を抑えるために0.1uF程度のコンデンサをGNDとの間に挿入したほうが良いです。
今回はプログラム書き換えの都合上省いていますが、特に問題になっていません(゜ε゜)
プログラムの開発環境はAVR Studio5を使用しました。
~動作の説明~
動作モードは5つあり、以下のようになっています。
1 ・・・ マニュアル(可変抵抗の角度に応じて出力パルス幅が決まる。スイッチを押すとパルス幅が1500usになる。)
2 ・・・ オート、三角波状にパルス幅変化
3 ・・・ オート、ノコギリ波状にパルス幅変化
4 ・・・ オート、逆ノコギリ波状にパルス幅変化
5 ・・・ 停止(パルス幅は直前のままで固定)
オートモード(モード2,3,4)では可変抵抗を回すとパルス幅の変化のスピードが変わります。
スイッチを押さずに電源に接続すると、モード1で起動してモードは固定です。
スイッチを押しながら電源に接続すると、モード2で起動します。再度スイッチを押すごとに、モード3→4→5→2→3... と切り替わります。
パルス幅は内蔵クロックの精度に依存し、周辺温度で結構変化するみたいです。
可変抵抗の角度読み取りの分解能は、内蔵A/Dの都合上8bitになっています。
2014/01/04時点の最新のファームウェアはコレです↓
https://www.dropbox.com/s/l4nyqr6aumg3p2f/tiny10%20analog%20to%20servo.hex?dl=0
MD5: 523CD4EC39FE797A6192AA287000510A
動作の様子です。(文字が見えにくいような..
0 件のコメント:
コメントを投稿