Friday, May 6, 2016

Harry Potter fotolijst

In de Maakbare Wereld van 7 mei 2016 kun je lezen over mijn Harry Potter lijst.
Ik wil hier nog wat uitleg geven waarvoor niet genoeg ruimte was en natuurlijk de code die ik geschreven heb.

Allereerst wil ik Antratek bedanken die mij gesponsord hebben bij dit project, omdat ze dit een erg leuk idee vonden. Het is een goeie plek om Arduino-, Raspberry Pi- en wat al niet voor spullen te bestellen.

Demo


Gelijk maar even een demo van hoe het werkt in het echt:



Hardware

Ik heb de volgende hardware gebruikt: een Raspberry Pi 2, een 7" touch screen van Raspberry Pi, en een HC-SR501 bewegingssensor. Er moeten nog wat draadjes bij kijken, maar dit keer geen solderen.

Verder moet je niet vergeten dat je een draadloos toetsenbord en muis nodig hebt en ook een wifi dongle om updates te kunnen downloaden.

Bij de pins op de Raspberry Pi staan geen nummers of namen, dus je moet wel een beetje opletten waar je wat inprikt.

Het scherm heeft een platte dunne stekker waar niet veel fout mee kunt doen. Daarnaast moet je ook nog vier draadjes verbinden tussen de Raspberry en het scherm. 5V, Ground, GPIO 2 (pin 02) en  GPIO 3 (pin 05).

de bewegingssensor heeft ook 5V en Ground nodig en nog een laatste die naar een GPIO pin moet. Ik heb daarvoor pin 07 gebruikt.

Op de foto is het niet echt goed te zien, maar toch bij deze:






Ik heb een grote houten lijst er rond gebouwd, zodat ik het geheel rechtop kan zetten op een kast, maar je kunt ook zelf iets moois verzinnen.


Software

Het belangrijkste is natuurlijk nog de code die verschillende gaat laten afspelen. Ik heb een minuut lang mezelf gefilmd en dit in Movie Maker in kleine stukjes gehakt. Die stukjes worden achter elkaar afgespeeld. Tenzij er natuurlijk iemand voorbij loopt, dan wordt het filmpje afgespeeld waarbij ik zwaai.

De code is denk ik goed te begrijpen. Het begint met een heleboel libraries die geïmporteerd worden. de pin voor de bewegingssensor wordt geactiveerd. De namen van de verschillende mappen worden vernoemd. Daarna komt er een while loop waar de filmpje in een subprocress worden afgespeeld.
De filmpjes heten 1.h264, 2.h264, etc. De variable 'scene' begint bij 1 en wordt steeds eentje opgehoopt tot de laatste (11) is bereikt.

Het program is niet ideaal, maar ik wilde het ook niet te ingewikkeld maken. Hopelijk vind ik nog eens tijd om bugs op te lossen, om een functie in te bouwen waarmee je kunt stoppen en nog wat meer interacties in te bouwen (ik heb nog wat meer filmfragmenten klaarliggen).

#!usr/bin/python
import RPi.GPIO as GPIO
import time
import os
import subprocess
import glob

GPIO.setmode(GPIO.BOARD)
pir=7
GPIO.setup(pir, GPIO.IN)
print("Waiting for sensor to initialize")
time.sleep(2)

pathPlayer =  '/home/pi/Public/programs/pi_hello_video-master/hello_video/'
pathVideo = '/home/pi/Videos/harrypotter/'
scene = 1
while True:
    infile = pathVideo +str(scene) + ".h264"
    subprocess.call( [pathPlayer+"hello_video.bin", infile])
    if scene==11:
          scene = 1
     else:
          scene=scene+1

    if GPIO.input(pir):
          infile = pathVideo + "zwaaien.h264"
          subprocess.call( [pathPlayer+"hello_video.bin", infile])

print("Finished")


Video's omzetten

De filmpjes moeten omgezet worden in het .h264 formaat te werken. Op de Adafruit website staat hoe je dit moet doen en ook waar je de hello_video speler kunt downloaden. Je moet dingen in je terminal doen van je computer. Die open je in Windows door 'cmd' te zoeken.

Al met al zijn er heleboel stappen die je moet doorlopen, maar allemaal wel te doen op zich. Ze zijn ook niet zo afhankelijk van elkaar. Je kunt bijvoorbeeld best later nog nieuwe filmpjes maken. Of de code aanpassen zodat de filmpjes in een andere volgorde worden gespeeld.

Zoals als altijd, heb je vragen stel ze gerust. Ik ben vast dingen vergeten uit te leggen en sommige dingen waren voor mij misschien logisch die voor iemand anders heel onduidelijk zijn. Het was voor mij de eerste keer dat ik met een Raspberry Pi heb gewerkt en het viel me heel erg mee, maar het blijft complex.

Happy building!

No comments:

Post a Comment