Arduino Serial v2.0a

24 11 2010

Ciao a tutti, ieri sera sono finalmente riuscito a riprendere in mano un vecchio (fallimentare) progetto: Arduino Serial. Mesi fa, facendo degli acquisti su un noto negozio online di ciarpame elettronico, mi aggiudicai una scheda Arduino Serial PCB, ossia la schedina stampata per montare Arduino con la porta seriale.

Arduino Serial 2.0a PCB

Arduino Serial 2.0a PCB

Il simpatico portale di ecommerce, analizzando la mia scelta della schedina, mi propose automaticamente un chip ATMEGA328, dotato di bootloader Arduino precaricato: vedendo questa simpatica associazione, non mi posi minimamente il problema ed aggiunsi all’ordine il suddetto chip. Dopo pochi giorni il tutto pervenne a casa e cominciai il montaggio dei vari componenti (racimolati dalle scorte o acquistati in vari negozi di Torino), giunto però alla fase di test, mi resi conto che l’IDE Arduino non prevedeva la possibilità di gestire una scheda Arduino Serial con a bordo un ATMEGA328:

Selezione delle schede su Arduino

Selezione delle schede su Arduino

Documentandomi (in ritardo) scoprii che impiegare l’ATMEGA328 è possibile, ma è necessario scrivere un’apposita sezione nella configurazione dell’IDE; il punto è che non volevo essere vincolato a troppi tricks, dovendo sempre cambiare file a mano perdendomi le modifiche con l’update dell’IDE, così regalai il 328 ad un amico (che aveva un Arduino Diecimila dotato di ATMEGA168) e mi procurai dalla Polonia un ATMEGA8 vergine.

L'ATMEGA8 e la selva di componenti

L'ATMEGA8 e la selva di componenti

Il problema a questo punto è stato di trovare un modo per programmare l’ATMEGA8 in modo tale che potesse accettare i segnali giunti attraverso l’interfaccia seriale.

La DB9, l'alimentazione e il 7805

La DB9, l'alimentazione e il 7805

Cercando su internet, mi imbattei in un howto, scritto direttamente dai creatori di Arduino, che spiega dettagliatamente la procedura per la programmazione del chip tramite ICSP. Non essendo io un elettronico, spendere diverse decine di euro per un programmatore di microchip Atmel mi è sembrato inopportuno, quindi, sempre seguendo la succitata guida, ho optato per costruire un programmatore parallelo, come spiegato qui.
Lo schema di funzionamento è piuttosto semplice.

Schema del programmatore ICSP via Parallela

Schema del programmatore ICSP via Parallela

Utilizzando un cavo riciclato da un vecchio computer, si è trattato di fare sei sole saldature a stagno, una bella colata di colla a caldo per proteggere il tutto dai cortocircuiti e una scocca di plastica, per far apparire il tutto un po’ più professionale :-) .

La mia versione del programmatore ICSP

La mia versione del programmatore ICSP

Seguendo i passi descritti nei documenti di Arduino, ed utilizzando la comoda funzione di programmazione già pronta nell’IDE, l’intero procedimento è filato liscio. L’ultimo scoglio è stato quello di recuperare un cavo seriale adatto; Arduino Serial ha bisogno di un cavo DB9-DB9 dritto, non vanno quindi bene i cavi comunemente in dotazione ai modem (che in realtà sono cavi incrociati, chiamati null-modem). Scavando in vari scatoloni pieni di rottami sono riuscito a recuperare un cavo adatto e, mediante il tester, ho verificato che i piedini fossero connessi 1-1.

Seriale dritto DB9-DB9 femmina-femmina

Seriale dritto DB9-DB9 femmina-femmina

