Jukebox Met NFC
This instructable is in dutch.
Deze jukebox heb ik gemaakt voor het HKU om iets te maken met de Raspberry PI.
Step 1: Materials
Het idee was dus om een jukebox te maken. ik zal foto's include van al mijn stappen Ik had de volgende materialen nodig.
Materiaal koop altijd wat teveel voor het geval dat
multiplex minimaal 45 breed en 55 hoog
plankjes
plexiglas minimaal 20 cm breed en 30 hoog
led stip
RFID RC522
1x Zaagtafel of zaag
1x Freez
1x Magic Marble verf *Let op het moet echt deze verf zijn om een mooi swirl effect te krijgen.*
1x Raspberry pi
1x Usb Stick
1x Soldeerbord
1x Audioboxjes
1x Led lampjes (optioneel)
2x verlichte arcade knop
ongeveer 20 cd's
1x spuitbus primer
Speciekuip
Stap 2: Het Maken Van De Kast Deel 1
Het maken van de kast was een hele opgave en dit gaat het meeste tijd kosten.
ik heb als eerste de kast getekend door middel van een passer en liniaal.
dit heb ik uitgezaagd en het formaat wat ik wou hebben.
Hierna heb ik de Jukebox gefreezt, omdat ik zo weinig mogelijk schroeven wou gebruiken.
Uiteindelijk toen ik de Jukebox had gefreezt heb ik het raam uitgezaagd. zorg ervoor dat je hier genoeg glas voor hebt.
toen het allemaal gefreezt was heb ik het voor glas gemaakt om door mijn case te kijken naar de cd's.
ik heb toen kleine plankjes van 20 cm breed gezaagd voor de diepte deze hebben we later nodig om tussen de voorkant en de achterkant te houden, ook nodig om het plexiglas te ondersteunen.
De bovenkant kan je alvast cd gleufjes maken.
Stap 3: Verven Swirlen
Deze speciale techniek van verven heet swirlen.
Je vult een specie ton met water en doet er verf op. Doe dit met verschillende kleuren om een extra leuk effect te krijgen. Als je tevreden bent over je figuur wat je nu in je water hebt is het tijd om de jukebox te verven. Doe de jukebox er rustig in met een schuine hoek. als de jukebox onderwater haal je de jukebox eruit.
Deze techniek kun je ook in het filmpje zien wat ik erbij heb als voorbeeld.
Downloads
Stap 4: De Setup En De Code
maak de bovenste setup na op je raspberry Pi.
Ik heb de ledjes gebruikt voor de arcade knoppen. Ik had 2 verschillende soorten arcade knoppen dat is de reden dat er 1 extra kabel naar de ground gaat. Nu moeten we een paar dingen clone dus ga op je raspberry pi naar de terminal. Als eerste de vlc installeren
note: de meeste dingen gaan nu via de teminal.
sudo apt-get install vlc
SPI activeren Voor de communicatie met de RFID lezer maken we gebruik we de SPI interface, deze dien je via raspi-config te activeren.
raspi-config
Ga in het menu naar ‘Advanced Options', selecteer de optie ‘SPI' en activeer de interface. Herstart hierna je Raspberry Pi:
sudo reboot -h 0
SPI Python libraries Voordat Python met de SPI interface en RFID lezer kan communiceren hebben we een aantal Python libraries nodig, alleerst de Python Developer library.
sudo apt-get install python-dev
Hierna gaan we SPI-Py downloaden vanaf GitHub:
git clone https://github.com/lthiery/SPI-Py.gitNadat
library is gecloond vanaf GitHub nu moeten we SPI-Py toevoegen aan Python:
dit is het nfc script voor de raspberry pi
sudo python setup.py install
We hebben nu via Python toegang tot de SPI interface.
nu gaan we naar de map (MFRC522-python) waarin de GitHub bestanden zijn geplaatst: als je dit hebt gedaan moet je op je raspberry pi een python script maken genaamt Jukebox.py en het volgende invullen:
<p>import RPi.GPIO as GPIO<br>import MFRC522 import signal import time import vlc import Navigation # continue reading is for the NFC bool continue_reading = True isPlaying = False # Capture SIGINT for cleanup when the script is aborted def end_read(signal,frame): global continue_reading print "Ctrl+C captured, ending read." continue_reading = False GPIO.cleanup() # Hook the SIGINT signal.signal(signal.SIGINT, end_read) # Create an object of the class MFRC522 MIFAREReader = MFRC522.MFRC522() # Welcome message print "Press Ctrl-C to stop." start = time.time(); #/media/pi/2BBA-7B0D/Music" Hier zet je joun muziek pad neer. path = "/media/pi/2BBA-7B0D/Music/" playList = []; for x in range(1,10): playList.append(path + "track00%d.mp3" % (x)) Track moet bijvoorbeeld track001 heten print "/media/pi/2BBA-7B0D/Music/track00%d.mp3" % (x) Instance = vlc.Instance('--loop'); # Making new list MediaList = Instance.media_list_new() # adding songs to the medialist for song in playList: MediaList.add_media(song) # Initializing the medialist list_player = Instance.media_list_player_new() list_player.set_media_list(MediaList) # This loop keeps checking for chips. If one is near it will get the UID and authenticate while continue_reading: navigation = Navigation.CheckButtons(); # Scan for cards (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL) # If a card is found if status == MIFAREReader.MI_OK: print "Card detected" # Setting a Delay for the NFC Reader # Turning the bool true or false if isPlaying == False: isPlaying = True; else: isPlaying = False; # if isPlaying true is it will play the jukebox if(isPlaying == True): list_player.play(); else: list_player.pause(); if navigation == "Forward": print "next"; list_player.next(); if navigation == "Previous": print "Previous"; list_player.previous(); time.sleep(0.1);</p>
Dit script zorgt ervoor dat je een mooi afspeel lijstje hebt en hij zet ook automatisch de track erin.
note. lees het script wel door ik heb er dingen bijgeschreven wat echt wel belangerijk is om te veranderen als je dit namaakt. Daarna maak je nog een script aan met het volgende zorg dat dit script Navigation.py heet.
<p>import RPi.GPIO as GPIO<br>import time def CheckButtons(): GPIO.setmode(GPIO.BOARD); GPIO.setup(32,GPIO.IN,pull_up_down=GPIO.PUD_UP) Dit zijn de pinnen die je moet definieren voor je buttons GPIO.setup(12,GPIO.IN,pull_up_down=GPIO.PUD_UP) if GPIO.input(32) == True: print("Pressed 32") time.sleep(0.2) return "Forward"; if GPIO.input(12) == False: print("Pressed 12") Previous = True; time.sleep(0.2) Previous = False; return "Previous"; return "Null";</p>
Stap 5: Het Bouwen Van De Kast Deel 2
aan de zeikant had ik nu een gat gemaakt om de nfc chip doorheen te halen. hierdoor had ik aan de andere kant een nfc sleutel gat. Dit gat had ik zo gemaakt dat mijn nfc chip er precies tegen aan zou komen.
Plak nu de Jukebox in elkaar voorzichtig . Het plexiglas bovenop moet je voorzichtig erna aanbrengen hier heb ik zelf wel 2 schroefjes aan beide kanten voor gebruikt. Als je het leuk vind kan je nu aan de zijkant led lampjes plakken.
note: voor dat je het plexiglas plakt moet je de cdtjes er wel in doen je komt hier hierna niet meer bij.