作成日時:2015年12月05日 15時38分48秒
更新日時:2015年12月05日 18時17分57秒
この記事は9年ほど前に投稿されました。内容が古くなっている可能性がありますので更新日時にご注意ください。
※腱鞘炎になったので今後製作記次の写真はLUMIX DMC-FX80で撮影します。
Raspberry Piを買ってからというもの、色々なハードウェアを制御してきましたが。
基本的にメインで使えるハードウェアは試したので一旦Raspberry Piの話はお休みにして、今後は別のマイコンボードを試してみようと思います。今回は今一番ホットなマイコンであるArduinoの中でも最も標準的なArduino Unoを使ってみたいと思います。
Arduinoとは
Atmel製のマイコンであるAVRマイコンをメインにしたイタリア製のマイコンボードです。
Raspberry Piが教育用低価格コンピュータの普及を主目的としているのに対して、Arduinoは教育用低価格ロボットコントローラの普及を主な目的としています。なお、ココで言うロボットとは例えばライントレーサやNHKロボコンで作られている様なロボットです。勿論やろうと思えばこいつで二足歩行ロボットも作れるでしょうが…。
ハードウェア
Arduino UnoのハードウェアはAVRマイコンであるATmega328Pをメインチップとして搭載し、これにUSBシリアル変換、電源回路などの回路が纏められた非常にシンプルな構成です。また、ハードウェアの設計情報はオープンソースで公開されているので、Arduinoのクローンを作ったりも出来ますし、基板にボルトオンで取り付けられる拡張ハードウェア(シールドと呼ぶ)も豊富です。
電源はUSBから取りますが、ACアダプタジャックと、ピンヘッダ上にVin端子がありそこに5Vを供給することで動作させることが出来ます。
ソフトウェア(開発環境)
開発環境は公式サイトよりダウンロードできるIDEを使います。
公式サイト→SOFTWARE→ArduinoIDE の順に進んで使用中のOSにあったパッケージをダウンロードします。(より高度な開発環境であるArduinoStudioもあるようですが、アルファ版なのでこちらをメインに使っています。)
ソフトウェア(使用言語)
使用言語はProcessing言語をベースとしたWiring言語を使用して、更にそのWiringをベース…
使用言語はArduino言語を使います。Arduino言語とはC言語っぽい感じの命令記述が出来る言語です。まぁざっくり言うとC言語+αな感じですね。詳細な経緯や仕様は各自調べてください。
「また新しい言語を覚えるのかよぉ~」と思いますが。基本的にはC言語+オリジナル命令と言った感じなので、今までココで説明してきたハードウェアを制御するためだけならC言語の知識があれば十分です。
詳細仕様
基本的にはベースにしているAVRマイコンそのままなのでこのマイコンの仕様に準拠します。
今回購入したArduino UnoはATmega328Pなので基本的にそれの仕様に準拠していますが、USB端子につながっている関係上一部のI/Oが変更になっていて、実際の仕様は以下のとおりになっています。
- 8bit RISC プロセッサ
- 16MHz動作
- 2KBの動作用SRAM
- 1KBのデータ記録用EEPROM
- 32KBのプログラム格納用フラッシュROM(約500KBがArduinoシステム用として使用中)
- 14本のデジタルI/Oピン(うち6本がPWM出力に対応)
- 6本のアナログ入力
- I/Oピンへの電源供給は最大40mAまで
- 動作電圧は定格5V
- 安全動作電圧7-12V リミット6-20V
↑この仕様でなんで5Vで動くんだ←レギュレーターで5Vを作っているの
基本的にハードウェアのコントロールがメインなのでUSB端子(プログラム用の奴があるが)やLAN端子(拡張パーツとしてあるにはある)、映像出力端子(頑張って自分でハードを作れば映像出力できる)などのRaspberry Piについていた端子は搭載されていません。また、メモリも非常に少ないのでこいつで何かのデータを処理しようと言うのは割と無謀です。(何らかのI/Oからデータを少しずつ読み込んで液晶などのハードウェアに流すくらいはできるが。)
本当に制御のみを行うためのハードウェアですね。
もちろんコンピュータなので使用の範囲内で無理のないデータ処理は出来ますが。
超小型のカラーLCDがやっとでしょう。
それ以上の、例えばネットワーク上からデータを取得して処理、それを液晶に表示するといった場合にはやはりRaspberry Piをつかうことになると思います。
※Raspberry Piは3.3Vメインでこちらは5VメインのコントローラなのでRaspberry Pi用に構成したハードウェアをArduinoでつかう場合は色々と変更が生じる可能性があります。(逆も同様)
とりあえず何か動作させてみる
長くなりましたが、動作確認も兼ねて何か動作させてみたいと思います。
とりあえずLEDを点滅させてみましょう。
ハードウェアの接続はこんな感じ、LEDの+側を電流制限抵抗を介してIOピンに接続します。
ソフトウェアはIDEを開いて
- ファイル→スケッチの例→01.Basics→Blink
にLED点滅用プログラムがあるのでそれをそのまま使います。書き込みは
- ファイル→マイコンボードに書き込む
と辿っていけば書き込まれます。
これで書き込みが完了したらLEDが点灯し始めるはずです。
終わりに
ひとまず今回はボードの説明と簡単な動作確認をしました。次は実際にプログラムを書いてフルカラーLEDを制御してみたいと思います。
ArduinoはRaspberry Piに比べるとやれることは少ないと思いますが、それでもかなり色々なことができるのでRaspberry Piでハードウェア制御に興味を持ったなら一度使ってみることをおすすめします。(普通入門用としてはこちらのほうが最初に取り扱うと思いますが。Raspberry PiはARMベースのPCなのでもし挫折してもネット端末位にはなるので。)
[…] 前回簡単に解説したArduino UnoでフルカラーLEDを使ってIOポートの制御方法を説明したいと思います。 […]