いろいろな作業を手軽に自動化する目的に Arduino は非常に便利です。
使え方を覚えてしまえば、わずか30分以内にデスクトップ筐体内の温度を自動検知してファンを回したり、人が近づいたときだけ照明を照らしたり、GPS信号から現在地を取得する電子機器を自作できます。
センシングデバイスとしても優秀で、温度、照度、色、臭気、角速度といった馴染みのあるものから、風速、液体、紫外線量、土壌湿度、ガンマ線といった専門的なものまで幅広く用意されています。
センサー1つあたりの価格は数十円から数千円ぐらいであり、安価に必要なデータを収集して、統計分析ソフトで処理しやすい形式で出力できる点に大きな魅力があります。
そして Arduino 自体もわずか 200 円から 300 円程度で互換機を複製できます。
Arduino の正体をきわめて大雑把に説明すると、1つの基盤の上にマイクロコントローラと入出力ポートを載せ、それを専用ソフトウェアと併せてパッケージ化したものです。
その本体と言うか、頭脳とも言えるマイクロコントローラも市販品であり、1つあたり 200 円から 350 円ぐらいで購入できます。
そこで、同種のマイクロコントローラを購入してきて、Arduino のソフトウェアを書き込むと互換機として動作させることができるようになります。
ATMEGA328P-PUコントローラ ATMEGA328マイクロコントローラ DIP-28
詳細な手順は公式のウェブサイト上で説明されています。
From Arduino to a Microcontroller on a Breadboard – Arduino
https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard
これを知っていると、書き込んだスケッチ(Arduinoプログラム)をマイクロコントローラ側に保持しておけるだけでなく、成果物を軽量化、省スペース化することにも役立ちます。
1つあたり 200 円ぐらいなので、用途が決まったらセンサと一緒に基盤に溶接してしまいましょう。
ユニバーサル基板 両面スルーホール ガラスエポキシ材 2.54mmピッチ
私はいつもセンサを購入するときに同数分のマイクロコントローラを一緒に購入しているので、無駄にたくさん持っています。
マイクロコントローラを購入してきたら、公式の解説どおりに回路を組んでブートローダを焼きます。
必要なのは 16MHz の水晶発振子と 20pF の積層セラミックコンデンサ、そして 10KΩ の抵抗です。
これらも1つあたり 10 円から 30 円ぐらいしか費用が掛かりません。
必要な部品を用意できましたら、実際に部品を接続します。
マイクロコントローラのピンには番号がついており、正しいピンに接続していないと書き込みに失敗しますので気をつけてください。
画像だとわかりにくいですが水晶発振子は D21 と D22 に接続して、それぞれ PB6 と PB7 のピンに繋がっています。
無事に接続できましたら、公式からハードウェア設定ファイルをダウンロードしてきて、指示通りに実行・・・する予定だったのですが、もっと良さそうなものがあったので、そちらを利用します。
GitHub – MCUdude/MiniCore: Arduino hardware package for ATmega8, ATmega48, ATmega88, ATmega168, ATmega328 and ATmega328PB
https://github.com/MCUdude/MiniCore
1 2 3 4 5 6 7 8 9 10 |
$ cd /usr/local/share/arduino/hardware/ $ unzip ~/Downloads/breadboard-1-6-x.zip -d . $ ./tools/avr/bin/avrdude -v avrdude: Version 6.3-20190619 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2014 Joerg Wunsch $ git clone https://github.com/MCUdude/MiniCore ~/arduino/lib $ ./tools/avr/bin/avrdude -v -v -v -v -P/dev/ttyACM0 -carduino -b19200 -C /home/buran/arduino/lib/packages/MiniCore-master/avr/avrdude.conf -patmega328 -e -Ulock:w:0x3f:m -Uefuse:w:0xfe:m -Uhfuse:w:0xd6:m -Ulfuse:w:0xe2:m |
焼き終わりましたら基盤からマイクロコントローラを引き抜いて、新しく焼いたばかりのコントローラに差し替えます。
私はマイナスドライバで強引に引き抜いていますけれども、ピン先が非常に曲がりやすいので エンジニア 基板コネクタ抜き SS-10 のような専用工具を使用したほうがいいです。
ピン先を何度も曲げていると金属疲労で簡単に破断します。
私の場合は基盤に溶接することを前提にしていること、壊れる前から新しいものを調達してくることから気にしていませんが、再利用などを考えると本当は良くないことには違いがありません。
差し替えてデモ用のスケッチを書き込めれば、ブートローダの書き込みは成功です。
あとはこれに必要なスケッチを保存して、水晶振動子などと一緒に回路につなげば、Arduino ボードを使用しなくても Arduino のスケッチを動かせるようになります。