Configurazione Autologin per raspberry 3

Con la versione jessie di raspbian è cambiata anche la modalità di autologin, rispetto alla vecchia configurazione di inittab.

In pratica c’è un comodo comando da lanciare dentro raspi-config, nei parametri di boot.

Basta scegliere autoboot on conole as pi e il gioco è fatto.

Come ti configuro il controller “THT Arcade console 2P USB Player”

La configurazione di questo controller con raspberry dipende da alcuni parametri settati nei file di configurazione, in alternativa il sistema rileva solo un unico joystick pilotato dalle due levette. Innanzitutto è necessario estrapolare il codice del dispositivo, che deve essere stato rilevato correttamente all’avvio del kernel. Si dà il seguente comando:

# cat /proc/bus/input/devices
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name=”Xbox Gamepad (userspace driver)”
P: Phys=
S: Sysfs=/devices/virtual/input/input0
U: Uniq=
H: Handlers=js0 event0
B: PROP=0
B: EV=b
B: KEY=7fdb0000 0 0 0 0 0 0 0 0 0
B: ABS=3001b

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name=”Xbox Gamepad (userspace driver) #2″
P: Phys=
S: Sysfs=/devices/virtual/input/input1
U: Uniq=
H: Handlers=js1 event1
B: PROP=0
B: EV=b
B: KEY=7fdb0000 0 0 0 0 0 0 0 0 0
B: ABS=3001b

I: Bus=0003 Vendor=16c0 Product=05e1 Version=0101
N: Name=”THT THT Arcade console 2P USB Player”
P: Phys=usb-3f980000.usb-1.4/input0
S: Sysfs=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/0003:16C0:05E1.0001/input/input2
U: Uniq=
H: Handlers=js2 event2
B: PROP=0
B: EV=1b
B: KEY=3ff 0 0 0 0 0 0 0 0 0
B: ABS=3
B: MSC=10

I: Bus=0003 Vendor=16c0 Product=05e1 Version=0101
N: Name=”THT THT Arcade console 2P USB Player”
P: Phys=usb-3f980000.usb-1.4/input0
S: Sysfs=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/0003:16C0:05E1.0001/input/input3
U: Uniq=
H: Handlers=js3 event3
B: PROP=0
B: EV=1b
B: KEY=fff 0 0 0 0 0 0 0 0 0
B: ABS=3
B: MSC=10

I parametri che servono sono quelli che compaiono al centro della stringa Sysfs=….. /0003:16C0:05e1………

Questi vanno inseriti nel file /boot/cmdline.txt in fondo all’unica riga presente, aggiungendo la stringa:

usbhid.quirks=0x16c0:0x05e1:0x040

Un bel reboot et voilà.

Compilare apps con Xamarin

Con la versione 2015 del Microsoft Visual Studio è possibile compilare apps compatibili con i tre ambienti iOS, Android e Windows Phone, con un unico progetto.
Per installare tale feature è necessario avere installato l’update 2 di Visual Studio 2015, disponibile nel sito Microsoft.
Contemporaneamente è necessario installare gli strumenti per android, almeno il Android sdk che può essere installato anche senza tutto l’ambiente di Android Studio che è gigantesco.
Prima di creare apps android è necessario indicare a Visual Studio dove trovare la directory di Android SDK e questo si fa dal menu Strumenti -> Opzioni -> Android Settings e cliccando su “Android Sdk location”. Questo deve puntare alla directory dove è stato installato l’sdk, ossia alla directory superiore a quella dove si trova adb.exe.
Per velocizzare il debug delle applicazioni android si deve scaricare anche il pacchetto “Intel® Hardware Accelerated Execution Manager” (HAXM) della Intel e si può fare scaricandolo dal sito Intel HAXM oppure ancora meglio scaricando l’apposito pacchetto dal sdk android manager.
Assicurarsi di installare la versione 6.0.1 o superiore.
Usando l’sdk manager, questo farà solo il download del pacchetto nella directory extras. Da qui dovrà essere lanciato il setup che tipicamente comporta il lancio di un silent_install.bat.

Gestione di video con PiPlay

