ArduinoのPWM周波数を変える MEGA編

一年越しのMEGA編となりました.

 

 1年前には無かった気がするんですが,公式でPWM周波数を変える方法が公開されているのでこちらを参考にしながら紹介しようと思います.

Arduino Playground - TimerPWMCheatsheet

 

まず,ArduinoMEGAにはタイマが5つあって,それぞれのタイマに対応しているピンがあります.

タイマ : PWMピン

timer 0 : 13, 4
timer 1 : 12, 11
timer 2 : 10, 9
timer 3 : 5, 3, 2
timer 4 : 8, 7, 6

たとえば,timer0だけ周波数を変えたら13,4ピンから出るPWM周波数のみが変わります.

 

先に重要なことを言っておくと,timer0はシステムに使われているので変更するのはおすすめしません.Delayとかの時間関数がずれます.

 

周波数の設定ですが,Dueのように任意の周波数にすることができません.

数段階の周波数の中から選べるって感じです.

timer0 (13, 4ピンのみ)

①62.5 [kHz]

②7.8125 [kHz]

③976.5625 [Hz]

④244.140625 [Hz]

⑤61.03515625 [Hz]

 

timer1 (12, 11ピンのみ)

①31.37255 [kHz]

②3.92116 [kHz]

③490.20 [Hz]

④122.55 [Hz]

⑤30.64 [Hz]

 

timer2 (10, 9ピンのみ)

①31.37255 [kHz]

②3.92116 [kHz]

③980.39 [Hz]

④490.20 [Hz]

⑤245.10 [Hz]

⑥122.55 [Hz]

⑦30.64 [Hz]

 

timer3 (5, 3, 2ピンのみ)

①31.37255 [kHz]

②3.92116 [kHz]

③490.20 [Hz]

④122.55 [Hz]

⑤30.64 [Hz]

 

timer4 (8, 7, 6ピンのみ)

①31.37255 [kHz]

②3.92116 [kHz]

③490.20 [Hz]

④122.55 [Hz]

⑤30.64 [Hz]

 

概念がわかったところで,void setup内で以下のように宣言すればPWM周波数を変えることができます.

 TCCRnB = (TCCRnB & 0b11111000) | 0x0m;

 n:タイマ番号 (0~4)

m:設定したい周波数の番号 (1~7)

 

コピペ用にGistを用意しましたのでご活用ください.

聞かれそうなこと先に書く

ロボカップジュニアジャパンオープン2017ぎふお疲れ様でした.

おかげさまで優勝できました.

スタッフのみなさんありがとうございました.

 

今回はプレゼンテーションポスター手抜き過ぎて,質問されることが予想されるorすでにされたことをまとめておこうと思います.

 

※プレゼンテーションポスターはINPUTブログにて公開しています.

rcjinput.blog.jp

 

EDF

www.aliexpress.com

 

・バッテリー

G5 70Cmax 3S 2200mAh 4.2V-Max LiPo

 

・モーター

f:id:anbalioh:20170327233758p:plain

小言ですが,ロボカップジュニアやっている人にはMAXON使えば勝てるとは思って欲しくないです.

去年のINPUTは秋月で200円の385を使っていました.

去年と今年ではプログラムやコンセプトが違いますが,動きを比較して,MAXONだとなにがいいのか考えた上で候補にしてほしいと思います.

僕的にはVNH+ArduinoMEGA使ったのでMAXONを台無しにしてしまったと後悔しています(新MD間に合いませんでした)

参考に.

yunit.techblog.jp

 

・PWM周波数について

30kぐらいです.(ArduinoのMAX)

VNHは20kがMAXですが20kでも30kでも同じくらい波形汚い&発熱しないでモーターが回るので30kにしました.

ArduinoMEGAでのPWM周波数の変更方法についてコメントにて要請があったので春休み中にまとめたいと考えています.

3/30追記

MEGAの周波数変更について

DUEの周波数は変更について

spaghetti.hatenablog.com

 

 

3/29追記

・赤外線センサについて

ポスターに記載したとおり,TSSP58038を使っています.

購入先はRSとDigikeyですが,Mouserが一番安いと思います.

回路は出力にRCです.値は3.3kと0.33uFを実験して得ました.

特別なことは何もしてないですね.

STM32が好きなフレンズ

STM32が好きなフレンズなので,使ったことのある&使いたいSTM32をまとめました.

(はやくSTM32が得意なフレンズになりてー)

 

・F030F4P6

パッケージ:20-TSSOP

コアプロセッサ:Cortex-M0

最高速度:48MHz

Flash:16KB