Purtroppo la mia mania di smanettamento mi ha fatto tralasciare un importante particolare: il cavo a mia disposizione è un femmina-femmina. Da una parte va bene perché le porte seriali (quelle che DOS\Windows chiama COM) sono di tipo maschio (quelle con i piedini, per intenderci), ma sull’Arduino saldai un connettore DB9 femmina! :-( Fortunatamente in un cassetto dell’ufficio ho scovato un gender changer DB9; se vi doveste trovare nella stessa situazione, fate attenzione a non utilizzare un changer null modem, altrimenti la scheda e il computer saranno incapaci di comunicare.

DB9 Gender Changer

DB9 Gender Changer

Naturalmente tutti questi pasticci potevano essere evitati facendo un’oculata scelta dei componenti prima di mettersi al saldatore, ma, si sa, smanettone è sinonimo di pasticcione :-D . Comunque, ecco come appare il cavo alla fine.

Cavo seriale dritto DB9-DB9 maschi-femmina

Cavo seriale dritto DB9-DB9 maschi-femmina

Per finire un’indicazione importante: Arduino Serial non resetta la connessione via software, questo si traduce nel fatto che se volete uploadare il vostro codice dall’IDE alla schedina (mentre questa è accesa) dovete operare, manualmente, un piccolo trucco:

  1. Compilate il vostro codice sull’IDE e verificate che tutto sia a posto
  2. Controllate che Arduino Serial sia connesso, alimentato e che l’IDE selezioni la scheda corretta (Arduino NG or older w/ ATmega8)
  3. Tenete premuto il tasto reset sulla scheda Arduino
  4. Avviate la compilazione e l’upload del codice
  5. Quando l’IDE vi restituirà, nella finestra di output/debug, il messaggio: Binary sketch size: #### bytes (of a #### byte maximum)
    rilasciate il tasto reset.

Se eseguirete tale procedura correttamente, la scheda Arduino effettuerà il reboot, il bootloader per qualche secondo ascolterà la porta RS323 in attesa di un nuovo codice, l’IDE spedirà correttamente il binario e tutto funzionerà perfettamente. Nelle nuove versioni di Arduino tutto questo pasticcio non esiste perché quando l’IDE vuole spedire il codice, chiede alla schedina di ripartire e il bootloader dell’ATMEGA si troverà il nuovo firmware in attesa di essere caricato.

Per concludere alcune piccole considerazioni (personali):

  • Arduino Serial, soprattutto utilizzando un ATMEGA8, è molto più limitato e macchinoso da utilizzare di una più recente versione USB.
  • Non costa molto di meno rispetto ad un Arduino USB bello e fatto, quindi se si vuole risparmiare questa è sicuramente la strada sbagliata.
  • Sebbene la piedinatura del Serial sia compatibile con le nuove schede e, di conseguenza, anche con gli shield, il fatto che si vadano ad utilizzare componenti discreti rende lo spazio sopra la board inutilizzabile, meglio mettere eventuali espansioni sotto.
  • Essendo la porta seriale non alimentata, Arduino Serial necessita di un’alimentazione esterna per funzionare (questo vale anche per la fase di programmazione).

Detto questo, se vi chiedete perché, avendo a disposizione dei comodi Arduino 2009 o (recentemente) l’Arduino UNO, mi sono lanciato in questa ennesima follia… beh:

  1. perché si poteva fare :-P
  2. perché voglio provare questo aggeggio su computer veramente vecchi, privi di porte USB :-)

Alla prossima folle autocostruzione.

Simone





Flat-Box

7 09 2009

Nell’attesa di trovare i pezzi per finire altri progetti, ho iniziato la costruzione di una flat-box. Seguendo le realizzazioni scovate sulla rete, mi sono procurato del plexiglass opalino, dei pannelli di plastica ondulata e 5m di barre di legno 1x1cm (OBI, Brico..); con una sega a pantografo ho tagliato 4 quadrati da 25cm di lato e con il seghetto a mano 20 listellini di legno per fare le cornici di supporto.

Cornice di sostegno

Cornice di sostegno

Ogni cornice è stata poi ricoperta di velluto nero autoadesivio, per evitare riflessi e per non rigare il plexiglass.

Velluto sulle cornici