PiPlay è un ottimo strumento per la gestione dei vari emulatori disponibili in rete.
Dopo averlo un po’ configurato, l’ho installato in auto, insieme a una bella coppia di televisorini da 7 pollici. Questi sono reperibili nei vari mercatini al costo di circa 33€ e quindi rappresentano un’ottima alternativa ai dispositivi all in one, quelli per intenderci dotati di lettore dvd.
L’esperienza d’uso di un raspberry, per quanto riguarda la disponibilità di software è pressoché totale. Esistono ottimi lettori di video e anche ottimi emulatori di console per videogiochi.

Il problema principale di PiPlay risiede nel fatto che permette unicamente di “giocare” e non di vedere video e film (magari scaricati dalla rete, oppure rippati).
D’altra parte, PiPlay è configurato con python e, con un po’ di dimestichezza con l’uso di questo linguaggio, si può fare davvero di tutto.
Quindi, perché non provarci ?

Innanzitutto è meglio utilizzare una distribuzione di Linux da installare in una macchina virtuale. Io ho scelto ubuntu.
Accedere alla distribuzione creando un utente pi e password raspberry (le stesse di piplay) e scaricare, usando firefox, il progetto sorgente del launchmenu.py da github pimame-menu per poterlo vedere ed eventualmente modificare/testare.
Scompattare lo zip dentro la directory /home/pi/pimame.
Se non è già disponibile installare python con il comando apt-get install python3
Infine può essere comodo installare anche sqlite, in quanto gran parte della configurazione di piplay viene mantenuta su questo db.
Poi installare sqlite per vedere l’attuale contenuto del menu di piplay. Dare il comando
# sudo apt-get install sqlite3 libsqlite3-dev

Il database di configurazione di piplay è situato in /home/pi/pimame/pimame-menu/database/config.db

Usando sqlite si possono vedere le varie voci di menu che vengono visualizzate a video, con i vari emulatori disponibili. A queste voci se ne possono aggiungere altre che, per esempio, permettano di vedere video salvati nella memoria della scheda.
Per fare questo, aprire con sqlite il db config.db, poi andare in “Browse data” e selezionare la tabella menu_items. Le varie voci sono facilmente identificabili nell’elenco e si dividono in emulators, games e utilities, nella colonna type.
La colonna “visible” permette di rendere visibile o invisibile le varie voci. Io ho reso invisibili alcuni emulatori che non mi interessano in modo da occupare il minimo dello spazio a video.

Nella colonna “Command” va indicato il comando da lanciare quando si seleziona la voce dall’interfaccia di piplay. Io ho aggiunto per fare una prova il comando omxplayer “/home/pi/video/prova.avi” per testare un semplice video.

Infine, per gestire il caricamento automatico dei video presenti all’interno di una certa cartella, ho predisposto un’apposita funziona in python. Aprire con gedit il file che si trova in /home/pi/pimame/pimame-menu/pmmenu/pmconfig.py e aggiungere, dopo la init, la funzione:

def getVideos(self,directory,menu_items):
#carica i video dalla directory
for root, directories, files in os.walk(directory):
for filename in files:
filepath = os.path.join(root,filename)
menu_item = {'id':100,'label':filename,'icon_id':'','type':'utility','visible':1,'command':'vlc --play-and-exit '+filepath,'rom_path':'','include_full_path':1,'include_extension':0,'override_menu':1,'icon_file':'','icon_selected':'','position':'','scraper_id':''}
menu_items.append(dict(menu_item))

e il richiamo dentro la _init_ con la seguente istruzione:
self.getVideos('/home/pi/pimame/video',config['menu_items'])
subito sotto l’istruzione config['menu_items'] = [dict(zip(keys,value)) for value in values]

Questo fa si che all’interno dell’interfaccia principale di piplay compaiano in automatico anche tutti i video della cartella video e che questi possano essere lanciati cliccando sulla loro icona. Questo file pmconfig.py va poi trasferito nella medesima posizione del raspberry, avendo l’accortezza di modificare l’istruzione vlc (di ubuntu) nella corrispondente omxplayer del mitico raspberry.

