Arduino 호환 STM32F103과 Raspberry Pi 3를 직렬 통신합니다.
3059 단어 RaspberryPiSTM32파이썬ArduinoIoT
개요
이 두 가지를 조합하여 사용한다.
Raspberry Pi는 전원을 대량 소비하므로 상시 기동시키지 않고, 필요한 때 이외는 전원을 떨어뜨려 두고 싶다.
저소비 전력인 STM32를 Raspberry Pi의 전원 제어에 사용해 Raspberry Pi에서는 센서로부터 값의 취득·처리·통신을 시킨다.
이것이라면 AA 배터리 3개 정도로 장기 운용이 가능한 디바이스를 만들 수 있다고 생각했다.
다만 이번 소개하는 것은 「STM32와 Raspberry Pi의 시리얼 통신」만을 골로 한다.
환경
STM32 보드의 PIN 배치
설정
Raspberry Pi 설정:
vi /boot/cmdline.txt
console=serial0,115200の削除(viならxで一文字削除)
sudo systemctl stop [email protected]
sudo systemctl disable [email protected]
sudo systemctl stop [email protected]
sudo systemctl disable [email protected]
인터페이스 설정에서 SSH 및 시리얼 허용
MAC에서 연결해보기
ls /dev/tty.*
screen /dev/tty.usbserial-A1032MA9 115200
STM32에 스케치 쓰기
STM32에서 루프를 보내는 스케치를 작성합니다.
아래와 같은 느낌 (이 코드는 검증되지 않음)
#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를 사용하기 쉽게 만드는 솔루션을 제공합니다.
isaax , IoTit 꼭 사용되어 의견을 받고 싶습니다.
함께 멋진 프로젝트를 실현합시다!
Reference
이 문제에 관하여(Arduino 호환 STM32F103과 Raspberry Pi 3를 직렬 통신합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/xshell/items/10c425ba3f641e8b5321텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)