Bicaj szimulátor
Elmélet
Az első lépés, hogy a km órának küldött jelet el kell lopni. A mi esetünkben 1,5v-os elem volt az órában, így a jel is 1,5v-os. Pontosabban van egy folyamatos 1,5v-os jel, ami egy pillanatra mindig 0v lesz, amikor az érzékelő előtt van a kerékre szerelt mágnes.
A jel sajnos 1,5v, de a Raspberrynek meg 3,3v-os jel kell. A megoldás egy ADC, amit egy csavarhúzóval lehet finomhangolni.
A bicaj tekerése egy jelet fog adni a raspberrynek, a jel hatására pedig egy rövid python script úgy csinál, mintha a felhasználó v betűt nyomott volna. Ennek hatására az omxplayer tovább lépteti a betöltött és megállított videót.
Megvalósítás
Telepítsd a pip-et, ha eddig nem tetted meg. (ezzel tudsz leszedni kiegészítéseket a pythonhoz):
sudo apt-get install python-pip
Telepítsd az uinput-ot, aminek segítségével gomb nyomást lehet szimulálni a GPIO-n érkező jel hatására:
sudo pip install python-uinput
sudo apt-get install libudev-dev
Az „uinput”-ot idézőjelek nélkül írd be ebbe a fileba:
sudo nano /etc/modules
Reboot után készítsd el a v betű nyomó scriptet:
import RPi.GPIO as GPIO
import time
import uinput
lasttime=time.time()
device = uinput.Device([uinput.KEY_V,])
def callback_up(channel):
global lasttime
now = time.time()
gap=now-lasttime
if(gap>0.01):
for x in range(int(20/gap)):
device.emit_click(uinput.KEY_V)
time.sleep(0.05)
lasttime=now
GPIO.setmode(GPIO.BCM)
PIR = 4
GPIO.setup(PIR, GPIO.IN)
try:
GPIO.add_event_detect(PIR, GPIO.RISING, callback=callback_up)
while 1:
time.sleep(10)
except KeyboardInterrupt:
print("Bye")
A háttérben futtasd a scriptet:
sudo python bicaj.py &
Telepítsd az omxplayer-t:
sudo apt-get install omxplayer
Majd indítsd el a videót és állítsd meg pillanatstoppal, hogy innentől csak a tekerésre menjen tovább a vetítés:
omxplayer --no-osd [yourvideo].mp4
És a végén teszteld
Comments are closed.