Raspberry Pi3 B+(2)2019年01月29日

Raspberry Pi3 B+のIOインターフェース

久しぶりにRaspberry Piをいじったら、node-redとpythonが大変使いやすくなっていたのでいろいろなものをGPIOやI2Cインターフェースに接続して遊んでみました。

  • 5Mピクセルのカメラモジュール
  • GPIOに直接接続
  • サーボ制御カメラマウントに2個のSG90サーボ
  • 2回路リレー制御モジュール
  • 超音波距離センサー
  • マイクロウエーブドップラーセンサー
  • NaPiOn人感センサー
  • 赤外線リモコン受信機
  • 赤色LED
  • I2Cインターフェースに接続
  • 4チャンネルADコンバーター (ADS1115)
    薄膜サーミスタ温度センサー
  • 1.3インチOLED (SH1106)

これらはすべてnode-redで直接制御できるか、pythonプログラムで制御できます。もちろんMQTTにも対応できます。
node-redのモジュールが充実しています。

pythonプログラムで美咲フォント(日本語フォント)を1.3インチOLEDに表示させてみました。読めますが流石に8x8フォントは小さいです。

Arduinoクローン2014年10月28日

Arduinoクローン(ATmega32U2)

ATmega32U2でAVRISP MkII互換のAVRライターがうまく動作したので今度はArduino Leonardo、Arduino Microもどきが作れないかと思うのは欲張りでしょうか。
Arduino LeonardoやArduino microはATmega32U4を使用しています。理由はATmega32U2にはアナログポートとI2Cインターフェースがないためでしょう。 デジタルポートのみでもUSBインターフェースを内蔵していることの魅力にはかないません。

参照したサイトです。
  ATMEL ATmega8U2-32U2データシード(日本語版)

  ATmega32U2でArduinoモドキを作る
  ATmega32U2 USB Development Board, Arduino compatible
  ATmega32U2 USB Atmel AVR Arduino compatible development board DIL32 bootloader

  Minimus board with Arduino
    プロジェクトサイトはprojects/minimusです。

今回のテストではMinimus board with ArduinoのCaterina-Minimus.hexをAVRISP MkIIで書き込んで使用しました。スケッチの作成には同じサイトにあるArduino IDE 1.0.2も一緒にダウンロードして使用します。これは普通のArduino IDEはATmega32U2をサポートしていないためです。

【追記】

Arduino Leonardo、micro、Minius boardなどATmega U系のスケッチはATmega系のスケッチと異なり多少修正する必要があります。一例がSerialクラスです。ATmega32U2のUART(8ピンRXD、9ピンTXD)に出力しようと思ったらSerial1を指定する必要があります。詳細はこのページを参照してください。
また、ATmega系にはないKeyboardクラスとMouseクラスががあります。このクラスを使用するとArduinoボードがPCからはキーボード、マウスになります。サンプルプログラムはけっこうおもしろいです。これは使えるかもしれません。

AVRライター2014年10月26日

AVRISP MkII クローン(プロトタイプ)

UNO R3がうまく動作したのであらためて今までのArduinoとの違いを調べてみました。
大して違いはないのですが、USBインターフェースのICが違います。今まではFTDI社のFT232RというUSBシリアル専用のICが使用されていました。 UNO R2からArduino本体のICと同じAtmel社のATmega8U2、UNO R3ではATmega16U2といったUSB内蔵タイプの汎用マイクロプロセッサーを使用しています。 Arduino leonardoやmicroはATmega32U4を使用し、USBインターフェースまで本体のマイクロプロセッサーで賄っています。

ATmega8U2、ATmega16U2はATmega32U4同様にまだどこでも扱っていないようです。ATmega32U2なら秋月電子で取り扱っています。ATmega32U4は44ピン TQFPパッケージでが、ATmega8U2、ATmega16U2、ATmega32U2は32ピンTQFPパッケージです。秋月のTQFP変換基板が使えます。0.8mmピッチならハンダ付けは OKというわけで使い道も考えずに早速購入しました。ネットリサーチの結果、AVRISP MkII互換のAVRライターを作製してる方がいました。私もという ことで作製してみました。

参照したサイトです。
  AVRISP mkII クローン製作   AVRISP mkII clone の製作
  FRISK USBTiny MkII

AVRライターのファームウエアはATMEL社からダウンロードしてきたFlipというツールを使用してAVRISP-MKII-avrdude.hexを書き込みます。このAVRISP MkII クローンを使用してArduino IDEからbootloaderの書き込みができることを確認しました。
AVR Studio 6.2を使用する場合はAVRISP-MKII-studio.hexを書き込みます。

ArduinoとMIDI vol.22014年10月25日

ArduinoでMIDIコントローラーを作成する。(プロトタイプ)

SainSmart UNO R3がうまく動作したので目的のMIDIコントローラーの作製に入ります。ATmega328Pはアナログポートが6ポートしかありませんので74HC4051や74HC4052などLOGIC ANALOG MULTIPLEXERSを利用してアナログポート数を拡張する必要があります。今回は9個のVRを接続します。

  • MIDI出力で接続:
    Arduinoのシリアル出力を使用します。Arduino MIDI Libraryを使用してスケッチを作成します。
  • USB MIDI:
    LUFAでbootloaderを書き換えてUSB MIDI化します。

Arduinoで作成したMIDIコントローラーがUSB MIDI機器として認識してくれれば市販のDAWソフトのフィジカルコントローラーとして利用できます。