Aruduinoとの出会い

PICマイコンでプログラミングしていろいと電子工作してきましたがワンチップマイコンボードという便利なものが世の中には存在します。

PICマイコンと似たようなものなのですが、AVRマイコンを使って発振器やI/Oポート、アナログ入出力ポートを備えすぐに電子工作が行えるというのが、Arduinoです。

存在はしっていましたが、PICマイコンで開発するのがカッコイイみたいなワケわからない意識高い系思考であった為、今の今まで買った事がなく、もちろん試した事もありませんでした。

そんなバカな私ですが、アマゾンでお買い物中にArduinoの互換機が2台で千円で売られている事確認。

迷ったあげく、買って見る事にしました。

↑これが買ったやつ

 

Arduinoがやってきたらまずする事

アマゾンからArduinoがきたら、まずはLEDをチカチカさせるプログラムを書いてArduinoが正常に動くか確認する事が王道です。

arduinoの開発環境はarduinoIDEという専用のソフトでプログラムしていきます。

ちなみにarduinoではプログラムの事をスケッチと言うらしいです。

arduinoIDEのダウンロードはAruduino本家のHPにあります。

 

ホームページ状のsoftware-downloadsをクリックします。

 

次にソフトをダウンロードしますが、just downroadをクリックすると無料でダウンロードできます。

contribute & downloadをクリックすると永遠ダウンロードできません。(無料では)

 

 

ダウンロードしたarduinoIDEをお手持ちのPCにインストールできたら、準備完了となります。

 

Arudoino互換品 PCドライバー注意点

ここで私がはまった出来事を記載します。

無事スケッチをインストール完了して、arduinoとPCをUSBにて接続するところまでいきました。

しかしPCがarduinoをPCが認識しないのです。

 

シリアル通信とUSB変換するには変換モジュールのドライバが必要です。

 

本来の(本物の)ArduinoではFTDI社のUSBシリアル変換モジュールを使用している為そのドライバが必要ですが、中国企業が安価に制作している互換品(対して作りに大差はないですが)では中国製のUSBシリアル変換モジュールであるCH341が使われているので、そのドライバが必要でした。

 

ですので、「江苏沁恒股份有限公司」からCH340Gのドライバをダウンロードしてインストールすれば、arduinoが認識されます。

現在はCH341SERという2018/7/5にリリースされているドライバが最新のようで、windows10 64 の私の環境下ではうまく認識してくれました。

 

 

それでも認識できない場合はシステムデバイスでUSBポートのドライバを手動で上記CH341に紐付けすればOK。

 

arduino互換品の問題点

互換品でのもうひとつの問題点ではarduinoにもともの書き込みされているはずのブートローダーと呼ばれるプログラムが壊れているか、入っていないかでスケッチを書き込みできないという事例があるようです。

私の環境ではそのような事はなかったのですが、今後の事(もう少し購入する)を考えて対応策を考えておきます。

①まず、正常に動作するarduinoが一台あればブートローダーを書き込みできるらしい

②ブートローダーが入っていない若しくは壊れているarduinoは電源を入れたときに基板上のLEDが点滅ではなく常時点灯するらしい

そして、arduinoブートローダーの修復方法のような素晴らしいサイトが存在しますので、あとは同様の手順でブートローダーを書き込むだけです。

これで何があっても大丈夫!!

スポンサードリンク

 

いよいよPCに接続してLEDを光らせる

ここまできたら、あとはLEDをピカピカさせるだけですが、なんとarduinoはこんな時に役にたつテストLEDなるものが存在するのです。

ですから、わざわざi/oポートにLEDを刺す手間もありません。

私の環境では、arduino IDEを起動させるとBlinkというテスト用のプログラムが書かれた状態で立ち上がりました。

 

書かれている文字数が多いのでなんじゃこりゃーと初心者のかたは思うかもしれませんが、大半がこのプログラム(スケッチ)を説明する文章になります。

ですので簡単に直すと。

必要なのは下のプログラムだけです。

//←はこの後に書かれた文字はプログラムに影響しないということ。普通はメモでプログラムした人が後で見返したときにわかりやすい様に書く事が多いです。

void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

 

プログラムに必要なものは上記の

void setup(){

}

void loop(){

}

だけです。void setup()のなかのプログラムを最初に一度実行します。これを書いていないとarduinoに書き込めません。

あと、void loop()はこの処理を永遠繰り返すという意味です。

pinMode(LED_BUILTIN, OUTPUT);はI/Oピンを出力にするか入力にするかを決めます。

今回LED_BUILTINとなっていますが、これはテスト用のLEDという意味です。

ここを13とか12とかいれるとそのピンを指定できるというわけです。

 

また、プログラムを書いたら、最後に;を必ず書いて、ここで終わりと言う風にしなければうまくコンパイルできません。

 

digitalWrite(LED_BUILTIN, HIGH);はwriteとなっている通りテストLEDに指定の値を出力(書く)するという意味です。

HIGHとありますが、HIGHは5Vを指します(動作電源)LOWは0Vという事です。

ですので、LEDはHIGHで点灯してLOWで消えます。

 

最後にdelay(1000);は待ち時間を作れる関数です。単位はmsecなので、1000だと1000msecなので、1秒となります。

 

 

これはPICマイコンなども同様ですが、最初にコンフィグを書かなくていいとか、そもそもたくさんのライブラリがarduino IDE自体にあるので最高です。

 

プログラムに使用する関数などの詳細はなんと日本語リファレンスというところで丁寧に解説まであります。

まるでPICマイコンとは大違いです。

次はやはり、ステッピングモータでも動かしてみます

 

スポンサードリンク