Serial 통신 with Microbit
-기기와 기기간의 대화-
-기기와 기기간의 대화-
🍀마이크로 비트 시리얼 통신: '시리얼 통신에 대한 기본 이해'
시리얼 통신(serial communication)은 데이터 전송 방식의 하나로, 데이터를 하나의 비트씩 순차적으로 전송하는 방식을 의미합니다. 이는 병렬 통신(parallel communication)과 대비되며, 두 시스템 간에 상대적으로 적은 수의 전선을 통해 데이터를 전송할 수 있어 하드웨어 비용이 절감되고, 장거리 데이터 전송에 적합한 장점을 가지고 있습니다.
🍀 시리얼 통신의 주요 특징
🍃 데이터 전송 방식:
시리얼 통신은 데이터를 비트 단위로 전송합니다. 전송 속도는 보드레이트(baud rate)로 표현되며, 이는 초당 전송되는 비트의 수를 나타냅니다.
동기식과 비동기식:
동기식 통신(synchronous communication): 송신자와 수신자가 동일한 클럭 신호를 공유하여 데이터를 전송합니다. 대표적인 예로 I2C, SPI가 있습니다.
비동기식 통신(asynchronous communication): 클럭 신호를 공유하지 않고, 데이터 프레임에 시작 비트와 정지 비트를 포함하여 동기화를 유지합니다. 대표적인 예로 UART, RS-232가 있습니다.
통신 방향:
단방향 통신(simplex communication): 데이터가 한 방향으로만 전송되는 방식입니다.
반이중 통신(half-duplex communication): 데이터가 양방향으로 전송될 수 있지만, 동시에 전송되지 않습니다.
전이중 통신(full-duplex communication): 데이터가 양방향으로 동시에 전송될 수 있습니다.
🍀 시리얼 통신의 프로토콜
UART(Universal Asynchronous Receiver/Transmitter): 비동기식 통신 방식으로, 일반적으로 마이크로컨트롤러 간의 통신에 사용됩니다. 시작 비트와 정지 비트를 통해 동기화를 유지합니다.
RS-232: 컴퓨터와 주변기기 간의 통신에 사용되는 비동기식 직렬 통신 표준입니다. 주로 D-서브 커넥터를 사용하며, 최대 15미터까지의 거리에서 안정적인 통신이 가능합니다.
I2C(Inter-Integrated Circuit): 동기식 직렬 통신 프로토콜로, 여러 개의 장치가 한 개의 버스를 공유하여 통신할 수 있습니다. 마스터-슬레이브 구조를 가지며, 최대 127개의 슬레이브 장치를 지원합니다.
SPI(Serial Peripheral Interface): 동기식 직렬 통신 프로토콜로, 데이터 전송 속도가 빠르고 간단한 구조를 가지고 있습니다. 마스터-슬레이브 구조를 가지며, 일반적으로 4개의 핀(CS, SCLK, MOSI, MISO)을 사용하여 통신합니다.
🍀마이크로 비트 시리얼 통신 매커니즘
시리얼 통신은 Python 언어를 공부한 후 pyserial 라이브러를 활용하여 데이터를 보냅니다.
두 가지 프로젝트 형태가 있습니다.
1)UART통신을 활용하여 마이크로 비트에 바로 데이터를 보내서 컨트롤 하는 방법
2)UART통신을 활용하여 마이크로 비트에 데이터를 보내고 그 값을 마이크로 비트 라디오 통신을 활용하여 다른 마이크로 비트로 보내는 방식입니다.
3)TX(Transmitter x), Rx(Receiver x)의 약자로 여기서 x는 뒤에 어떤 것도 올 수 있다는 의미의 변수 x를 의미합니다.
2번 방법은 '근거리 무선 통신'을 하여 프로젝트를 확장할 수 있는 방법입니다. 예를 들어 비젼학습을 시킨 데이터를 마이크로 비트(송신기)로 데이터를 보내고 어떤 조건에 만조하면 마이크로 비트(송신기)에서 마이크로 비트(수신기)로 신호를 보내서 작동을 시킬 수 있습니다.
🍀 UART 통신
송신단자(USB_TX): 데이터를 전송하는 핀입니다.
수신단자(USB_RX): 데이터를 수신하는 핀입니다.
통신속도(9600bps): 데이터 전송 속도를 의미합니다.
USB를 마이크로 비트에 연결 한 후, 시리얼 통신 프로그램을 사용하여 데이터를 주고 받을 수 있습니다.