2014年1月4日土曜日

Tiny10を使ったサーボテスタ

明けましておめでとうございます(・ω<)

最近ブラシレス関連に興味がありまして、、
海外の安いESCを買ってみて分解して回路構成なんかを勉強していました。
というか、海外のESCが安すぎて自作する意味があまり無いようなwww

その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 件のコメント:

コメントを投稿