Grazie per aver acquistato Titino. In questo modo contribuirai agli ulteriori sviluppi del progetto. Caratteristiche tecniche Titino ha le stesse dimensioni di Arduino mini pro (33x18 mm ) ed ha le seguenti caratteristiche: - Alimentazione 5-12V Assorbimento: max 5 mA Processore ATTiny 85 (funzionante a 8MHz con l’oscillatore interno); Memoria EEPROM da 32 KByte Driver RS485 per comunicazione half duplex con autoswitch Velocità di download dalla rete 19200 baud Velocità di upload verso Arduino 19200 baud (questo richiede la modifica del bootloader di Arduino); Compatibile con Arduino con processore ATMEGA328 (5V) Montaggio - Collegamento ad Arduino Titino si interfaccia con Arduino per mezzo del connettore a 5 PIN posto sul bordo della scheda. La disposizione dei pin è quella di un Arduino Mini Pro, e cioè Pin1 (piazzola quadrata): Reset Pin 2 RX Pin 3 TX Collegamenti con Collegamenti RS485 Pin 4 VCC (5V) Arduino Pin 5 GND GND RESET A RX B TX PIN 1 +VCC +5V GND - Collegamento alla rete Collegate il connettore a 4 pin alla rete RS 485 tenendo presente la seguente disposizione: Pin 1 VCC Pin 2 B (RS485) Pin 3 A (RS485); Pin 4 GND http://www.titino.eu email: [email protected] PIN 1 Configurazione dell’indirizzo Dato che sulla rete ci posso essere molti Titino/Arduino, Titino è necessario che ognuno possa essere identificato tramite un indirizzo. L’indirizzo si imposta collegando opportunamente le tre coppie di piazzole poste sul retro consentendo quindi di individuare un massimo di 8 Titino sulla stessa rete. L’indirizzo base quando nessuna piazzola è cortocircuitata è 08. Questo indirizzo deve quindi essere sommato a quello impostato con le piazzole. Esempio 1: cortocircuito della piazzola 1 => indirizzo 09 (8+1) Esempio 2: cortocircuito piazzole 1 e 4 => indirizzo 13 (8+4+1) =4 =2 =1 La quarta coppia di piazzole,, quella più esterna alla scheda, non è attualmente configurata. La sua utilità è quella di raddoppiare il numero di Titino collegabili sulla stessa rete. rete Lee motivazione per la quale questa funziona non è attiva e come fare per abilitarla saranno disponibili disponibi su www.titino.eu. www.titino.eu Funzionamento Modifiche su Arduino Per poter funzionare con Titino è necessario apportare ad Arduino delle semplici modifiche. Una è hardware ed una software. Modifica Hardware: Collegare ollegare uno qualsiasi qualsiasi dei pin RST (reset) posto su uno dei lati di Arduino, al pin 5 (indicato come DTR o GRN),, come nella foto seguente. Modifica Software Il bootloader standard caricato nell’Arduino prevede che l’upload del programma avvenga alla velocità di 57600 baud. E’ necessario modificare care questo valore poiché Titino comunica ad una velocità di 19200. Per fare ciò e per guadagnare ulteriore spazio per gli sketch, si può caricare su Arduino, Optiboot che occupa solo 0,5 Kbytes rispetto ai 2KBytes del bootloader standard (http://code.google.com/p/optiboot/ http://code.google.com/p/optiboot/). Anche http://www.titino.eu email: [email protected] questo bootloader deve essere modificato per poter consentire l’upload a 19200 , ma potete scaricare dal sito www.titino.eu il file già compilato e pronto per essere caricato su Arduino.Sul sito www.titino.eu è spiegato come fare l’upload del bootloader su arduino. Modifica ad Arduino IDE Per programmare qualsiasi nodo Titino/Arduino si può utilizzare il classico IDE di Arduino. Per fare ciò basta aggiungre nel file board.txt (presente nella cartella Arduno/Hardware(arduino/avr) le seguenti righe in qualsiasi punto del file (dopo qualsiasi riga di asterischi). Questa modifica serve per modificare la velocità di upload dello sketch a 19200 (invece che 57200 che la velocità alla quale viene fatto l’upload normalmente quando arduino è collegato direttamente al PC con la USB) e a definire che il bootloader da caricare è nel file optiboot_atmega328_T.hex (una versione modificata di optiboot idonea a funzionare con Titino). ############################################################## atmega328o.name=Titino/Arduino w/ ATmega328 atmega328o.upload.protocol=arduino atmega328o.upload.maximum_size=32256 atmega328o.upload.speed=19200 atmega328o.upload.tool=avrdude atmega328o.upload.protocol=arduino atmega328o.bootloader.tool=avrdude atmega328o.bootloader.low_fuses=0xFF atmega328o.bootloader.high_fuses=0xDE atmega328o.bootloader.extended_fuses=0x05 atmega328o.bootloader.path=optiboot atmega328o.bootloader.file=optiboot/optiboot_atmega328_T.hex atmega328o.bootloader.unlock_bits=0x3F atmega328o.bootloader.lock_bits=0x0F atmega328o.build.mcu=atmega328p atmega328o.build.f_cpu=16000000L atmega328o.build.core=arduino atmega328o.build.variant=standard ############################################################## Questa modifica fa si che nel menu Strumenti/Board venga aggiunta una nuova scheda che si chiama “Titino/Arduino w/ ATmega328” Funzionamento Quando si alimenta Titino (che provvedere anche ad alimentare Arduino) si noterà che il led posto sulla scheda lampeggerà per cinque volte a visualizzare che Titino è nello stato di “Wait”. Stato “Wait” In questo stato Titino è in ascolto della rete, non compie nessuna azione, ma mette a disposizione il driver RS485 rendendo possibile la comunicazione semplicemente utilizzando la porta serial standard di Arduino. http://www.titino.eu email: [email protected] A questo punto Titino può essere visto come una interfaccia TTL/RS485 con autoswitch, cioè la commutazione tra lo stato di trasmissione e ricezione è automatica, pertanto non dovrete preoccuparvi di gestire dal punto di vista software il passaggio da uno stato all’altro. In questo stato Titino accetta una serie di comandi che possono essere impartiti utilizzando ad esempio il monitor seriale dell’Arduino IDE (la porta deve essere settata a 19200 baud). I comandi sono: - NET_STOP=xx (dove xx è l’indirizzo di Titino). Viene bloccato il driver RS485 e quindi eventuali caratteri trasmessi da Arduino, non vengono trasferiti sulla rete RS485. - NET_STOP=ALL Rispetto al comando precedente, viene bloccato il driver RS485 di tutti i Titino sulla rete; - NET_START=xx (dove xx è l’indirizzo di Titino). Viene riabilitato il driver RS485; - NET_START=xx Viene riabilitato il driver RS485 di tutti i Titino sulla rete; - RESET=xx (dove xx è l’indirizzo di Titino). Viene resetttato l’Arduino collegato al Titino di indirizzo xx; - RESET=ALL Vengono resettati tutti gli Arduino della rete; - Program_ID=xx Pone il Titino di indirizzo xx nello stato di “Program”. Nota. E’ importante indicare l’indirizzo nel formato a 2 cifre. Ad esempio l’indirizzo 8 deve essere digitato come 08. Stato “Program” Dopo aver inviato il comando Program_ID=xx, il Titino con l’indirizzo xx si pone nello stato di Program. Il led di Titino si spegne e sul monitor dell’IDE si riceve il messaggio “ID_xx wait program”. A questo punto è possibile inviare lo sketch con il classico comando di upload. Il programma viene ricevuto da Titino e successivamente inviato ad Arduino. Esempio di caricamento di un programma. - Caricare il programma con Arduino IDE; - Aprire il Serial Monitor; - Bloccare la rete con il comando NET_STOP=ALL; - Inviare il comando Program_ID=xx (il led sul Titino con indirizzo xx si spegne e l’arduino collegato viene forzato nello stato di reset); - Attendere il messaggio “ID_xx wait program” - Caricare lo sketch. - Quando appare il messaggio dell’Arduino IDE “Programma caricato “, riaprire il serial monitor. Si vedranno dei quadratini in sequenza a conferma che Titino sta caricando il programma su Arduino; - Al termine del caricamento verrà inviato un messaggio per informare sull’esito del caricamento. - Riabilitare la rete con il comando NET_START=ALL; Le funzioni di Stop della rete sono utili quando bisogna caricare un programma su un Arduino. In questa fase infatti i dati che transitano sulla rete, interferirebbero con i dati dello sketch. http://www.titino.eu email: [email protected]