アリエクで売っていて¥50/個でめちゃくちゃ安い.

Flashが16KBなのでmbedライブラリでの開発は非推奨.

TSSOP20は小さい&ハンダし易いのでGOOD!

f:id:anbalioh:20170301235206p:plain

 

・F051K6U6

パッケージ:32-UFQFPN

コアプロセッサ:Cortex-M0

最高速度:48MHz

Flash:32KB

アリエクで売っていないのが個人的に最大のネック.

まだ使ったこと無い(笑)けど,UFQFPNを使ってみたい.

足がなく,基板を小さくするのに役立ちそう,1度使いたい.

f:id:anbalioh:20170301235006p:plain

 

・F072C8T6

パッケージ:48-LQFP

コアプロセッサ:Cortex-M0

最高速度:48MHz

Flash:64KB

アリエクで¥110/個で買えたことがあったので気に入った.(1ロット20個)

Digikeyじゃもうなくて,CBT6ではFlashが2倍に増えている.

 

・F103C8T6

パッケージ:48-LQFP

コアプロセッサ:Cortex-M3

最高速度:72MHz

Flash:64KB

言わずと知れたSTM32,STLINKに乗っているやつ.

アリエクで¥150/個で買えるのと,アリエクでも入手性が高い.

Digikeyだと800円近くするので結構いいやつ.

f:id:anbalioh:20170301235127p:plain

 

北信越の小言

うぉぉぉぉぉぉー,

ロボカップジュニア北信越ブロック優勝しました!

f:id:anbalioh:20170205213950j:image

という報告でした.

審判をしてくださった方をはじめ,大会を運営してくださった方々ありがとうございます.

特に今回の審判は世界行ったCatPotとかラジペン様とか匠の駅で知り合った方々と,身内が多く気が楽でしたーw

 

ところで,今日なんですが,全然質問されなくて悲しかったです.

僕らも聞きに行かなかったのでお互い様なんですけどね....

(よく考えたら聞きに行けばよかったと後悔)

ちなみにINPUTは技術を隠しているんじゃなくて,新作ロボットをジャパンオープンまで高度な情報戦してるだけなんで.某産技品川対策にw

 

ジャパンオープン終わったら受験あるけどコピー本書きたいいいいあんばらでした.

マクソンの折れやすーい端子を保護してみた

f:id:anbalioh:20170123131745p:image

 

どーも、RCJ進捗やばいマンです。

ところで、2/5に北信越ブロック大会があります。(謎の告知)

 

本題に入ってマクソンです。

マクソンといれば折れやすい端子。(知ったかです)

どうにか折れないようにできないかと考えました。

これです。

f:id:anbalioh:20170123130522j:image

 

解説すると、下写真のように設計(?)した基板を取り付け、

f:id:anbalioh:20170123130510j:image

 

このままだと端子むき出しで危ないので3Dプリンタで保護パーツ作った感じです。

f:id:anbalioh:20170123130723j:image

 

これでエンコーダも付いていたらかっこいいですけど、まあ、、、(使う予定ないマクソンにさく時間はない)

デジットのマクソンって型番なんなの?

5日越しですが,全ロボお疲れ様でした.

 

本題で,デジットの2500円マクソンです.

全ロボ帰りに買ってきたやつです.

※僕は左の6.6V仕様84:1のやつを買ったのでそちらの記事になります.

f:id:anbalioh:20161230154659j:image

 

特定作業

僕はマクソンのこと詳しくないんですが,端子のつき方から「RE-max」であることがわかります.

f:id:anbalioh:20161230182141p:plain

※マクソン様ホームページよりキャプチャ

 

ここからカスタマイズ画面に進み,軸径や本体の大きさ,ギア比からおそらくこれだろっていう組み合わせを見つけました.

プラネタリギアヘッド GP 22 A Ø22 mm, 0.5 - 1.0 Nm, 金属バージョン
製品番号 110339
RE-max 21 Ø21 mm, グラファイトブラシ, 6 Watt, ハンダ端子仕様
製品番号 250001

 

 そのまま3DモデルをダウンロードしてSolidWorksで表示させました.

が,形が少し違いました.※画像が残っていなかったためTwitterから失礼します.

 

後ろから軸が出ていません.デジットのはでています.他にもちまちま...

でもこれしか無いと思うんですよね....(正解知ってたら教えてください)

 

で後ろの軸も伸ばして僕のモデリング作業は終わりました.

f:id:anbalioh:20161230181248p:plain

STM32強くなりたい②

タイマソース系のプログラムも動作確認してプッシュしました.

 

github.com

 

github.com