Et voilà, il video è servito!

Aggiornamento del 17 Aprile 2016

Su schermi molto piccoli e con bassa risoluzione, quali quelli che si acquistano nelle fiere realizzati apposta per i cruscotti delle automobili, le scritte dei riquadri di piplay sono molto piccole. Praticamente invisibili.

I riquadri che rappresentano film riportano un titolo che non si riesce nemmeno a leggere.

Per ovviare bisogna intervenire in un file che si trova sotto themes/default/theme.yaml, ricercando al suo interno la scritta

num_items_per_row

e

item_height

e correggerle di conseguenza.

Nel mio caso erano num_items_per_row = 6 e item_height = 220. Li ho trasformati in num_items_per_row=2 e item_height=300.

Così facendo le scritte sono tornate ad essere ben visibili, anche se per arrivare agli ultimi film della lista ora bisogna scorrere diverse pagine.

Il mio nuovo Arcade Cabinet

Era da tanto tempo che desideravo costruire il mio cabinet personale per videogiochi, almeno da quando mi sono costruito la cnc.
La tecnologia, oggi, permette di costruirne uno a bassissimo costo, utilizzando schede come la raspberry che, al prezzo di circa 25€, mette a disposizione un sistema Linux ben supportato da una comunità attiva e prolifica.
Dal punto di vista strutturale era sufficiente pensare un telaio in legno che supportasse un monitor di dimensioni adeguate e una console di comando.

Pistola in legno con elastici

Prendendo spunto dal fantastico tutorial visibile all’indirizzo Tutorial M9 Rubber Band Gun ho deciso di realizzarmi una fantastica pistola in legno con proiettili elastici.
Il tutorial è corredato anche di piani dettagliati di montaggio della pistola, scaricabili all’indirizzo pdf.
Tali piani possono essere stampati e poi ricalcati con una sega a nastro, oppure, come ho fatto io, possono essere tagliati alla cnc, essendo già disegnati a misura.

I piani si compongono di alcuni strati, da incollare tra di loro, di multistrato da 4 mm di spessore.

L’unica cosa a cui bisogna prestare molta attenzione, altrimenti si corre il rischio di dover tagliare più volte le sagome in legno, è che i percorsi nel file pdf non sono tutti chiusi. A prima vista, sembrerebbe di sì, ma se si esegue il taglio ci si accorge che i percorsi di taglio sono calcolati un po’ all’interno e un po’ all’esterno, pregiudicando il corretto allineamento dei pezzi.

Il risultato è visibile in figura

Pistola a elastici
Pistola a elastici cnc

Nella figura sottostante si vede il meccanismo di caricamento degli elastici che, a seconda delle dimensioni, possono arrivare fino a 7-8 consecutivi.

caricamento
caricamento

Infine, un particolare del caricatore che permette di installare degli elastici di riserva in caso di emergenza:

caricatore
caricatore

DIY cnc – firmware open source (Parte 2)

Dopo qualche settimana di lavoro l’assez finalmente viene completato e quindi passo al progetto delle parti della struttura.

Dal mio fidato fornitore lmsystem2000 ordino le viti e le chiocciole rigorosamente a ricircolo necessarie allo spostamento del piano. Queste sono tutte da 20mm a passo 10mm, ovviamente essendo lunghe oltre un metro ho bisogno che siano di una certa dimensione minima. 20 mm è sufficiente per la tolleranza e la precisione che desidero.



Dopo quasi un anno trascorso a disegnare, acquistare e montare i vari pezzi sono arrivato ad avere la macchina “dei miei sogni”. Finalmente funzionante. Ringrazio ovviamente Luigi della sua disponibilità e bravura.
Purtroppo per qualche mia distrazione durante il disegno mi sono dimenticato alcuni piccoli particolari ma con l’aiuto di mio fidato suocero e dei suoi strumenti di lavoro tuttofare, sono giunto al capolinea.
Ovviamente, mi sono buttato alla ricerca di qualcosa da tagliare, per iniziare col botto. Tra i vari disegni disponibili online, mi sono regalato un bel trex:

TRex
Trex

