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.