3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Arduino CLI の使いかた

Last updated at Posted at 2021-08-27

次のページを参考にしました。
Arduino CLI Installation
arduino-cliの使い方
RaspberryとArduinoをシリアル通信する

Raspberry PI 4 と、ArduinoUNO を使いました。
IMG_20210827_101442.jpg

  1. ダウンロード
wget https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Linux_ARMv7.tar.gz
  1. 解凍
tar xvfz arduino-cli_latest_Linux_ARMv7.tar.gz

次のファイルが出来ました。

27369208 May 14 13:41 arduino-cli

このファイルはそのまま実行ができます。

  1. バージョンの確認
$ arduino-cli version
arduino-cli alpha Version: 0.18.3 Commit: d710b642 Date: 2021-05-14T12:36:58Z
  1. ポートの確認
$ ls -al /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 Aug 27 01:50 /dev/ttyACM0
  1. /dev/ttyACM0 を使えるようにする
    ユーザーが uchida の場合
sudo adduser uchida dialout
  1. ボードの確認
$ arduino-cli board list
Port         Type              Board Name  FQBN            Core       
/dev/ttyACM0 Serial Port (USB) Arduino Uno arduino:avr:uno arduino:avr
/dev/ttyAMA0 Serial Port       Unknown
  1. パッケージのインストール
arduino-cli core install arduino:avr
  1. Arduino のプログラムの作成
hello_world/hello_world.ino
// ---------------------------------------------------------------
/*
	hello_world.uno

				Aug/27/2021
*/
// ---------------------------------------------------------------
int count = 0;

// ---------------------------------------------------------------
void setup()
{
	Serial.begin(9600);
	Serial.println("*** start ***");
}

// ---------------------------------------------------------------
void display_proc(char msg[])
{
	Serial.print(msg);
	Serial.println(" " + String(count));
	delay(2000);
}

// ---------------------------------------------------------------
void loop()
{
	display_proc("aaaa");
	display_proc("bbbb");
	display_proc("cccc");
	display_proc("dddd");
	display_proc("eeee");

	count++;
}

// ---------------------------------------------------------------
  1. コンパイル
arduino-cli compile --fqbn  arduino:avr:uno hello_world
  1. アップロード
arduino-cli upload -b arduino:avr:uno -p /dev/ttyACM0 hello_world

プログラムはアップロードされるとすぐに実行されます。

  1. Raspberry Pi で受信

必要なライブラリーのインストール

pip3 install pyserial

受信プログラム

receive.py
#! /usr/bin/python3
import serial
if __name__ == '__main__':
    ser = serial.Serial('/dev/ttyACM0', 9600, timeout=1)
    ser.flush()
    while True:
        if ser.in_waiting > 0:
            line = ser.readline().decode('utf-8').rstrip()
            print(line)

実行結果

$ ./receive.py 
*** start ***
aaaa 0
bbbb 0
cccc 0
dddd 0
eeee 0
aaaa 1
bbbb 1
cccc 1
dddd 1
eeee 1
aaaa 2
bbbb 2

cu でも受信できます。

インストール

sudo apt install cu

実行結果

$ cu -s 9600 -l /dev/ttyACM0
Connected.
*** start ***
aaaa 0
bbbb 0
cccc 0
dddd 0
eeee 0
aaaa 1
bbbb 1
3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?