Benodigdheden:
- een pc of een raspberry pi met voeding, scherm, muis en toetsenbord
- een arduino leonardo
- tafeltje met houten blad, houten plank
- individueel adresseerbare RGB 150 LED Strip 5V met 150 ledjes (WS2812B) + voeding
- karton en matte plastiek
Het arbalet project gebruikt een laser cutter om het frame boven de ledjes te maken maar je kan ook gewoon karton, schaar en cuttermes gebruiken. In plaats van glas of plexiglas kunnen we oude matte halfdoorzichtige schoolmapjes gebruiken.
Voor de optionele "touch keys" maakt arbalet gebruik van een MPR121 en 6 stuks geleidende ITO plastiek. We hebben dit materiaal maar bij mij werkte dit niet consistent genoeg om er Tetris mee te spelen. Een alternatief dat wel werkte was een makey makey.
Het arbalet project gebruikt geen raspberry pi maar een gewone pc om het spel op te starten. Dit moet je na elk afgelopen game opnieuw doen. We verkiezen een raspberry pi: die kan je in principe automatisch met een bepaald programma opstarten en herstarten.
Stappenplan:
- arduino installeren op pc of raspberry pi
- met een arduino leren werken
- leren LED strips programmeren met behulp van de NeoPixel arduino bibliotheek (+ die 'bibliotheek' installeren)
- de led strips op het tafeltje kleven en aan elkaar solderen - we leren aan de hand van een youtube filmpje een beetje solderen
- een kartonnen frame knutselen (dit kan zowel vroeger als later in het project)
- arbalet bibliotheek installeren op pc of raspberry pi
- arbalet arduino programma ('firmware') uploaden op de arduino leonardo
- configureren en testen
- EXTRA: "touch" toevoegen
- EXTRA: het project automatisch laten starten en herstarten
- EXTRA: een ander programma dan Tetris programmeren
- Arduino installeren op pc of raspberry pi en ermee leren werken
Voor de raspberry pi werkt dat anders.
Het besturingssysteem van een raspberry pi staat op een sd-kaartje. Download het "raspbian jessie met desktop"-zipbestand van de officiële site: https://www.raspberrypi.org/downloads/raspbian/
Op deze plaats vind je ook de methode om het zipbestand op een sd-kaartje te copiëren.
Raspbian is een versie van Linux speciaal gemaakt voor de hardware van de raspberry pi. Als je nog nooit met linux hebt gewerkt dan kan deze introductie handig zijn.
Om software te installeren en configureren maken we gebruik van een "terminal' waarin we commando's intikken.
Om arduino te installeren is dit eenvoudig: sudo apt-get install arduino
- met een arduino leren werken
- LED strips programmeren
Ga naar https://github.com/adafruit/Adafruit_NeoPixel en download het zip-bestand.
Mogelijk kan je het niet downloaden op een raspberry pi omdat de standaard browser niet meer wordt ondergesteund. Installeer dan Iceweasel (=firefox) in een terminal venster: sudo apt-get install iceweasel
Open de arduino IDE en importeer de bibliotheek: schets > bibliotheek importeren > add library. Je kan het zip-bestand importeren of het zip-bestand uitpakken en dan de map importeren. Mogelijk moet je de map hernoemen en de tekens '-' en '_' verwijderen uit de naam.
Als het gelukt is kan je nu onder schets > Bibliotheek importeren de bibliotheek 'AdafruitNeoPixelmaster' vinden.
Onder bestand > voorbeelden vind je nu ook een map AdafruitNeoPixelmaster met enkele voorbeeld-arduino-sketches.
Een andere voorbeeld-sketch kan je hier vinden: de ledstrip_pin staat op pin 12 en in het voorbeeld is het aantal leds 210. Als je bijvoorbeeld alle 5 led-strips aan elkaar koppelt heb je 150 leds.
Open het bestand in de arduino ide en kies: Extra>board>Arduino Leonardo en daarna 'uploaden'.
Je kan enkele led-strips aan elkaar koppelen en verbinden met de arduino leonardo op deze manier:
- verbind het groene kabeltje van de led-strip met het breadboard, een resistor van 470 Ohm en de arduino pin 12
- verbind de arduino GND met het breadboard en de - van de capacitor, de - van de power supply en de witte kabel van de ledstrip
- sluit de rode kabel van de ledstrip aan op het breadboard en de + van de power supply en de + van de capacitor
Bekijk de loop() functie eens en experimenteer een beetje.
- Knutsel tijd !
Wij moeten het stellen zonder laser cutter maar we hebben karton, schaar, cuttermes en soldeergerief.
Bekijk ook eventueel deze soldeer-instructie-video:
- installeren Arbalet (=ARduino-BAsed LED Table) software op pc of raspberry pi
Op een raspberry pi betekent dit volgende stappen (in een terminal-venster):
sudo apt-get update
sudo apt-get install git python2.7 python-setuptools ipython-notebook python-pygame python-numpy python-xlib python-bottle python-opencv python-pyaudio python-dev
pwd (toont waar je bent: /home/pi)
mkdir Arbalet && cd Arbalet git clone --recursive https://github.com/arbalet-project/arbasdk.git git clone https://github.com/arbalet-project/arbapps.git git clone https://github.com/arbalet-project/arbadoc.git
pwd (toont waar je bent: /home/pi/Arbalet)
cd arbasdk sudo python setup.py install
cd ../arbapps sudo python setup.py install
python -m arbalet.apps.tetris
Het programma start de programeeromgeving en -taal python dat het programma arbalet.apps.tetris afspeelt met paramater m.
Andere spellen of animaties kan je vinden in /home/pi/Arbalet/arbapps/arbalet/apps
De -m betekent 'simulatie'.
- arbalet arduino programma ('firmware') uploaden op de arduino leonardo
We kunnen 3 'symbolisch links maken':
- ln -s /home/pi/Arbalet/hardware/arduino/arbalet /home/pi/sketchbook/libraries/arbalet
- ln -s /home/pi/Arbalet/hardware/arduino/Adafruit_NeoPixel /home/pi/sketchbook/libraries/Adafruit_NeoPixel
- ln -s /home/pi/Arbalet/hardware/arduino/Adafruit_MPR121 /home/pi/sketchbook/libraries/Adafruit_MPR121
We openen het en sluiten onze arduino leonardo aan.
We kiezen Extra>Seriële poort en Extra>Board>Arduino Leonard en dan 'Uploaden'
- tetris spelen
python -m arbalet.apps.tetris -w
- EXTRA: "touch" toevoegen
Hier vind je een quick-start to Makey Makey.
Een ingebouwd alternatief is de MPR121 ' capacitive touch sensor controller' maar ik had daar geen goede resultaten bij.
De MPR121 wordt zo aangesloten op de arduino leonardo :
MPR121 --> arduino leonardo
3,3V 5V
SCL 3 (digitaal)
SDA 2 (digitaal)
ADDR -
IRQ -
python -m arbalet.apps.tetris -w -c config150touch.json start een speciale versie met 'touch'
Na aanpassingen in het bestand
/home/pi/Arbalet/arbasdk/arbalet/config//config150touch.json
moet je steeds een update van de softwaredoen:
cd ~/Arbalet/arbasdk/ && sudo python setup.py install
- EXTRA: het project automatisch laten starten en herstarten
- EXTRA: een ander programma dan Tetris programmeren
Geen opmerkingen:
Een reactie posten