728x90
SMALL

📚 개발 일지/Raspberry Pi 8

[Raspberry Pi + PyGame] 파이썬으로 게임 구현하기 - 사용법, 예제

공식 문서에 나와있는 sample project 부터 보자.| 게임 셋업import pygamepygame.init() # 이니셜라이즈screen = pygame.display.set_mode((1280, 720)) # 창의 크기clock = pygame.time.Clock() # 시계 객체 생성running = True # true인 동안 실행할 bool 변수 | 게임 부분while running:| 이벤트 처리for event in pygame.event.get(): # 사용자가 X를 누르면 if event.type == pygame.QUIT: # running을 False로 바꾸고 while문을 빠져나온다. running = False파이게임의 구조적 특성상 게임 실행 중 ..

라즈베리파이 경량 메시지 프로토콜 MQTT 비유로 쉽게 이해하기

| MQTT낮은 전역, 대역폭에서 사용하도록 만들어졌다. (M2M, IoT)저전력, 신뢰할 수 없는 네트워크, No TCP/IP에서 운용 가능하다. | 핵심 구조 (publish and subscribe)메세지를 publishing하고 관심있는 주제를 subscribing하는 것을 원칙으로 한다. publisher와 subscriber는 broker에 대한 클라이언트로 작동한다. 잡지사(Publisher): 매달 새로운 잡지를 만들어서 발행구독자(Subscriber): 자기가 관심 있는 잡지를 골라서 신청 MQTT에서는?Publisher: 센서나 장비가 데이터를 보냄 (예: "온도 24도!")Subscriber: 그 데이터를 받아보고 싶은 애플리케이션이 그걸 구독함Broker: 잡지를 배달해주는 우체국..

라즈베리파이 통신 | I2C 개념 및 가변 저항, 조이스틱 실습 예제

이번엔 다중 마스터와 다중 슬레이브 구성이 가능한 I2C통신이다. | I2C: Inter-Integrated Circuit데이터가 메세지 형태로 전송된다.Serial data (SDA)와 Serial Clock(SCL)의 두 가지 선이 필요하다. 라즈베리파이에서는 각각 2번, 3번이다. SPi와 슬레이브 선택 방식이 다르다. 2개의 선만 사용한다는 점과, ack를 사용해 성공적인 수신 확인을 받을 수 있다는 점이 장점. 하지만 spi보다 느리고 복잡하며, 데이터 프레임이 8비트로 제한된다는 점이 단점이다. | 통신 방법1. 시작 조건을 전송한다.SCL이 High일 때 SDA가 High에서 Low로 변한다.2. 각 슬레이브에게 주소 데이터를 전송한다.3. 본인의 주소라면 data를 통해 ack를 전송한..

라즈베리파이 통신 | SPI 개념 및 loopback 실습

빠르게 여러 기기와 통신하고 싶을 때 사용하는 spi! | SPI(Serial Peripheral Interface)CPU같은 주인(master)이 여러 주변 장치와 대화할 때 사용한다.4개의 선을 주로 사용한다. CS, SCLK, MOSI, MISO이때, CS는 슬레이브를 선택하는 신호이다. SPI는 여러 슬레이브와 통신이 가능하므로 각 슬레이브마다 CS 핀을 다르게 연결하여 충돌을 방지한다. 하나를 선택할 때, Low로 내린다. 선생님(Master): 질문하고 답받는 주체여러 학생들(Slave): 각각 하나씩만 답할 수 있음손 든 학생(CS의 신호가 LOW): 지금 선택된 학생MOSI: 선생님이 말하는 질문MISO: 학생이 대답하는 내용SCLK: 메트로놈처럼, 말하는 타이밍을 정해주는 도구 | 장..

라즈베리파이 통신 | UART 개념 및 실습 예제

라즈베리 파이에서 다른 센서들과 어떻게 통신할까? 앞으로는 통신 방법을 공부해보자. | UARTUART (Universal Asynchronous Receiver/Transmitter)- 비동기 통신이다: 공통 클럭 신호는 없으나 동일한 비트 타이밍 보장이 필요하다. (baud rate)- 직렬 통신이다: TX와 RX 선 두개가 필요하다. 라즈베리파이에서는 GPIO 14, 15번이다.- 단순하고 구현이 간편하며 비용이 저렴하다. 속도나 처리량이 낮은 앱에서 사용된다. 드론에도 많이 쓰인다. | 프레임 형식start bit: 0의 값을 갖는다. High 에서 Low로 바뀌며 데이터 입력 시작을 알린다. data bits: LSB를 먼저 전송하는 리틀에디안 방식이다. 5~9비트를 담을 수 있으나 7~8비트..

라즈베리파이 PWM | 서보모터와 LED 밝기 조절

앞서 GPIO 게시글 마지막에서 설명했듯이, GPIO로 단순히 켜고 끄는 걸 넘어서, 밝기 조절, 모터 제어 같은 정밀 제어를 하고 싶다면 PWM (Pulse Width Modulation)을 사용해야한다. | PWM?pulse width modulation의 약자. 한 주기에서 HIGH일 때(pusle width)의 비율을 나타내는 Duty cycle을 이용해, ON과 OFF 신호를 빠르게 반복해서 평균적으로 출력 전력을 제어하는 방식이다. Pulse: 전압이 올라갔다 내려가는 것 아주 빠르게 깜빡거리며 그 정도 세기의 전력으로 보이게 한다. 디지털을 아날로그처럼 보이게하는 트릭이다!LED 밝기 조절, 서보모터 각도 조절, 주파수 조절로 음의 높낮이를 조절하는 피에조 버저 등에 사용가능하다. 라즈베리파..

라즈베리파이 GPIO | 개념 및 버튼 실습

라즈베리 파이 보드의 핀들은 GPIO의 역할을 한다. 센서의 신호를 읽고, 결과를 출력하기 위해 필요하다. | GPIOGeneral Purpose Input Output. 범용 입출력의 약차. 입력 핀에서 외부의 전압을 감지하고 출력 핀에서 외부로 전압을 내보낸다. | 파이썬 GPIO 라이브러리 함수- GPIO.setmode(모드): 핀 번호 읽는 체계를 정한다. - GPIO.setup(pin_num, IO_type): pin_num번 째 핀을 IO_type으로 설정한다. 즉, 해당 핀을 입력으로 사용할지 출력으로 사용할지 정한다.- GPIO.output(pin_num, GPIO.HIGH or GPIO.LOW): pin_num번 째 핀에 HIGH 혹은 LOW값을 준다.- GPIO.input(pin_nu..

라즈베리파이 시작하기

| 임베디드쉽게 말해 작은 컴퓨터. CPU를 중심으로 여러 장치들로 구성이 되어있다. 디지털 카메라, 에어컨 등도 임베디드 시스템의 예시가 된다. 컴퓨터와의 다른 점은 임베디드 시스템이 좀 더 많은 센서를 가지고 있다고 보면 됨. | 라즈베리파이싱글 보드 컴퓨터이다. 임베디드 시스템의 주요 장치를 하나의 보드로 구성해놓은 것이다. 아두이노는 개인 pc에서 프로그래밍하고 아두이노에 업로드한다. 이와 달리 라즈베리파이는 자체 OS가 있어야 구동 가능하다. 운영체제향 임베디드라고 불리기도 한다. | SSH 접속라즈베리 파이를 사용하기 위해서는 모니터, 키보드, 마우스를 다 연결해야 하는가? 아니다! 같은 네트워크에 연결이 되어있다면 원격으로 pc나 노트북에서 라즈베리파이에 접속 가능하다. Secure She..

728x90
LIST