2019年09月29日 | 更新。 |
Arduino Unoとは2010に発売されたArduino(プロトタイピング用マイコンボード)で、最も代表的なArduinoです。
Arduino LLC社とArduion SRL社の双方がArduino Unoを販売しています。Arduino LLC社は、アメリカ以外の地域ではGenuino Uno(ジェニュイーノ・ウノ)の商品名で販売していますが、商品名の違いだけで、ハードウェア的には同一のものです。
Arduino LLC社が運営するarduino.ccのArduino Unoの紹介ページには、次の様な説明が載っています。
"Uno" means one in Italian and was chosen to mark the release of Arduino Software (IDE) 1.0. The Uno board and version 1.0 of Arduino Software (IDE) were the reference versions of Arduino, now evolved to newer releases.
(訳) "Uno"はイタリア語で1を意味する言葉で、Arduino Software (IDE) 1.0のリリースを表すためにそう名付けました。 Unoの基板とArduino Software (IDE)のバージョン1.0は、Arduinoのリファレンスバージョンでしたが、現在は新しい(バージョンの)リリースに発展しています。
また、Arduino SRL社が運営するarduino.orgのArduino Unoの紹介ページには、次の様な説明が載っています。
2019/07/02追記:
現在はarduino.orgはarduino.ccにリダイレクトされる様になっています。arduino.orgにはアクセスできません。
The Arduino UNO is the most used board in the family of Arduino boards. If you are starting out with Arduino, this is the board to get.
(訳) Arduino UNOは、Arduino基板のシリーズで最もよく使われた基板です。 もしあなたがArduinoを始めようとしているのなら、この基板(Arduino Uno)が、手に入れるべき基板です。
Arduino Unoは、処理能力の低い8ビットAVRマイコンを採用しており、Cortexプロセッサなどを採用した32ビットのArduinoと比べると能力的に見劣りはしますが、代表的なArduinoであるがゆえに、書籍、ネット上などに膨大な関連情報(作例など)が載っており、また、市販のシールドのほとんどがArduino Unoに対応ている事から、現在でも初心者が最初に買うのには適したArduinoとなっています。
Arduino Unoが採用したATmega328Pという8ビットAVRマイコンは、初心者でもはんだ付けしやすいDIPパッケージでも供給されています。(写真2参照) そのため、Ardino Unoでプロトタイピングを行うと、その後ユニバーサル基板などで専用基板化しやすいというメリットがあります。
A/D変換器の性能の実力値では、32ビットのCortexプロセッサを採用したArduino M0に勝り、古い機種とはいえ、意外にその実力は侮れません。
また、I/Oピンの出力電流が1ピンあたり20mAも取れるので、例えば高輝度LEDなどでも直接ドライブできます。
参考1:Cortexプロセッサを採用したArduinoの場合、I/Oピンの出力電流がもっと小さいので、LEDを明るく点灯させたい場合には、制限電流を超えないように注意が必要です。例えばArduino M0やArduino Zeroは1ピンあたり7mAしか取れません。
参考2:Arduino Unoが採用しているマイコン(ATmega328P)のI/Oピンあたりの絶対最大出力電流が40mAなので、Arduino Unoの仕様の20mAは、控えめに書かれているものと思われます。
3.3V出力のLDO(定電圧回路の一種)が載っているので、3.3V動作のICに電源を供給できます。しかしI/O電圧が5Vですので、3.3V動作のICとのインターフェースには、レベル変換が必要です。
GPIO(汎用デジタルI/O)用のピンを14本備えています。また、後述の6ピンのアナログ入力ピンも、アナログ入力として使わないときはGPIO用に使える様になっています。
14本のGPIOピンで、多くの用途をカバーできますが、ロボットをマイコン制御する用途などではGPIOピンが不足することが多く、その様な用途では、さらにピン数の多いArduino Mega 2560が好んで使われるようです。
アナログ入出力機能としては、6ピンのA/D変換入力を備えています。A/D変換の分解能は10ビットです。
アナログ出力機能はありませんが、その代わりに6ピンのPWM出力ピン(デジタルI/Oピンと兼用)があります。LEDの調光用などの用途にはPWM出力をそのまま使えますが、アナログ電圧を取り出すにはローパスフィルタ(LPF)で電圧を平均化する必要があります。
シリアルインターフェースとしては、UART、SPI、TWI(I2C)を各1チャンネル持っています。ただし、UARTはUSB経由のスケッチの書き込みにも使っているので、UART用のピンに何らかのデバイスをつなげていると、スケッチの書き込みができなくなる現象が発生する事があります。
パソコンとUSB接続するために、ATmega16U2という、USBインターフェース付きのAVRマイコンを内蔵しています。(写真3参照) ATmega16U2は、通常はUSBとシリアルの変換の動作しかしませんが、専用のICSP端子(プログラムを書き込むための端子)を持っており、ここからファームウェアを書き込むことで、色々なUSBデバイスを作る事ができます。
ただし、ATmega16U2のプログラミングはArduino IDEでは行えず、AVRマイコンの製造元であるAtmel社(現Microchip Technology社)の配布するAtmel Studioなどを使って行う必要があり、また、プログラムの書き込みも、AVRISP mkIIなどの書き込み器を別途用意する必要があります。そのため、Arduino Uno内蔵のATmega16U2を使いこなした作例は、あまり発表されていません。
Arduino Leonardoを使えば、Arduino IDEの環境内で、ArduinoがUSBマウスやUSBキーボードとして振る舞うスケッチを作れるため、この様な用途にはArduino UnoよりArduino Leonardoの方がよく使われます。
Arduino Unoの主な仕様は表1の通りです。
項目 | 内容 |
---|---|
マイクロコントローラ(マイコン) | ATmega328P |
動作電圧 | 5V |
入力電圧(推奨値) | 7~12V |
入力電圧(制限値) | 6~20V |
デジタルI/Oピン | 14ピン(うち6ピンがPWM出力可能) |
PWMデジタルI/Oピン | 6ピン |
アナログ入力ピン | 6ピン |
I/Oピンあたりの直流電流 | 20mA |
3.3Vピンの直流電流 | 50mA |
フラッシュメモリ | 32kB (内0.5kBをブートローダが使用) |
SRAM | 2kB |
EEPROM | 1kB |
クロック周波数 | 16MHz |
長さ | 68.6mm |
幅 | 53.4mm |
重量 | 25g |
Arduino Unoのピン配置を図1に示します。