Velluto sulle cornici

Sullo schermo più interno ho praticato 4 fori per far passare altrettanti portaled da ø5mm.

Illuminatore

Illuminatore

Ecco il risultato assemblato:

Interno Flat-Box

Interno Flat-Box

A cosa fatte devo dire che avrei preferito avere una scatola più grande, perché il foro sottostante ha i bordi un po’ risicati:

Foro obiettivo

Foro obiettivo

Simone





Barra a doppia Vixen

3 08 2009

Tempo addietro, in attacco di strumentite, comprai due code di rondine tipo Vixen usate. Una mi serviva, l’altra rimase nell’armadio dei “poi ci penserò” :-D .
L’altra settimana mi venne in mente di poter realizzare una barra a doppia coda di rondine, di modo da poter piazzare il telescopio guida di fianco al tubo di ripresa, invece che sopra. Non so se servirà, ma teoricamente abbassando il baricentro il bilanciamento dovrebbe essere meno critico.

Per congiungere la femmina a coda di rondine e la testa micrometrica alla coda maschio, ho usato una barra di profilato in alluminio da 40x10mm, che mi regalò un amico.

Doppia barra vixem

Doppia barra vixen

La coda di rondine maschio aveva già 4 fori ad asse parallelo filettati M4, quindi con delle semplici brugole  a testa svasata l’ho collega alla barra di supporto.

Coda di rondine maschio SkyWatcher

Coda di rondine maschio SkyWatcher

La coda di rondine femmina (Geoptik) presentava due fori in cui ho inserito delle brugole da 3. Il lavoro sarebbe risultato migliore se avessi avuto a disposizione un profilato da 50 perché le viti hanno poco materiale su cui avvitarsi: ma questo passa il convento.

Coda di rondine femmina Geoptik

Coda di rondine femmina Geoptik

Dalla parte opposta ho realizzato una piastrina di dimensione sufficiente per alloggiare la testa micrometrica Geoptik: mi dovranno pagare per tutta la pubblicità che gli faccio :-D .

Piastrina per la testa micrometrica Geoptik

Piastrina per la testa micrometrica Geoptik

Per finire ho aggiunto una brugola da 5 in centro alla barra, di modo da aumentarne la stabilità: per far ciò ho dovuto filettare un foro sulla coda di rondine, rovinandone l’anodizzazione, ma non potevo fare altrimenti. I fori da 12.5mm che si vedono servono per snellire un po’ il tutto, altrimenti la HEQ-5 non regge il peso: non comportano perdita di rigidità.

Barra completata con i relativi accessori

Barra completata con i relativi accessori

Costo dell’operazione:

  • Barra SkyWatcher 34cm 18€ (+5€s.s.) usata
  • Testa micrometrica Geoptik 100€ usata
  • Coda di rondine femmina Geoptik 45€ nuova

Totale: 166€

Se si toglie la testa, vengono 66€, che è un po’ meno di una barra già fatta con 2 piastrine (l’ho vista a 70€ +s.s.), ma spero che la mia soluzione sia più robusta. Presto i test (speriamo :-P ).

Simone





Il case dell’alimentatore

8 07 2009

Il mio amico Fox mi ha procurato una scatola di alluminio per l’alimentatore, già dotata di presa per la rete elettrica, pulsante I/O con lampadina interna (sarà un po’ fastidiosa, visto che è verde, ma a caval donato…) e due connettori a 4 e 3 poli a sgancio rapido.
La scatola è formata da due parti a U, come il conentenitore suggerito da Marco Pilloli per la UAI-CCD, però il metallo è spesso circa 2mm, il che non guasta affatto, dovendo contenere un trasformatore 12V 3A e uno da 2x18V toroidale.
Una volta fatte tutte le dovute saldature sul PCB dell’alimentatore, ho provveduto a fissarlo sul fondo del case con delle brugole a testa svasata da 3; ho usato gli stessi dadi da 3 come distanziali, impilandone 2 per ogni foro del PCB.

