10/10/2012

Mayan prophecy 2012 ®

Filed under: — admin @ 16:08

English version on next page… Thanks!

 

Siamo stati recentemente contattati dal fotografo Francesco Conti e dalla graphic-designer Stefania Servidio, ideatori del progetto Agency for disasters, chiedendoci un consiglio per la realizzazione dell’installazione Mayan prophecy 2012 ® opera concettuale finalista al Premio Celeste 2012, concorso ormai affermato nella promozione dell’arte contemporanea in Italia. La cosa ci e’ subito piaciuta e abbiamo deciso di sponsorizzare la realizzazione fornendo le competenze e il materiale necessario allo sviluppo della parte che piu’ ci compete: un digital countdown timer.

 

 

Le richieste sono state subito chiare: occorreva realizzare, in un tempo relativamente breve di una quindicina di giorni, un circuito elettronico che potesse conteggiare il numero di secondi, minuti, ore e giorni mancanti alla fatidica data della profezia dei Maya. Le dimensioni del display dovevano essere tali da riuscire a coprire una lunghezza di circa 35cm e un’altezza di poco meno di 3cm e doveva essere esclusivamente in tecnologia a LED rossi. Il circuito poteva avvalersi di un’alimentazione proveniente da un alimentatore switching da parete.

 

I presupposti qui elencati hanno fatto subito pensare a una architettura basata su un microcontrollore e una serie di shift register, uno per cifra, connessi “in cascata” in modo tale da permettere una maggior liberta’ di posizionamento delle cifre componenti il display. L’utilizzo di shift register ha permesso anche di “limitare i danni” in caso di errori di progetto e/o di assemblaggio isolando, di fatto, le singole cifre all’interno di piccoli circuiti stampati tra di loro connessi da 5 fili: due per l’alimentazione, uno per il clock, uno per il dato e uno per lo strobe.

 

Durante la stesura dei requisiti e’ apparsa anche interessante la possibilita’ di abbracciare la filosofia dell’open source e, per questo motivo, e’ possibile trovare gli schematici e il firmware necessario all’implementazione del digital countdown timer sul repository pubblico di EtherMania su GitHub pubblicato con Licenza Creative Commons Attribution-Share Alike 3.0 Unported.

 

Al fine di limitare la dimensione dell’intero circuito e minimizzare i tempi di implementazione si e’ optato per la realizzazione di una serie di PCB che ospitassero le singole cifre del display e lo shift register ad esse associato, dotando gli stampati di una coppia di connettori che permettessero il collegamento “a cascata” dei vari shift register componenti l’intero display. Soltanto la prima cifra, ossia quella dedicata al conteggio delle centinaia di giorni, e’ stata collegata direttamente a un atmega328 attraverso un circuito stampato appositamente progettato al fine di ospitare tre pulsanti e una serie di pin per la comunicazione con un adattatore USB2Serial. Quest’ultimo, infatti, e’ stato utilizzato per connettere l’intero display all’IDE di Arduino, dopo aver opportunamente programmato l’atmega328 con il necessario bootloader, realizzando cosi’ un vero display Arduino-like minimale e gestibile dall’IDE come una normale scheda Arduino UNO.

 

Ecco alcuni fotografie scattate durante alcune fasi del lavoro che, in realta’ dobbiamo ammettere, e’ stato piu’ un divertimento che un lavoro!

 

PCB assembly

PCBs were panelized and (manually) assembled

 

I circuiti stampati delle singole cifre sono stati prodotti con pannellizzazione di 6 cifre per ogni scheda formato eurocard. C’e’ stato anche spazio per la cifra con a bordo l’atmega328. Una volta in possesso dei PCB si e’ provveduto a montarli.

 

Single digit PCBs after the final cut

 

Le singole cifre sono state poi separate.

Flashing the Arduino Bootloader

 

Dopodiche’ si e’ passati alla programmazione dell’atmega328 con il bootloader di Arduino. La lucina verde sul programmatore conferma che il micro e’ stato riconosciuto e che tutto e’ andato a buon fine!

 

Interconnection between digits

 

Si e’ provveduto a saldare il display su ogni PCB e, ad una ad una, le cifre sono state connesse attraverso un flat cable.

 

Each digit was tested

 

Ad ogni nuova cifra e’ stata data tensione per verificare che non fossero stati introdotti cortocircuiti dell’ultima ora.

 

Arduino programming with USB serial adapter

 

Si passa alla programmazione vera e propria. Il sistema e’ collegato a un adattatore seriale/USB che, attraverso il bootloader caricato precedentemente, gli permette di essere riconosciuto dall’IDE di Arduino come una scheda Arduino UNO.

 

Digits are then coupled together with adhesive tape

 

Ed infine ecco come si presenta il countdown al termine dei lavori. Le cifre sono state raggruppate usando del normale nastro adesivo.

 

L’implementazione del firmware e’ stata veramente un’esperienza appagante. Buona parte del software e’ stato scritto durante il periodo di attesa della produzione dei PCB ed e’ stata successivamente modificata per adattarla al prodotto finale. L’ampio utilizzo del C++ ci ha permesso di scrivere il software mantenendo una logica molto vicina a quella dell’hardware. Il tipo “display”, definito come un oggetto in grado di riprodurre una singola cifra, e’ stato incapsulato in una interfaccia che e’ stata successivamente specializzata nelle due tipologie di display: quelle basate su shift register e quelle “latched”. La specializzazione si occupa in maniera del tutto trasparente dei “dettagli tecnici” relativi alla trasmissione del dato verso lo shift register o il pilotaggio diretto dei LED nell’unica cifra collegata all’atmega328. La serie di oggetti rappresentanti le varie cifre e’ stata posta in un array garantendo un semplice e compatto accesso.

 

Al termine del progetto siamo riusciti ad ottenere le caratteristiche qui riportate:

  • Sistema minimale con a bordo un atmega328, programmabile tramite l’IDE e compatibile con il framework di Arduino
  • Pulsante “MODE” per la selezione del modo operativo (conteggio oppure setup)
  • Pulsante “UP” per il setup del numero della cifra durante l’operazione di setup o per la selezione della luminosita’ dell’intero display durante il modo conteggio
  • Countdown fino all’ora 000:00:00:00 con successivo conteggio incrementale
  • Durante il setup e’ possibile scegliere se far conteggiare in avanti o all’indietro

No Comments »

No comments yet.

RSS feed for comments on this post.

Leave a comment

ERROR: si-captcha.php plugin says GD image support not detected in PHP!

Contact your web host and ask them why GD image support is not enabled for PHP.

ERROR: si-captcha.php plugin says imagepng function not detected in PHP!

Contact your web host and ask them why imagepng function is not enabled for PHP.