RaspberryPiにいろいろつないでみた

この記事は書きかけです

RaspberryPiを

  • ラジオサーバ
  • 猫監視
    • WebCamでブラウザ経由監視
    • WebCamを2軸サーボで動かす
    • 室温監視してエアコンOn/Off

にすることを目的にいろいろつなげるだけつないでみた。

RaspberryPiに

  • ロータリーエンコーダ x2
  • LED
  • トグルスイッチ
  • 2.2inch LCDモニタ
  • デジタル温度計(1-Wire)
  • Arduino(ATMega328P-PU)

をつないでみた。
RaspberryPiにつないだArduino(ATMega328P-PU)に

をつないでみた。
RaspberryPiとArduino(ATMega328P-PU)の間は、SPI(スケッチ書き込み用)とシリアル通信でつないでみた。
各種デバイスをRaspberryPi, Arduinoのどっちにつなぐかはかなり適当です。
当初は、5V系デバイスはArduino, 3.3V系はRaspberryPiにするつもりでしたが必ずしもそうはなってないです。

GPIOでArduinoへスケッチ書き込み

ArduinoというかATMega328への書き込みと言った方が正確かも。
Gertboard | Arduino IDE Installation (ISP) | Gordons Projects
を実施

シリアル通信でArduinoと接続

ちょっとはまった。
何か送信できるけどうまく取り込めない。3.3V(RaspberryPi) <-> 5V(ATMega328)変換で結線ミスかPullUpが弱いのかと思って悩んだ。が、結局は、Getboard(という評価ボード)が12MHzなので、16MHzでATMega328を動かす場合は設定ファイルを書き換える必要があった。
以下を変更。

/usr/share/arduino/hardware/arduino/boards.txt:

gert328.name=Gertboard with ATmega328 (GPIO)
...
#gert328.build.f_cpu=12000000L
gert328.build.f_cpu=16000000L
...

5V電源はGPIOから供給

RaspberryPiにつないだATMega328P-PUにサーボモータをつないでいるので、RaspberryPiの5V電源で十分な電流が流せる必要がある。
が、microUSB経由だとポリフューズがあるので700mAまでしか流せない(実際、microUSB電源供給でサーボモータを動かすとすぐ落ちる)。
色々調べるとGPIOの5Vに直結するのが良さそう。
なのでmicroUSBから電源供給しないで5V 2A のAC/DCアダプタをGPIO 5Vに直結することにした。

デジタル温度計

ここを参考に実装。
Raspberry Pi で温度センサ(DS18B20+)を読んでみた - 完全に個人的な備忘録
# 1-wirearduinoで使えるようにもトライしてみたい気もするが

この記事は書きかけです