미디어파이프로 라즈베리파이 피코 제어하기
팀별 노션 위쪽 공간에 코드랑 동영상 넣어주세요
[4.시리얼 통신 미션] (미션 안내 및 기본 코드 제공 : aimk.notion.site/253)
4-1. 위에 있는 시리얼 통신 기본 코드 넣기
4-2. 다음과 같이 키값을 새로 배정할 것
1 : 외부 led 한개 깜빡이기
2 : 외부 led 두개 계속 켜지게 하기
3 : rgb led 레드계열 색상에서 다양한 색 나오게 하기
4 : rgb led 다양한 색상 나오게 하면서 깜빡이게 하기
5 : 서보모터 2개 와이퍼처럼 스위핑 움직이게 하기
6 : led, 서보모터 모두 멈추게 하기
•
led는 모두 off
•
서보모터는 90도로 돌아가게 하기
7 : 자유 동작 배정(가산점 요소)
q : 프로그램 종료 키
해야할 일 : 4-2 코드 올리고 영상 올리기, GPT에게 어떤 질문을 통해 코드를 받았는지도 기록할 것
ex) thoony 시리얼 통신에서 1하고 엔터 누르면 1번 동작
•
기본 코드 1 : 시리얼 통신 제어 코드
from machine import Pin
import time
# RGB LED에 연결된 GPIO 핀 설정
red = Pin(3, Pin.OUT)
green = Pin(4, Pin.OUT)
blue = Pin(5, Pin.OUT)
# 초기에는 모든 LED를 끔
red.value(0)
green.value(0)
blue.value(0)
# 키보드 입력을 받음
while True:
x = input("Enter 'r' for red, 'g' for green, 'b' for blue, 'q' to quit: ")
# 빨간색 LED 제어
if x == 'r':
red.value(1)
green.value(0)
blue.value(0)
# 초록색 LED 제어
elif x == 'g':
red.value(0)
green.value(1)
blue.value(0)
# 파란색 LED 제어
elif x == 'b':
red.value(0)
green.value(0)
blue.value(1)
# 종료
elif x == 'q':
break
else:
print("Invalid input. Please enter 'r', 'g', 'b', or 'q'.")
time.sleep(0.5)
# 모든 LED를 끔
red.value(0)
green.value(0)
blue.value(0)
JavaScript
복사
•
기본 코드 2 : 서보모터 제어 코드
from machine import Pin, PWM
from time import sleep
# 서보모터가 연결된 핀 번호 설정 (예: GP15)
servo = PWM(Pin(15))
servo.freq(50) # 서보모터의 주파수 설정 (50Hz)
# 최소, 중간, 최대 듀티 사이클 값 설정
min_duty = 1638 # 약 1ms 펄스 폭에 해당 (5% 듀티 사이클)
mid_duty = 4915 # 약 1.5ms 펄스 폭에 해당 (7.5% 듀티 사이클)
max_duty = 8192 # 약 2ms 펄스 폭에 해당 (10% 듀티 사이클)
try:
while True:
print("0도 위치로 이동")
servo.duty_u16(min_duty)
sleep(1)
print("90도 위치로 이동")
servo.duty_u16(mid_duty)
sleep(1)
print("180도 위치로 이동")
servo.duty_u16(max_duty)
sleep(1)
except KeyboardInterrupt:
servo.deinit()
JavaScript
복사
•
기본코드 3 : 외부 led 3개 깜빡이는 코드
from machine import Pin
from time import sleep
# LED 핀 번호 설정
led_pins = [27, 22, 18]
# LED 객체 생성
leds = [Pin(pin_num, Pin.OUT) for pin_num in led_pins]
while True:
for led in leds:
# 모든 LED 끄기
for l in leds:
l.off()
# 현재 LED 켜기
led.on()
sleep(1) # 1초 동안 대기
JavaScript
복사
마빗 기본 제어 : 라디오통신, 방향전환, LED 제어
패들렛 과제 제출처
•
H반(최찬 없는반)
•
I반 (최찬 있는반)
Gallery
Search