Stap 20: Hoe het Python programma's werk
Er zijn twee aangepaste Python-programma's gebruikt in dit instructable maken de Raspberry Pi PirateBox.
rpi_halt_btn.py
De eerste "rpi_halt_btn.py"-programma wordt gestart tijdens het opstarten door de opdracht
python /home/pi/python_programs/rpi_halt_btn.py&
in het "rc.local" systeembestand. De "&" toe aan het einde van de opdracht wordt het programma uitvoeren als een afzonderlijk proces dat draaien blijft totdat het programma wordt afgesloten.
1 import RPi.GPIO as GPIO 2 import os 3 GPIO.setmode(GPIO.BCM) 4 GPIO.setup(25, GPIO.IN, pull_up_down=GPIO.PUD_UP) 5 print "\nrpi_halt_btn: started and now waiting for GPIO halt button to be pressed." 6 try: 7 GPIO.wait_for_edge(25, GPIO.FALLING) 8 except KeyboardInterrupt: 9 GPIO.cleanup() 10 GPIO.cleanup() 11 os.system("halt")
De functie van elke regel is als volgt:
- Lijn1 importeert de bibliotheek waarmee een Python programma te gebruiken van de Raspberry Pi's GPIO pinnen.
- Lijn 2 Hiermee importeert u de bibliotheek waarmee een Python programma kwestie systeemopdrachten.
- Lijn 3 vertelt dat de daaropvolgende GPIO functioneert de definitie van de GPIO pin getallen die wordt gebruikt.
- Lijn 4 Versa-Drape GPIO pin 25 te worden een invoer pin en om een pull up weerstand voor deze pin.
- Lijn 5 wordt afgedrukt op een bericht op de console die aangeeft dat het programma wordt uitgevoerd. Hebt u een monitor aangesloten op de Raspberry Pi opgestart, ziet u dit bericht op de console-scherm.
- Lijnen 6 en 7 maken het programma wacht tot de knop is ingedrukt voordat u verdergaat naar lijn 10.
- Lijnen 8 en 9 maken het programma stoppen als de gebruiker hits Ctrl/C - deze lijnen zijn voor foutopsporing.
- Lijn 10 wordt uitgevoerd nadat de aangesloten op GPIO pin 25 is geklikt. Deze coderegel beëindigt alle GPIO verwerking.
- Lijn 11 gebruikmaakt van de bibliotheek systeem zal de Raspbian "stoppen" commando. De opdracht "stil" wordt het systeem afgesloten.
illuminate_leds.py
Het tweede programma "illuminate_leds.py" wordt gerund door de opdracht
post-up python /home/pi/python_programs/illuminate_leds.py
in het systeembestand "/ etc/network/interfaces'. De 'post-up' opdracht wordt uitgevoerd wanneer de netwerkinterfaces gebruiksklaar zijn. In dit geval is het wanneer de WiFi is gebruiksklaar.
1 import RPi.GPIO as GPIO 2 GPIO.setmode(GPIO.BCM) 3 GPIO.setup(23, GPIO.OUT)
De functie van elke regel is als volgt:
- Lijn1 importeert de bibliotheek waarmee een Python programma te gebruiken van de Raspberry Pi's GPIO pinnen.
- Lijn 2 vertelt dat de daaropvolgende GPIO functioneert de definitie van de GPIO pin getallen die wordt gebruikt.
- Lijn 3 GPIO pin 23 stelt op een vermogen en de waarde te laag waardoor de LED bord voor de verlichting van de LED's.