라즈베리파이 usb포트 - 아두이노 TX RX 시리얼 연결 사진
usb to serial로 사용할 수 있는 모듈을 통해 아두이노의 TX, RX, 5V, GND에 연결
아두이노에 프로그램을 업로드할 때 컴퓨터와 TX,RX 통신을 하므로, 소스 업로드를 마치고 나서 연결해야 정상적으로 소스가 업로드 되니 주의
usb를 꽂은 뒤 터미널에서 'dmesg|tail' 명령어로 현재 연결된 USB포트의 이름을 알아내기
라즈베리파이(wiringPi 라이브러리 사용)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include<stdio.h> #include<string.h> #include<errno.h> #include<wiringSerial.h> int main(){ int fd; if((fd=serialOpen("/dev/ttyUSB0",115200))<0){ fprintf(stderr,"Unable to open serial device: %s\n", strerror(errno)); return 1; } for(;;){ putchar(serialGetchar(fd)); fflush(stdout); } } | cs |
9~12줄
터미널에서 연결된 디바이스 정보를 serialOpen함수에 문자열로 입력, 2번째 매개변수는 serial 통신의 스피드를 입력.
(아두이노 쪽 통신속도와 일치해야 데이터를 정확히 받을 수 있음)
정상적으로 시리얼 접속이 안될경우 장치 이름이 동일한지 확인해야함
13~16줄
아두이노에서 보낸 데이터를 결과창에 출력
char serialGetchar(int id) : 연결된 시리얼 장치로부터 문자를 반환받는 함수
fflush() : 버퍼를 비우는 함수
아두이노
1 2 3 4 5 6 7 8 9 | void setup(){ Serial.begin(115200); } void loop(){ Serial.println("Hello World"); delay(1000); } | cs |
프로그램이 실행될때 시리얼 연결을 하고 1초마다 Hello World 문자열을 전송하는 소스
'프로그래밍 > 라즈베리파이' 카테고리의 다른 글
(라즈베리파이) VNC Viewer를 이용한 원격 GUI (0) | 2018.09.04 |
---|---|
(라즈베리파이) 이클립스 외부라이브러리 추가된 jar export하기 (0) | 2018.09.03 |
(라즈베리파이 3) gpio를 이용한 Serial 통신 (4) (0) | 2018.08.31 |
(라즈베리파이, WiringPi) SG90 사용하기 (0) | 2016.07.10 |
(라즈베리파이) VNC Viewer를 이용한 원격 GUI (0) | 2016.07.10 |