• 990.023 Luigino328 - Manuale utente


    La 990.023 Luigino328 è una scheda compatibile con Arduino, rispetto al quale presenta alcune migliorie che permettono uno sviluppo software più rapido e con meno intoppi. La realizzazione di Luigino328 è seguìta dopo un lungo ed attento studio della piattaforma Arduino che di per sè riteniamo già un prodotto molto valido. Sembra difficile poter migliorare qualcosa che di per sè è già ottimo, ma ci siamo riusciti ugualmente!

    E' possibile utilizzare su Luigino328 tutte le applicazioni realizzate per Arduino senza alcuna modifica, usare lo stesso software di programmazione e gli stessi shield: la Luigino328 ha la stessa forma e dimensioni di Arduino ma con alcune migliorie hardware.
    Nota:
    La scheda contrassegnata come versione PROTOTYPE (identificata dal codice 990.023P), venduta ad un prezzo inferiore, presenta un piccolo errore relativo al posizionamento del connettore icsp: questo risulta spostato di mezzo passo standard verso l'alto a sinistra. Questo non compromette assolutamente il funzionamento della scheda e c'è bisogno di realizzare un adattamento unicamente nel caso in cui sia necessario montare degli shield che fanno uso di tale connettore (es.: L'ethernet shield o l'XBee shield). Abbiamo approntato una procedura per spiegare come risolvere rapidamente eventuali problemi di adattamento degli shield.
    Specifiche tecniche
    • Microcontroller ATmega328 con bootloader precaricato
    • Tensione operativa: 5V
    • Tensione in ingresso (raccomandata): 7 - 12V
    • Tensione in ingresso (limite) : 6 - 12V
    • I/O Digitali: 14 (di cui 6 possono fornire un'uscita PWM)
    • Ingressi analogici: 6
    • Massima corrente fornita dai pin: 40mA
    • Massima corrente fornita dai pin a 3.3V: 50mA
    • Memoria Flash: 32Kb (dei quali 2Kb sono usati dal bootloader)
    • SRAM: 2Kb
    • EEPROM: 1Kb
    • Frequenza di clock: 16MHz
    • Protezione della porta USB dalle sovracorrenti
    • Automatic Voltage Selector
    • Automatic Serial Port Selector
    • Regolatore di tensione più robusto
    • Possibilità di utilizzare il Bootloader di Arduino UNO (OptiBoot)
    • SmartReset™

    Nota
    Le funzionalità scritte in rosso sono presenti unicamente sulla Luigino328, le restanti sono presenti sia su Arduino che su Luigino328.
    In aggiunta a tutte le caratteristiche già presenti in Arduino, la Luigino328 presenta alcune caratteristiche aggiuntive grazie alla presenza on-board di un microcontrollore (PIC12F675) preprogrammato che assolve ad alcuni compiti ausiliari che rendono questa scheda più facile da utilizzare.

    Automatic Voltage selector
    Nel caso in cui la Luigino328 venga alimentata dalla porta USB e successivamente viene connessa una fonte di alimentazione esterna, l'alimentazione della scheda viene automaticamente commutata su quest'ultima senza alcun intervento da parte dell'utente e con soluzione di continuità, senza interruzioni. Questo consente di non sovraccaricare la porta USB soprattutto nel caso in cui siano presenti shield o comunque utilizzatori che richiedano un notevole quantitativo di corrente che la porta USB non è in grado di fornire. In ogni caso la porta USB è sempre protetta e non riceve mai corrente dalla fonte di alimentazione esterna. Su Arduino, invece, l'automatic voltage selector da precedenza all'USB nel caso in cui sia applicata anche l'alimentazione esterna: questa non ci è sembrata una buona scelta proprio per i motivi appena esposti: perchè sovraccaricare la porta USB (che tra l'altro non può fornire più di 500mA) quando è disponibile una fonte di alimentazione esterna? Inoltre l'alimentazione da USB è soggetta a numerose spurie che possono essere d'intralcio quando si utilizza il modulo ADC.

    Automatic serial port selector
    Molti utilizzatori di Arduino si sono trovati nella fastidiosa situazione di dover disconnettere uno shield che fa uso della porta seriale nel momento in cui si necessita la programmazione. Questo accade perchè su Arduino i pin TX/RX dell'ATMega sono condivisi tra il connettore che fa capo allo shield e il chip che si occupa della comunicazione seriale verso l'esterno (FTDI232R su Arduino2009 e ATMega8U2 su Arduino UNO). Sulla Luigino328 tale inconveniente non esiste: in fase di programmazione non è necessario disconnettere lo shield nè tantomento eseguire scomode selezioni di porta seriale con i jumper sugli shield che ne sono previsti. La Luigino328 esegue in automatico la disconnessione dello shield esterno quando rileva la fase di programmazione rendendo le fasi di sviluppo software più rapide ed indolori.

    Regolatore di tensione più robusto

    Molti Arduino Duemilanove montano di serie un regolatore MC33269D, su Luigino328 abbiamo utilizzato un LM1117. Sebbene entrambi i regolatori eroghino la stessa corrente, l' LM1117 ha un'affidabilità e una resistenza maggiori, tale regolatore viene difatti utilizzato anche in ambito industriale. E' comunque possibile prelevare la massima corrente con una tensione in ingresso non superiore a 9V ed è normale che con il massimo carico applicato il regolatore scaldi molto.

    Possibilità di utilizzare il bootloader di Arduino UNO (Optiboot)

    La Luigino328 viene fornita di serie con il Bootloader di Arduino Duemilanove. E' possibile però montare chip Atmega328 con il bootloader di Arduino UNO (Optiboot): la Luigino328 funziona correttamente anche con questo a differenza di Arduino Duemilanove. L'Optiboot occupa uno spazio di 512Bytes a differenza del bootloader di Arduino Duemilanove che occupa 2Kb. L'Optiboot, inoltre, lavora con un baudrate di 115200bps a differenza di Arduino Duemilanove che funziona a 57600bps: questo rende più veloce del doppio la fase di programmazione.

    SmartReset™
    Su Arduino nel momento in cui viene aperta una comunicazione seriale sfruttando la porta COM virtuale su USB, l'ATMega viene resettato. Tale condizione è necessaria durante la fase di programmazione ma assolutamente inutile, e spesso fastidiosa, nel caso in cui vogliamo semplicemente dialogare via seriale con la nostra applicazione. La funzione di SmartReset™ presente sulla Luigino328 permette di risolvere questo inconveniente: l'ATMega viene posto in condizione di reset unicamente nel caso in cui sull'USB avviene la programmazione mentre continua a funzionare normalmente se utilizziamo l'USB per comunicare con il nostro programma. Il risultato è evidente: il nostro programma viene eseguito in maniera normale, con continuità, senza perdite di variabili e flag, anche se chiudiamo/apriamo di continuo la comunicazione seriale con l'esterno. La funzionalità di SmartReset™ può essere facilmente abilitata/disabilitata per risolvere eventuali problemi di compatibilità su alcuni sistemi operativi.

    Abilitazione/Disabilitazione SmartReset™
    La Luigino 328 viene fornita con la funzionalità di SmartReset™ disabilitata. Nel caso in cui vogliate abilitare tale caratteristica, e quindi far funzionare la Luigino328 in modalità compatibile Arduino, questo può essere fatto in maniera semplice seguendo questa procedura:
    • Togliere alimentazione alla Luigino328
    • Servendosi di un corto spezzone di filo, unire i due pad in prossimità del PIC12F657 indicati in figura:


    • Ridare alimentazione alla Luigino328
    • Attendere un paio di secondi e rimuovere lo spezzone di filo
    • Spegnere e riaccendere la scheda per rendere funzionante la nuova impostazione

    Tramite questa procedura è possibile in ogni momento abilitare e disabilitare la funzione di smart reset: ogni volta che i 2 pad vengono messi in corto all'accensione, la modalità di autoreset cambia e viene evidenziata mediante un diverso lampeggio del led L1: 3 lampeggi rapidi indicano che è attiva la modalità di reset compatibile con Arduino, 5 lampeggi rapidi indicano che è invece attiva la funzione di SmartReset™. Per osservare correttamente i lampeggi è necessario alimentare Luigino328 unicamente con una fonte esterna.
    Nota
    La funzione di SmartReset™è risultata incompatibile con l'IDE di Arduino per MacOS mentre funziona correttamente su tutte le versioni di Windows e Linux
    Altre caratteristiche

    Le altre caratteristiche sono le stesse di Arduino, le quali possono essere lette dal sito ufficiale di Arduino in questa pagina: http://arduino.cc/en/Main/ArduinoBoardUno

    Selezione Bootloader

    Come detto di serie la Luigino328 viene fornita con il bootloader di Arduino Duemilanove per cui nell'IDE di Arduino è necessario selezionare dal menù "Tools -> Board" la voce "Arduino Duemilanove" come mostrato in figura:


    Nel caso in cui avete cambiato o riprogrammato il Microcontrollore per utilizzare l'optiboot non dimenticate di selezionare Arduino UNO.

    Informazioni avanzate sul Bootloader utilizzato sulle schede Arduino possono essere reperite sul sito ufficiale di Arduino a questo indirizzo: http://arduino.cc/en/Hacking/Bootloader

    Da dove cominciare

    Arduino è stato concepito per essere semplice da programmare anche da parte di chi non ha esperienza. Il punto migliore da cui partire è sicuramente la guida Get Started sul sito ufficiale: http://arduino.cc/en/Guide/HomePage

    Downloads