DIY cnc – firmware open source (Parte 1)

Per tanto tempo ho desiderato avere una cnc, uno strumento con il quale realizzare i numerosi piccoli/GRANDI progetti che mi invadevano la mente.

Un paio di anni fa presi la decisione: avrei progettato e (possibilmente) realizzato la mia cnc.

Per ottenere un buon risultato avevo bisogno di qualche rinfrescatina di meccanica, dato che, da buon ingegnere elettronico, evidentemente la componente elettronica non mi spaventava.

Allora ho preso di mira Amazon e in particolare i migliori libri di meccanica e di costruzioni disponibili. Sono passato attraverso la serie del Belluzzi per le costruzioni, fino ad arrivare allo Shigley per la parte di meccanica vera e propria. Qualcuno in ufficio mi considerava un po’ squilibrato vedendomi leggere, nelle pause pranzo, il manuale del cemento armato. Eppure, l’esperienza è stata interessante e proficua. Dopo diverse letture ho riacquisito dimestichezza con le nozioni di meccanica, necessarie per il dimensionamento della struttura della macchina che volevo realizzare.

La “mia” macchina, infatti, doveva avere dimensioni ragguardevoli, almeno 100 x100 cm sul piano e 25 cm per l’asse z. Inoltre, dato che non volevo limitarmi ai lavori effettuati sul piano, mi serviva spazio libero al di sotto del piano e, di conseguenza, ho optato per una soluzione con due motori sull’asse y.

Trovato il modo per dimensionare la struttura, me la sono disegnata con il miglior cad disponibile, autocad inventor.

Una volta terminato il progetto, dovevo trovare qualcuno disponibile a fresarmi i pezzi in alluminio, senza farmi spendere una cifra irraggiungibile. Così ho cercato qualcuno disponibile navigando sui vari forum in internet e finalmente ho trovato il mitico LuigiM, nel forum di http://www.cncitalia.net.

A distanza di qualche settimana ecco arrivare il pacco dell’asse z, visibile nella figura in tutta la sua bellezza:

Asse z
Asse z

La struttura è molto pesante, alcuni punti sono in alluminio spesso 30mm, forse anche troppo, ma ormai sta nascendo…

Prosegue al passo 2

Come ti simulo una tastiera con Arduino

Da qualche tempo mi diletto a rivivere il passato dei giochi, quelli per intenderci che spopolavano le sale giochi e/o che giravano sui vecchissimi (ma divertentissimi) commodore 64, amiga, zx spectrum, ecc.

Innanzitutto un po’ di spiegazioni, prima di arrivare al punto in cui ci servirà fare uso del nostro fidato arduino.

Cercando in giro si trova davvero di tutto. Esistono emulatori che permettono di emulare singole piattaforme, come n64, commodore 64, ecc. Ne esistono altri, invece, e di questi parlerò in questo articolo, che non emulano nessuna piattaforma in particolare, come MAME.

Dopo aver provato i vari retropie, pimame, su raspberry, con scarsi risultati, devo dire, mi sono concentrato su quello che potevo far girare sul mio Android, un Samsung s3 di oltre due anni fa.

Quello che ho trovato più interessante, tra i vari disponibili sullo store, è Mame4droid.

Di questo ne esistono due versioni, che possono essere installate entrambe contemporaneamente. La prima si chiama Mame4droid 0.37b5 e la seconda Mame4droid 0.139.

Visto che ci ho messo un po’ a capire la differenza ve la riporto: la prima permette di far girare giochi le cui rom hanno il numero di versione 0.37b5 (veramente io ho utilizzato le 0.37b11), la seconda vi obbliga a cercare qualcosa con il numero di versione 0.139.

Vi domanderete: embè ? Che me ne faccio ?

Per far girare qualcosa all’interno di un emulatore è necessario procurarsi le cosiddette roms. Sono dei piccoli (a volte) file compressi che contengono una copia binaria fedele al gioco originale, in formato leggibile dall’emulatore, che qualcuno si è preso la briga di creare per voi.