Il trasformatore da 12V ha due alette di fissaggio, per cui ho usato le stesse brugole del PCB; il toroidale, invece, viene fissato tramite una lunga brugola da 6 che lo chiude a panino con il fondo del case.

Una visione dall'alto del case aperto

Una visione dall'alto del case aperto

Ho ritenuto importante poter sezionare tutti i vari componenti tramite dei connettori tipo Molex, in modo da avere la possibilità di smontare il PCB (per eventuali modifiche, che in effetti sono occorse) senza dovermi trascinare dietro i vari connettori, o peggio i due pesanti trasformatori.
Utilizzando questo PCB e dovendo portare all’esterno il TIP e il 78T12, ho previsto:

  • 2 molex a tre vie per i dissipatori esterni
  • 2 molex a 6 vie, uno per i trasformatori e uno per le prese esterne
  • 1 molex a 4 vie per collegare i trasformatori  alla presa di corrente
  • 3 fast-on, 1 per la terra, 1 per il neutro e 1 per la fase (questo perché la mia spina prevedeva i fast-on)
I connettori Molex permettono di disallemblare tutti i componenti

I connettori Molex permettono di disallemblare tutti i componenti

Tutte le saldature a vista le ho coperte con della guaina termorestringente; per i cavi di collegamento ho usato i classici fili da elettricista, da 1.5mq.

Per collegare il TIP e i 78T12 al PCB ho usato del cavo tripolare inguainato da 1mq (per ogni filo interno). Per mia fortuna la scatola presentava una fresatura su un lato, probabilmente per mostrare un LED interno, per cui è stato sufficiente allargare la precedente asola (con una punta da 6mm e una lima) per permettere i cavi inguainati di passare.

Grazie ai due molex da 3 poli, il case si può ispezionare semplicemente sfilando il coperchio, mantendendo comunque il collegamento e quindi l’alimentatore può rimanere acceso anche se aperto.

Il case dell'alimentatore aperto e i collegamenti

Il case dell'alimentatore aperto e i collegamenti

Simone





PIC Programmer

7 07 2009

Per il programmatore PIC mi sono basato sul PCB di Paolo (ariadivetro.it) e ho recuperato l’alimentatore di un vecchio portatile IBM per alimentarlo. La base di tutto lo schema è il 7812: è necessario utilizzare un alimentatore che generi una tensione superiore ai 13.5V ma prima di fare la “prova del fumo” è consigliabile consultare il relativo DataSheet per capire il range di operazione del regolatore.
Insomma, il mio 7812 poteva supportare fino a 25V in ingresso, l’alimentatore IBM ne restituisce 19, quindi era adatto.

L'alimentatore del Programmatore PIC

L'alimentatore del Programmatore PIC

Purtroppo sono stato poco avveduto e ho acquistato il connettore di alimentazione prima di controllare lo spinotto dell’alimentatore, così si è resa necessaria la sostituzione.

Per il connettore BD25 ho utilizzato questo schema di Pin-Out. Ecco le foto del risultato:

Programmatore PIC, visione laterale

Programmatore PIC, visione laterale

Programmatore PIC, visto dal lato saldature e ponticelli

Programmatore PIC, visto dal lato saldature e ponticelli

Programmatore PIC, visione del lato saldature dall'alto

Programmatore PIC, visione del lato saldature dall'alto

Visto che il sistema di ponticelli è un po’ complesso, ho ripreso in mano il progetto FidoCAD e ho apportato alcune modifiche, riducendo al minimo i ponticelli. Purtroppo, non ho avuto occasione di provarlo:

http://www.gaeeb.org/tek/uai_ccd/programmatore_pic_0.1.fcd

Il programmatore di prototipo è stato realizzato grazie alle sapienti doti da saldatore di Giuseppe “Fox” Treccarichi, realizzatore delle schede PCB di tutto il progetto.

Simone








Iscriviti

Get every new post delivered to your Inbox.