C言語にうなされながらスイッチング回路を作ったゴールデンウィーク
という訳でまずは、ロケット砲のスイッチング回路作りましたの巻
ただArduinoの信号で、ニクロム線に電流を流すだけのトランジスタスイッチング回路です。
この回路に電源とニクロム線をつないでArduinoからロケットの発射を制御します。
苦しんでもわからないC言語
で、本題はこっからです。
御存知の通り僕が使ってるマイコンボード「Arduino」はC言語ベースで書き込むことができます。
「ラジコン」と謳うからには「スイッチ入れたらただ走るだけのオモチャ」ではいけなくて、無線通信しなくてはいけないのです。当然そこでArduinoにプログラム書き込んで制御します。
で、よ。このC言語。Javascriptしかやったことなかった僕には極めて高い壁でして。
今までは「LED光らす」とか「モーター動かす」程度だったんですが、それが今回いきなり「テレビの赤外線リモコンの信号を受信してそれを16進数で表示して変数を探しだしてモーター動かす」というプログラムを使うことになりました。
自分でソース書いたわけではなくこちらのページのソースをそっくりそのまま頂戴しました。
…まぁ、まるまるコピペしたんだから何も考えずに使えば動くじゃんって話なんですが、ソースコードがどういう立ち振舞をしてるのか知る必要があったので、C言語について書いてるサイトと印刷したソースコード、Arduinoの本とを睨めっこしながら、あーでもないこーでもないと絶叫しつつ意味不明ポージングしながら解読していました。
データ型って概念何やねん、いちいち int とか char unsigined long 覚えること多すぎるわ!!!!!!!!!!!!!!!!!!!!!文字列も小数も整数も全部 var でええやろろろおおおおおおおおおおおおお!!!!!!!
…失礼しました。
で、葛藤の末昨晩やっとコードの意味がわかって実際にLEDを制御することが出来ました。
ネットに落ちてるソースに頼りっぱなしだけどなんとか遂に動いた… これでスイッチ入れたら走るだけのオモチャから、遠隔操作出来るラジコンに進歩できそう。 途中でテレビが赤外線拾ってチャンネル変わってる音が入ってしまったでござる pic.twitter.com/SbSEIztr8k
— てぽ丼@砂型鋳造チョコレート (@teppodone) 2015, 5月 10
あとはコレをモータードライバに置き換えるだけです。
さて…今から台風に備えながらレポートしますかね…。ノシ