Raspberry Pi で Arduino UNO とシリアル通信をする

Raspberry Pi の赤外線リモコンがうまく動かなくなり、別の方法をいろいろ試している。

ふと Arduino UNO が押し入れに眠っていることを気付き、それで作ってみることにした。とりあえず、コマンドラインで Arduino にプログラムを書き込む段階までの方法をメモ。

操作はすべて Raspberry Pi と SSH 接続した Mac から行う。

環境:Raspberry Pi 3 Model B(Raspbian Jessie)、Mac、Arduino UNO

(1)Raspberry Pi の /boot/config.txt を編集し、末尾に以下の行を追加する。

dtoverlay=pi3-miniuart-bt

(2)Raspberry Pi の /boot/cmdline.txt を以下のように変更する。

変更前:dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
変更後:dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

(3)Raspberry Pi を再起動。

(4)Arduino を Raspberry Pi に USB 接続する。

参考:
Raspberry Pi3とArduino Unoのシリアル通信 – Qiita
https://qiita.com/yumatsud/items/03281b32d49dfe9e59fd

(5)パッケージ情報を最新にする。

$ sudo apt-get update

(6)Arduino パッケージをインストールする。

$ sudo apt-get install arduino

(7)ino をインストールする。

$ sudo pip install ino

(8)適当なディレクトリを作成し、そこへ移動。

$ mkdir arduino-light
$ cd arduino-light

(9)プロジェクトを作成する。

$ ino init

lib と src というディレクトリができる。

(10)src/sketch.ino を編集し、Arduino のプログラムを書く。保存。

$ sudo nano src/sketch.ino

(11)コンパイルする。

$ ino build

(12)Arduino へ書き込む。

$ ino upload

(13)シリアル通信をするため、picocom をインストールする。

$ sudo apt-get install picocom

Linking Arduino to the Raspberry Pi – Raspberry Pi Pod
http://www.recantha.co.uk/blog/?p=1103

(14)以下のコマンドでシリアル通信には入れる。

$ ino serial

終了するには、Ctrl+s、Ctrl+x 。

実際に Arduino のプログラムを動かす段階までは試していない。

参考:
橋本商会 » ino使うとCUIでArduinoをビルドできて便利
http://shokai.org/blog/archives/7454

Raspberry Pi で Arduino の F/W を書き換える – もみあげあしめ
http://shima-nigoro.hatenablog.jp/entry/2016/12/25/113000

その他関連サイト:
Ed's Blog: Uploading Arduino sketch from Raspberry Pi (command line)
http://pblog.ebaker.me.uk/2014/01/uploading-arduino-sketch-from-raspberry.html

RaspberryPiとArduinoを連携する【USBシリアル編】 – uepon日々の備忘録
http://uepon.hatenadiary.com/entry/2017/01/01/141220

Arduino + Raspberry Pi をUSBでシリアル通信して温度湿度センサーのデータを取得してみる – まえちゃんろぐ
https://blog.seiyamaeda.com/7592

赤外線リモコンを作る | Make.
http://make.bcde.jp/arduino/赤外線リモコンを作る/