-
[ํ๋ก์ ํธ] ์ฐจ๋จ๊ธฐ ๋ง๋ค๊ธฐ๋ก๋ด๊ต์ก/5ํ์ฐจ_์๋ณด๋ชจํฐ 2021. 1. 22. 23:57
1. ์ฐจ๋จ๊ธฐ ํ๋ก์ ํธ
ํ์ ์ฃผ์ฐจ์ฅ์์ ์ฐจ๋จ๊ธฐ๊ฐ ์ฌ๋ผ๊ฐ๊ณ ๋ด๋ ค๊ฐ๋ ๋ชจ์ต์ ๋ณธ์ ์ด ์์ ๊ฒ์ ๋๋ค. ์๋ณด๋ชจํฐ์ ์ด์ํ์ผ์๋ฅผ ํ์ฉํ์ฌ ์ฐจ๋จ๊ธฐ๋ฅผ ๋ง๋ค์ด ์์ง์ด๋๋ก ํด๋ณด๊ฒ ์ต๋๋ค.
๊ฐ. ์๋ณด๋ชจํฐ ์ฐ๊ฒฐ
์๋ณด๋ชจํฐ๋ฅผ HAT 7๋ฒ ํ์ ์ฐ๊ฒฐํฉ๋๋ค. ์ฐ๊ฒฐํ ์๋ณด๋ชจํฐ๋ฅผ ํ๋ก๊ทธ๋จ์ผ๋ก ์์ง์ฌ 90๋๋ก ๋ง์ถ์ด ์ค๋๋ค.
์ ํ์ผ์ด ์์ด์ผ ์๋ ํ๋ก๊ทธ๋จ์ด ๋ฐ๋ฅด๊ฒ ๋์ํฉ๋๋ค. ์๋ ํ๋ก๊ทธ๋จ์ด ์ ์ฅ๋๋ ํด๋์ ๊ฐ์ด ๋ฃ์ด์ฃผ์ธ์.
from PCA9685 import *
pwm = PCA9685()
pwm.setPWMFreq(50)
pwm.setServoPulse(7,90)
sleep(1)90๋๋ก ๋ง์ถ ์๋ณด๋ชจํฐ์ ๋ ๊ฐ ๋ชจ์์ ๋ฌ์ ๊ณ ์ ํ์ฌ ์ค๋๋ค.
๋. ์ด์ํ์ผ์ ์ฐ๊ฒฐ
์ด์ํ์ผ์์ ๋ํ ์ค๋ช ์ ์๋ ๋งํฌ ์ฐธ์กฐ
2020/10/02 - [์ฝ๋ฉ์ตํฉ๊ต์ก/7~8์ฃผ์ฐจ] - [7~8์ฃผ์ฐจ-2] 4์กฑ ๋ก๋ด ๋ณดํ ํ๋ก๊ทธ๋๋ฐ - ์์ฉ๋์HC-SR04P ์ด์ํ์ผ์๋ 3.3V์์๋ ๋์์ ํ๋ฏ๋ก ์์ ๊ฐ์ ํ๋ก๋ก ์ฐ๊ฒฐํ์ฌ ๋์์ํต๋๋ค.
HC-SR04P ์ด์ํ์ผ์๋ฅผ FF์ ์ ์ ์ด์ฉํ์ฌ HAT์ ์๋ ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด ํ์ ๋ฐ๋ฅด๊ฒ ์ฐ๊ฒฐ์ ํฉ๋๋ค.
์์ ์์ค(11_2_Distance.py) from gpiozero import DistanceSensor
from time import sleep
sensor = DistanceSensor(echo=23,trigger=24)
while True:
print('Distance to nearest object is', round(sensor.distance*100,1),'cm')
sleep(1)
#round(), ๊ฐ์ n์๋ฆฌ๊น์ง ๋ํ๋ด๋๋ก ๋ฐ์ฌ๋ฆผ์ ์ฝ๋๋ฅผ ์ ๋ ฅํ์ฌ ์คํ์ํค๋ฉด ์ด์ํ์ผ์๊ฐ ์ธ์ํ๋ ๊ฑฐ๋ฆฌ์ ๊ฐ์ cm ๋จ์๋ก ์๋ ค์ค๋๋ค. ๊ฐ์ฅ ๋ฉ๋ฆฌ ์ธ์๋๋ ๊ฑฐ๋ฆฌ๋ 100cm์ ๋๋ค.
๋ค. ์ฐจ๋จ๊ธฐ ๋ง๋ค๊ธฐ
์ ํ์ผ์ด ์์ด์ผ ์๋ ํ๋ก๊ทธ๋จ์ด ๋ฐ๋ฅด๊ฒ ๋์ํฉ๋๋ค. ์๋ ํ๋ก๊ทธ๋จ์ด ์ ์ฅ๋๋ ํด๋์ ๊ฐ์ด ๋ฃ์ด์ฃผ์ธ์.
์์ ์์ค(11_3_Project_gate.py) from PCA9685 import *
from gpiozero import DistanceSensor
from time import sleep
pwm = PCA9685()
pwm.setPWMFreq(50)
sensor = DistanceSensor(echo=23,trigger=24)
while True:
if round(sensor.distance*100,1)<14:
pwm.setServoPulse(7,180)
sleep(5)
else:
pwm.setServoPulse(7,90)
sleep(1)
#๊ฑฐ๋ฆฌ๊ฐ 14cm๋ณด๋ค ์์ผ๋ฉด
#์ฐจ๋จ๊ธฐ๋ฅผ ์ฌ๋ฆฌ๊ณ
#์๋๋ฉด ์ฐจ๋จ๊ธฐ๋ฅผ ๋ด๋ ค๋ผ'๋ก๋ด๊ต์ก > 5ํ์ฐจ_์๋ณด๋ชจํฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[5ํ์ฐจ-2] HAT์ผ๋ก ์๋ณด๋ชจํฐ ์ ์ดํ๊ธฐ-2 (0) 2020.09.15 [5ํ์ฐจ-1] HAT์ผ๋ก ์๋ณด๋ชจํฐ ์ ์ดํ๊ธฐ-1 (0) 2020.09.12