4
4

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 5 years have passed since last update.

Arduino互換のSTM32F103とRaspberry Pi 3をシリアル通信させる。

Last updated at Posted at 2017-11-30
株式会社XSHELL デベロッパー 植田歩

概要

  • Arduino互換の格安ワンボードマイコン RobotDyn - STM32F103(以降STM32と呼ぶ)
  • 高性能シングルボードコンピューター Raspberry Pi 3
    この2つを組み合わせて使う。

Raspberry Piは電源を大量消費するので常時起動させず、必要な時以外は電源を落としておきたい。
低消費電力なSTM32をRaspberry Piの電源制御に使い、Raspberry Piではセンサーから値の取得・処理・通信をやらせる。
これであれば単三電池3本程度で長期運用が可能なデバイスが作れると目論んだ。
ただし今回紹介するのは「STM32とRaspberry Piのシリアル通信」だけをゴールとする。

環境

  • Raspberry Pi 3
  • OS 2017-08-16-raspbian-stretch-lite.img
  • robotdyn STM32F103 Dev.Board
  • Mac OS X El Capitan
  • 秋月電子FT232RL USBシリアル変換モジュール
  • 秋月電子超小型USBシリアル変換モジュール

STM32ボードのPIN配置

設定

Raspberry Piの設定:

vi /boot/cmdline.txt
console=serial0,115200の削除(viならxで一文字削除)

sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl disable serial-getty@ttyAMA0.service
sudo systemctl stop serial-getty@ttyS0.service
sudo systemctl disable serial-getty@ttyS0.service

インターフェース設定でSSHとシリアルを許可

MACから接続してみる

IMAG2604.jpg


ls /dev/tty.*
screen /dev/tty.usbserial-A1032MA9 115200

STM32にスケッチ書き込み

STM32からloopを送出するだけのスケッチを書く。
下記のような感じ(このコードは未検証)


# define LED_PIN (PB13)

void setup(){
  Serial.begin(9600);
  Serial1.begin(9600);
}

void loop(){
  Serial.println("loop");
  Serial1.println("loop");
  delay(1000);
}

どこにさすか、シリアルポートの番号間違えると動かないので注意。
ここが一番肝心!!!
STM32だとシリアルポートが3箇所あるはずなのでSerial1とかSerial2とか適宜変更する。


Serial.begin(9600);
Serial1.begin(9600);

ラズパイとSTM32をシリアル接続。

ラズパイにSSHログインしてSTM32とシリアル接続。


screen /dev/ttyS0 9600

STM32に書き込んだSerial.println1("loop");が来たら成功


# 成功
loop
loop
loop

調査


ls -hl /dev/*|grep S0
sudo apt-get install screen
sudo apt-get install setserial
setserial -g /dev/tty
sudo stty -F /dev/ttyAMA0
sudo stty -F /dev/ttyS0
dmesg |grep ttyAMA0
sudo lsof | grep AMA0

使用中だったらこれで切る


cat < /dev/ttyS0

株式会社XSHELL デベロッパー 植田歩

XSHELLはSBCを使いやすくするソリューションを提供しています。
isaaxIoTitぜひご使用になってご意見を頂きたく思います。
共に素晴らしいプロジェクトを実現させましょう!


4
4
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
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?