No sóc un friki de les galàxies, però aniré a una festa sorpresa que li fan a un amic fan de Star Wars i ens han demanat que hi anem vestits per la ocasió, amb alguns motius de la guerra de les galàxies. I com sí sóc una mica friki de la Raspberry, he fet la caixeta que porta en Darth Vader però incorporant-hi una càmera de fotos i un mini altaveu per fer sonar la Marxa Imperial ;-)
Material:
- Una caixa de cartró d’una comanda de llibres a amazon, ja que té una bona mida, és prou resistent i es talla fàcilment amb un cútter.
- Una imatge que simula el frontal de la caixa del darth vader, impresa a la mida que té la caixa.
- La Raspberry Pi, en aquest cas la B+ però serviria qualsevol.
- El mòdul de càmera de fotos de la raspberry.
- Un parell de botons, en el meu cas un petit sobrant d’un arcade i un més petit extret d’algun aparell.
- Un buzzer (brunzidor, “mini altaveu”) extret d’un pc antic.
- Un power bank (bateria) per alimentar la raspberry, en el meu cas una Xiaomi de 10400 mAh.
- Una mica de “blu-tack”, un adhesiu removible, plastilinós, de color blau, per fixar la rpi i la bateria a la caixa.
- Una cinta per lligar a la caixa i poder penjar-la del coll.
- Un programet en python per controlar els botons, fer fotos i fer sonar melodies star wars.
A nivell de programació, la part de controlar la càmera i els botons ja la tenia feta d’altres vegades, i la dificultat era veure què es podia fer amb el buzzer. Per sort vaig trobar uns codis per Arduino sobre com fer-lo sonar i en concret amb les “notes” de Star Wars Theme i Star Wars Imperial March, i els vaig poder adaptar a la Raspberry. No sona bé pq el buzzer no és ben bé un altaveu sinó un brunzidor, però amb una mica de bona voluntat es reconeix una melodia galàctica distorsionada ;-)
En resum, la caixeta té un botó que cada vegada que es prem fa una ràfega de 3 fotos consecutives, i un altre botó que fa sonar alternativament la intro de Star Wars o la Marxa Imperial.
Als pins del GPIO hi van connectats els dos botons i el buzzer, cadascú d’ells a un pin de terra i un de general. La bateria és de 10400 mAh, així que pot mantenir la raspberry encesa bastantes hores, suficients amb escreix per la festeta. El codi en python està a github: https://github.com/pipcat/eines-raspberry/blob/master/darthvader.py
A un dels ports usb hi he endollat un stick wifi per a poder connectar-m’hi des del mòbil i veure les fotos fetes o poder enviar comandes com un sudo poweroff en acabar. Per no dependre de xarxes wifi, al mòbil android activo el Mobile Hotspot i la raspberry s’hi connecta automàticament. A la raspberry:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="qualsevolnom" psk="qualsevolclau" scan_ssid=1 proto=RSN key_mgmt=WPA-PSK pairwise=CCMP auth_alg=OPEN }
I al mòbil, un Motorola Razr, a System Settings / Tethering & mobile hotspot / Mobile hotspot settings:
SSID: qualsevolnom no broadcast ssid Sec: WPA2 PSK Pas: qualsevolclau Channel 6 (el per defecte) 192.168.43.2