Arduinoを使ってAuraSync対応の機器を色々光らせる話
事の起こり
前の前のpostのとおり、酔った勢いでPWMファンを買ったらAuraSync対応だったので*1、なんとかこいつを制御してやりたいなあ、と考えたのが始まりです。
PWMで色を変えるなら、Lチカの延長じゃーん、LチカといえばArduinoじゃーん*2、
というわけで、Arduinoどうすっかなー、AVRにbootloader書き込んだらどうにかなるんじゃねー?そういや手持ちでAtMega8大量にあるなあ*3、てことからいろいろ調べて、さあやるぞ、という感じです。
PWM
難しいことはさておき、吉田製作所のYouTubeでNch-MOSFETというやつを使えばチョロインかな?というところまでは分かった。
https://www.youtube.com/watch?v=MmyI4CsPZyE
ファンの回転数を制御する前に、LEDの明るさを変えるテストしているので、このテストそのまんまでいいじゃん、という話かなと思った。
というわけで動画で紹介されていたMOSFETのやつをAmazonで買って使っていたけど、3つ繋げると結構場所取るなあ、というのが難点。
基板をFusionに頼む
というわけでAVR乗っけてMOSFET3つ付けた基板をSeeed Fusionに頼んでみました。
https://www.fusionpcb.jp/
海外にKiCADのデータを送ったら1~2週間で基板になって戻ってくるスグレモノ。
…蛇の目基板にシコシコ部品置いて電線で結んでってやっても大した作業量じゃないんですけど、はんだ付けがどうも苦手なので…CADいじくる方がまだ楽だよ、送料高いけど*4。
というわけではいコレ、ドーン!
せっかく基板作ってもらうんだからUSB-シリアル変換載せる端子とかICSPも付けようよ、とか、ボタンやポットを付けたらいいのに、というのは届くまで気づかなかったよ…
あと、あちゃんでいいのにあんまり付いていなかったのでパスコンとか保護回路はほぼ一切つけてない。(ひどい)
部品リスト
ふだんはaitendoを使ってますが、リンクは秋月の商品ページを張っておきます。(だいたい同じものならまあ動く。とくに抵抗値)
メイン基板
AVRチップ | AtMega8 | https://akizukidenshi.com/catalog/g/gI-02868/ |
ICソケット | 28pinスリム300milタイプ | https://akizukidenshi.com/catalog/g/gP-00013/ |
ピンヘッダ | お好み | https://akizukidenshi.com/catalog/g/gC-00167/ |
AuraSync接続用(メス) | 細ピンヘッダ | https://akizukidenshi.com/catalog/g/gC-06631/ |
AuraSync接続用(オス) | 丸ピンIC用ソケット | https://akizukidenshi.com/catalog/g/gP-01699/ |
水晶発振子 | 16MHz | https://akizukidenshi.com/catalog/g/gP-08671/ |
コンデンサ | 22pF | https://akizukidenshi.com/catalog/g/gP-04060/ |
抵抗 | 100Ω | https://akizukidenshi.com/catalog/g/gR-25101/ |
抵抗 | 1kΩ | https://akizukidenshi.com/catalog/g/gR-25102/ |
MOSFET | Nch | https://akizukidenshi.com/catalog/g/gI-13045/ |
DCジャック | 2.1mm基板取付用 | https://akizukidenshi.com/catalog/g/gC-09408/ |
サブ基板*5・ジャンパ自作用
LED | 緑 | https://akizukidenshi.com/catalog/g/gI-11957/ |
LED | 赤 | https://akizukidenshi.com/catalog/g/gI-12605/ |
抵抗 | 1kΩ | (上記) |
抵抗 | 330Ω | https://akizukidenshi.com/catalog/g/gR-25331/ |
コンデンサ | 104 | https://akizukidenshi.com/catalog/g/gP-00090/ |
コンデンサ | 106 | https://akizukidenshi.com/catalog/g/gP-02184/ |
抵抗 | 10kΩ | https://akizukidenshi.com/catalog/g/gR-25103/ |
リセットボタン | タクトスイッチ | https://akizukidenshi.com/catalog/g/gP-08080/ |
ピンソケット | お好み | https://akizukidenshi.com/catalog/g/gC-05779/ |
配線 | AWG24か26くらい | https://akizukidenshi.com/catalog/g/gP-10672/ |
ケーブル用コネクタ | QI | https://akizukidenshi.com/catalog/g/gC-12327/ |
コネクタ用ハウジング | QI、3P | https://akizukidenshi.com/catalog/g/gC-12152/ |
USBシリアル変換モジュール | RTSピンのあるもの | https://akizukidenshi.com/catalog/g/gK-14745/ |
ソフト側はArduinoで…
Arduinoのスケッチ例に「Basics - Fade」ってあるじゃないですか。
これを元ネタにAuraSyncソフトの説明を書いているサイトを巡って色の変化のパターンをパクって、もとい参考にして実装するだけです。
まだテストで色変わるやつしか書き込んでない…
// led_brightness_sample1 const int pin_G = 9; const int pin_R = 10; const int pin_B = 11; void setup() { } void loop() { int led_G = 0; int led_R = 0; int led_B = 0; const int osG = 17; const int osR = 31; const int osB = 43; while(true){ analogWrite( pin_G, led_G ); analogWrite( pin_R, led_R ); analogWrite( pin_B, led_B ); led_G = ( led_G + osG) % 256; led_R = ( led_R + osR) % 256; led_B = ( led_B + osB) % 256; delay( 100); } }
応用としてボタンを外付けして、ボタンを押すたびにパターンが変わるとか、可変抵抗でパラメータをいじって、パラメータはEEPROMに覚えさせておくとか。
載せるほどのものではないですが
KiCADで書いた図面
R1~R3は100Ωくらい、R4~R6は1kΩくらい、C1とC2は22pFくらい。