Arcerino ======== Ai bei tempi passati, quando io ero giovane, gli uomini erano veri uomini, i computer veri computer e la verosomiglianza fisica un lusso che nessun gioco poteva permettersi, riportare in posizione un cursore oscillante in modo casuale era considerata una buona approssimazione di tiro con l'arco. Avanti veloce ai giorni nostri, ad una riunione del Gl-Como e ad una domanda da parte del presidente: “Ehi, la fiera è imminente, che progetto portiamo?”. Segue momento di panico, dato che il progetto principale del LIFO non è ancora funzionante e i progetti arduinosi personali sono fermi in attesa di componenti, ma subito interviene la consapevolezza del vero Maker “non ti preoccupare, qualcosa ci sarà!”. Un po' di brainstorming ed una notte di sonno dopo, nel locale adibito alla raccolta di idee prende forma un progetto: abbiamo un nunchuk, abbiamo un display, perché non fare una rievocazione ironico-didattica [#ironico]_ dei tiri a segno del passato? Detto, fatto, nasce il progetto arcerino! .. [#ironico] e pure buzzword-compliant! Hardware -------- L'hardware è stato assemblato con materiale già acquistato per altri progetti: la versione in piccolo usa un `Olimexino 32U4`_ (clone migliorato di `Arduino Leonardo`_ funzionante a 3.3V), un display_ stile Nokia 3310 ed un Wiimote Nunchuk con relativo adattatore_ per il collegamento ad Arduino. Dato che l'LCD è collegato alla porta UEXT_ dell'Olimexino e ne riusa i pin I2C per altre funzioni, è stato necessario aggiungere un semplice adattatore, realizzato su un ritaglio di millefori, per redirigere i segnali in questione verso altri pin e liberare il canale I2C per il Nunchuk. La versione con uscita tv usa invece un normale `Arduino Uno`_, una vecchia TV CRT con ingresso composito ed un semplice cavo con due resistenze per il collegamento, oltre ovviamente ad un secondo Nunckuk con adattatore. .. _`Olimexino 32U4`: https://www.olimex.com/Products/Duino/AVR/OLIMEXINO-32U4/ .. _`Arduino Leonardo`: http://arduino.cc/en/Guide/ArduinoLeonardo .. _display: https://www.olimex.com/Products/Modules/LCD/MOD-LCD3310/ .. _adattatore: http://www.dfrobot.com/index.php?route=product/product&filter_name=wiichuck&product_id=91 .. _UEXT: https://www.olimex.com/Products/Modules/ .. _`Arduino Uno`: http://arduino.cc/en/Main/ArduinoBoardUno Software -------- Per il software sono state usate tre librerie esistenti: wiinunchuck.h_ (sotto licenza GPLv3+) per leggere i segnali del Nunchuk, `arduino-tvout`_ (sotto licenza MIT) per gestire l'output su TV e u8glib_ (sotto licenza BSD) per gestire il display LCD. Quest'ultima rende il progetto adattabile ad un gran numero di display presenti sul mercato, anche se potrebbe essere necessario cambiare parte delle funzioni di disegno dell'interfaccia per adattarle a diverse risoluzioni. .. _wiinunchuck.h: http://www.timteatro.net/2012/02/10/a-library-for-using-the-wii-nunchuk-in-arduino-sketches/ .. _`arduino-tvout`: https://code.google.com/p/arduino-tvout/ .. _u8glib: https://code.google.com/p/u8glib/ Per scegliere tra i due output si usa la macro LCD: se è definita vengono usate la libreria u8glib e le relative funzioni di disegno sullo schermo, altrimenti arduino-tvout; in questo modo si sono evitati i problemi relativi all'uso di file multipli con l'IDE di Arduino, pur mantenendo la logica di gioco in comune. Il gioco è semplice: si hanno a disposizione 10 frecce; con il joystick del nunchuk si controlla un mirino che oscilla in modo casuale e con il tasto Z si lancia la freccia. Alla fine della partita c'è una schermata riassuntiva di punteggio e rango raggiunto, e se ne può iniziare una nuova. Per semplicità si è deciso inizialmente di non implementare forza di tiro, arco percorso dalla freccia ed effetto del vento, pur presenti nel gioco dal quale si è presa ispirazione. Volendo, rimane all'incirca un terzo della memoria dell'arduino per farlo. Downloads --------- Tutto il materiale relativo al progetto è disponibile sul relativo `repository git`_ su gitorious ed è rilasciato sotto licenza GPLv3+. .. _`repository git`: https://gitorious.org/progetti-gl-como/arcerino