マイコン/CPU

「MCU」のほうが正確かもしれないが、一般名詞としての認知度が低いので。

Arduino互換とするためにAtmelの同じシリーズの8ビットマイコン(AVRマイコン)を使うことにした。すでに別の仕事での使用経験が豊富だったということもある。 WOBの企画を始めた当初の2011年ではArduinoに使われているもっともポピュラーなマイコンはATmega168またはATmega328であった*1

WOBではキーパッドやLEDディスプレイが初めから搭載されるため、それらよりI/O数の多いATmega324を使うことにした。機能比較をすると下記のようになる。

Arduino (ATmega168/328) WOB (ATmega324)
Flash ROM 16KB/32KB 32KB
SRAM 1KB/2KB 2KB
EEPROM 512B/1KB 1KB
Digital I/O 23bits 32bits
Analog In 6ch 8ch
PWM Out 6 6
Timer 8bit x 2 + 16bit x 1 8bit x 2 + 16bit x 1
Serial Port 1ch 2ch
Clock 16MHz*2 20MHz

しかし、ただ載せ替えればいいというものではない。ピンの機能に違いがあったり、I/Oレジスタの呼び名が異なっていたりするため、Arduino開発環境で使えるようにするにはソフトウェア上の改造が必要となる。

*1 他にもさまざまな互換ボードがあるが、すべてCPUコアにAVRを使用しているものである。2012年11月現在、ついにARMアーキテクチャCPUを持つ32ビットマイコン搭載の”Arduino Due”が発売された。

*2 マイコン自体は最大20MHz。ボードは16MHzで動かしている。