๋กœ๋ด‡๊ต์œก/5ํšŒ์ฐจ_์„œ๋ณด๋ชจํ„ฐ

[5ํšŒ์ฐจ-2] HAT์œผ๋กœ ์„œ๋ณด๋ชจํ„ฐ ์ œ์–ดํ•˜๊ธฐ-2

SSEM๐Ÿ‘Œ 2020. 9. 15. 00:17

1. PCA9685 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹ค์šด๋กœ๋“œ

 

  ์•„๋ž˜ ๋งํฌ์—์„œ ๋‹ค์šด๋กœ๋“œ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

 

PCA9685.py
0.00MB

 


 




๋งˆ์šฐ์Šค ์šฐํด๋ฆญ


์ž‘์—… ํด๋”๋กœ ์ด๋™ ํ›„, ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ


 

 

2. ์„œ๋ณด๋ชจํ„ฐ ์ œ์–ดํ•˜๊ธฐ

 

  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ PCA9685๋ฅผ ์ด์šฉํ•˜์—ฌ ์„œ๋ณด๋ชจํ„ฐ๋ฅผ ์ œ์–ดํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. PCA9685๋ฅผ import ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” PCA9685 ํŒŒ์ผ์ด ์žˆ๋Š” ๊ณณ์— ์˜ˆ์ œ ์†Œ์Šค๊ฐ€ ์ €์žฅ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์˜ˆ์ œ ์†Œ์Šค(11-servo_hat.py)  
from PCA9685 import *

pwm = PCA9685()
pwm.setPWMFreq(50)

pwm.setServoPulse(7,0)   
sleep(1)
pwm.setServoPulse(7,90)    
sleep(1)
pwm.setServoPulse(7,180)    
sleep(1)
pwm.setServoPulse(7,90)    
sleep(1)
7์˜ ์˜๋ฏธ๋Š” ์ฑ„๋„ 7๋ฒˆ์— ์—ฐ๊ฒฐ๋œ ์„œ๋ณด๋ชจํ„ฐ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ

0, 90, 180์€ ์„œ๋ณด๋ชจํ„ฐ๊ฐ€ ์›€์ง์ด๋Š” ๊ฐ๋„๋กœ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋ณด๋ชจํ„ฐ๋Š” 0~180๋„์˜ ๋ฒ”์œ„ ๋‚ด์—์„œ ์›€์ง์ด๋ฏ€๋กœ ์—ฌ๊ธฐ์— ์ด ์‚ฌ์ด์˜ ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด ์„œ๋ณด๋ชจํ„ฐ๊ฐ€ ์›€์ง์ž…๋‹ˆ๋‹ค.

 

์˜ˆ์ œ ์†Œ์Šค(11-servo_hat2.py)  
from PCA9685 import *

pwm = PCA9685()
pwm.setPWMFreq(50)

for i in range(3):
    pwm.setServoPulse(7,0)
    sleep(1)
    pwm.setServoPulse(
7,90)
    sleep(1)
    pwm.setServoPulse(
7,180)
    sleep(1)
    pwm.setServoPulse(
7,90)
    sleep(1)
 

 

์‹ค์Šต1) 0๋ฒˆ ์ฑ„๋„์— ์—ฐ๊ฒฐ๋œ ์„œ๋ณด๋ชจํ„ฐ๋ฅผ ์›€์ง์—ฌ๋ด…์‹œ๋‹ค.

 

์‹ค์Šต2) 0๋ฒˆ๊ณผ 7๋ฒˆ์— ์—ฐ๊ฒฐ๋œ ์„œ๋ณด๋ชจํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์›€์ง์ž„์„ ๋งŒ๋“ค์–ด๋ด…์‹œ๋‹ค.