Tralasciando il discorso che, ovviamente, scaricare queste rom equivale a commettere un “piccolo” reato, in rete si trovano archivi enormi di questi giochi, alcune volte già pronti per essere solo installati. L’importante è avere un po’ di pazienza e cercare solo quello che vi serve (ricordate la versione). Oppure vi create la vostra bella copia di una rom partendo da un gioco già in vostro possesso…

Una volta che avrete il vostro nuovo archivio di roms su PC, queste vanno caricate nella flash di android.

Allora, per la versione 0.37b5, vanno caricate nella directory /sdcard/ROMS/MAME4ALL/roms, mentre per la versione 0.139 vanno caricate sotto /sdcard/ROMS/MAME/roms. Non sbagliate, altrimenti l’emulatore non le troverà mai.

Se ritenete di avere copiato il file nella posizione giusta ma l’emulatore non vi trova ancora nulla, allora vuol dire che non avete caricato la versione del file corretta, come spiegato sopra. Cercate altrove.

Quello che dovreste vedere quando avviate l’applicazione è qualcosa del genere:

immagine Mame4droid0.139

immagine Mame4droid0.139

A tra poco per il proseguimento… Continua a leggere Come ti simulo una tastiera con Arduino

HALLOWEEN SI AVVICINA!

Oggi passando davanti alla vetrina di un negozio di giocattoli ho visto già esposti costumi e decorazioni per Halloween. Anche se mi sembra ancora un po’ presto, ho colto l’occasione per cominciare a cercare in rete nuove idee  per quest’anno. Sono indecisa tra il travestimento da zombie e mummia… vi aggiornerò in merito.

Intanto vi racconto quello che abbiamo realizzato per gli scorsi.

  • TRAVESTIMENTI 

Partiamo dal presupposto che io ho bisogno di idee semplici e la cui realizzazione non necessiti di ago e filo (o perlomeno che il loro utilizzo sia ridotto al minimo indispensabile!).

2011DSCN1047FRANKENSTEIN

Ho semplicemente scaricato la maschera dal sito filastrocche.it

2012

DSCN1947

VAMPIRO

Alla maschera da vampiro ho aggiunto un mantello realizzato utilizzando due t-shirt dismesse del babbo (una nera ed una rossa, che era già stata trasformata in precedenza in un mantello da supereroe) e cucito con l’aiuto della nonna.

 

2013

DSCN2306

SCHELETRO

Per la realizzazione del costume da scheletro ho preso spunto da qui. (Io le ossa le ho stampate da Internet, cercando lo scheletro umano, ritagliate, plastificate ed incollate con la colla a caldo).

  • LAVORETTI E DECORAZIONI

Ecco le nostre versioni dell’immancabile zucca

DSCN1036

DSCN1961

DSCN1962

un festone a tema

DSCN1953

DSCN1954

il pipistrello realizzato con un rotolo di carta igienica e del feltro

WP_20140914_005

Aggiungo anche un paio di lavoretti che i bimbi hanno fatto all’asilo:

la strega con la testa piena di pop corn

DSCN1950

e lo scheletro con i bastoncini per pulire le orecchie

DSCN2308

DSCN2309

  • HALLOWEEN A TAVOLA

In rete si trovano idee pazzesche per la cena di Halloween, dalle DITA di STREGA al CERVELLO DI PANNA COTTA….

Io mi sono cimentata in alcune, scegliendo quelle che mi sembravano più semplici da realizzare e, soprattutto, che i bambini non avrebbero liquidato con il rituale “che schifo!”.

Ed ecco le nostre creazioni (non ho seguito le ricette alla lettera, le ho variate a seconda dei nostri gusti e necessità):

BISCOTTI TESCHIO

DSCN1956

DSCN1957

PIZZETTE MUMMIA

DSCN1960

WURSTEL MUMMIA

DSCN1959

ANEDDOTO: anni addietro preparavo una decorazione come questa (la foto non è mia)pizza-ragnoper la pizza di Halloween e sono riuscita a fare fesso mio marito, che ha letteralmente preso un colpo, scambiandolo per un ragno vero.

Spero che queste foto possano esservi da spunto per le vostre realizzazioni… mostruose!! Buona Halloween a tutti!