Buzzer와 RGBstrip

2024. 6. 19. 16:18Jetson

 

✅ Asynchronous control servo

📌 권한 오류

from servoserial import ServoSerial
import time
servo_device = ServoSerial()

📌 오류 해결

sudo chmod 777 /dev/ttyTHS1

from servoserial import ServoSerial
import time
servo_device = ServoSerial()

servo_device.Servo_serial_control(1, 2100) # 좌우 600 ~ 3600
time.sleep(0.1)
servo_device.Servo_serial_control(2, 2048)  # 위아래 1300 ~ 4095

servo_device.Servo_serial_control(1, 1300)
time.sleep(0.1)
servo_device.Servo_serial_control(2, 1300)

servo_device.Servo_serial_control(1, 3600)
time.sleep(0.1)
servo_device.Servo_serial_control(2, 3600)

servo_device.Servo_serial_control(1, 2100)

 

✅ Buzzer

  • piezo : 수동형, 주파수로 제어
  • jetbot에 달린 buzzer -> 능동형(울리거나 울리지 않거나)
  • pin 6번

 

# 방법1
import RPi.GPIO as gpio
import time

gpio.setmode(gpio.BCM)
gpio.setup(6, gpio.OUT)

try:
    while 1:
        gpio.output(6, 1)
        time.sleep(0.5)
        gpio.output(6, 0)
        time.sleep(0.5)
    
finally:
    gpio.cleanup()
# 방법2 

import RPi.GPIO as gpio
import time

gpio.setmode(gpio.BCM)
gpio.setup(6, gpio.OUT)

current_beep = gpio.HIGH

try:
    while 1 : 
        current_beep = not current_beep

        gpio.output(6, current_beep)

        time.sleep(0.01)

finally:
    gpio.cleanup()

 

✅ RGB strip

from RGB_Lib import Programing_RGB

strip = Programing_RGB()
red = 0x00 # 16진수
green = 0xff
blue = 0xff

# Set_All_RGB -> Led 전체를 제어할 수 있음

strip.Set_All_RGB(red, green, blue)
# n진법
# 0, 1 -> 2개 -> 2진법
# 16진법 -> 16개
# 16진법 -> 0 ~ 9, A, B, C, D, E, F
# Set_An_RGB -> Led 각각을 제어할 수 있음
# 오른쪽 맨 뒤 -> 0번 / 왼쪽 맨 뒤 -> 5번

strip.Set_An_RGB(4, 0xff, 0x63, 0x47) # 오른쪽 맨 앞
strip.Set_An_RGB(5, 0xff, 0x69, 0xb4) # 왼쪽 맨 뒤
strip.OFF_ALL_RGB() # Led 전체 종료
# 빨초빨초빨초 ...
# 스트림이 가진 led -> 0 ~ 9번까지
# 짝수는 다저 블루 / 홀수는 옐로우

def summer1():
    for num in range(0, 10):
        if num % 2 == 0 :
            strip.Set_An_RGB(i, 0x1e, 0x90, 0xff)
        else :
            strip.Set_An_RGB(i, 0xff, 0xff, 0x00)
            
# 초빨초빨초빨 ...
# 짝수는 옐로우 / 홀수는 다저 블루

def summer2():
    for num in range(0, 10):
        if num % 2 == 0 :
            strip.Set_An_RGB(i, 0xff, 0xff, 0x00)
        else :
            strip.Set_An_RGB(i, 0x1e, 0x90, 0xff)
import time

for i in range(11):
    summer1()
    time.sleep(0.5)
    summer2()
    time.sleep(0.5)
strip.Set_WaterfallLight_RGB() # 폭포처럼 땅땅땅땅
strip.Set_ChameleonLight_RGB() # 카멜리온 색
strip.Set_BreathSSpeed_RGB(1) # 밝기 변화 속도
strip.Set_BreathColor_RGB() # 색 변화
strip.Set_BreathSLight_RGB() # 점점 밝게

 

'Jetson' 카테고리의 다른 글

Face Tracking  (1) 2024.06.21
Cat Detection  (0) 2024.06.20
FaceDetection  (0) 2024.06.20
openCV  (0) 2024.06.19
LED와 Button  (0) 2024.06.18