Jukebox Met NFC

by GeoffreyH29 in Circuits > Audio

1421 Views, 3 Favorites, 0 Comments

Jukebox Met NFC

IMG-20190114-WA0008.jpg

This instructable is in dutch.

Deze jukebox heb ik gemaakt voor het HKU om iets te maken met de Raspberry PI.

Step 1: Materials

IMG_20181215_162208.jpg

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

JukeboxPictures.png
IMG_20181224_143240.jpg
IMG_20181224_142913.jpg
IMG_20181224_142242.jpg
IMG_20181224_134310.jpg
IMG_20181224_142913.jpg
IMG_20181228_155651.jpg
IMG_20181224_141040.jpg
IMG_20181224_141905.jpg
IMG_20181227_192125.jpg
IMG_20190103_143304.jpg
IMG_20190104_115542.jpg
IMG_20181229_114941.jpg
IMG_20181229_101556.jpg
IMG_20181229_114949.jpg
IMG_20181228_154740.jpg
IMG_20190104_161718.jpg

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

IMG_20190110_154137.jpg
IMG_20190112_122514.jpg
IMG-20190110-WA0008.jpg
IMG-20190110-WA0014.jpg

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.

Stap 4: De Setup En De Code

RaspberryPi.GIF

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

IMG-20190114-WA0008.jpg
IMG-20190111-WA0003.jpg

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.