Archivi categoria: Elettronica

https://it.wikipedia.org/wiki/Elettronica

Arduino, il Watchdog

Giocando con Garagino ho scoperto che i carichi induttivi (leggi motori elettrici) o anche alimentatori Switching di dubbia qualità creano “spurie” che interferiscono con il corretto funzionamento di Arduino. Di fatto lo mandano in “tilt” anche se non ho ancora capito se il problema “entra” nel micro controllore dall’alimentazione (passando per 2 alimentatori switching con condensatori vari di livellamento e varistori) oppure dalla connessione i2c che uso per pilotare i relay.

Fatto sta che si inchioda e resta li, a far righette senza senso sul bel display rosso.

L’unica soluzione che sono riuscito a trovare per poterlo utilizzare un po più serenamente e’ il  Watchdog.

Questo “cane da guardia” non e’ altro che un timer che deve essere resettato ogni tot tempo dal programma in esecuzione, se questo non avviene il timer riavvia il micro controllore.

Questo meccanismo è solitamente implementato in hardware ed è presente sul microcontrollore ATMega328 cuore di arduino UNO e familia.

Per utilizzare il Watchdog bisogna inserire la libreria wdt.h

I tempi di reset del Watchdog sono:

Tempo reset Parola Chiave
15mS WDTO_15MS
30mS WDTO_30MS
60mS WDTO_60MS
120mS WDTO_120MS
250mS WDTO_250MS
500mS WDTO_500MS
1 Secondi WDTO_1S
2 Secondi WDTO_2S
4 Secondi WDTO_4S
8 Secondi WDTO_8S

Nel  setup() abilito il watchdog specificando il tempo di reset scrivendo:

In pratica se entro 8 secondi non resetto il time del watchdog questo riavvia il micro che probabilmente si e’ impallato.

Per resettarlo:

In pratica… se so’ che nessuna delle atività svolte dal programma dura 8Secondi… lo resetto ogni volta che ricomincia il loop e ciao, se si impalla si riavvia.

Beh, forse e’ meglio scegliere con piu’ cura dove posizionare il wdt reset() ma ci siamo capiti 🙂

Kicad, maledette librerie

Kicad e’ bellissimo, tranne per le librerie.

Questo e’ il mio parere, probabilmente dovuto al fatto che lo uso molto poco.

Per questo mi segno qui un paio di cose:

Il file dove si salvano i nomi delle librerie e’ fp-lib-table e su ubruttu si trova in ~/.config/kicad oltre che nella cartella del progetto.

Le mie librerie con i file per il 3d sono in ~/my-bin/kicad-lib/ e devo modificare i percorsi relativi in modo che facciano puntare li library modules e il 3D.

Utile solo per me… ma cosi non lo perdo

GaraGINO

Dopo la ristrutturazione dell’appartamento dove abito mi sono cimentato con il garage.Chi non vorrebbe un po’di domotica in garage?Ecco.

Se guardate bene noterete un ARDUINO nano, un modulo RTC, un modulo I2C attaccato al display LCD 16×2

La parte di alimentazione inizialmente era stata pensata con un semplice regolatore di tensione LM7805 ma facendo accendere tutti i relay insieme mi sono reso conto che il sistema diventava instabile e il display calava vistosamente. Poi vedrete come ho risolto.

Questo modulo creato in un contenitore da barra DIN raggruppa tutti i cavi di ingresso dai pulsanti posti sulle pareti del garage e tutte le uscite  verso gli attuatori utilizzando i miei moduli per la connessione I2C.

La connessione dei pulsanti e’ semplice, i pulsanti una volta premuti mandano a terra il piedino corrispondente.

Le uscite invece comandano un modulo 8 relay standard, ne ho scelto uno opto-isolato e ho deciso per le seguenti attivazioni:

  1. Accensione e spegnimento prese
  2. Trasformatore per strisce led
  3. che quindi alimenta le  strisce di LED lato basculante
  4.  e/o anche le strisce di LED lato bancone
  5. Le luci di cortesia cioè dei faretti.
  6. Compressore
  7. La funzione pulsante per apertura bascula
  8. Ventilatore

Dopo un po’ di prove ho optato anche per altre modifice hardware.

La prima è quella già menzionata del reparto alimentazione.

La seconda consiste nella realizzazione di un pannello di 8 led controllati anche questi  con un modulo PCF8574

Dopo di che si e’ evoluto pure il programma di gestione, sono infatti passato da un programma nato per essere semplice e snello a circa 1500 righe di codice con un utilizzo della RAM di arduino di quasi il 70%.

Al momento (non credo che la sua storia sia finita 🙂 ) fa tutto quello che mi ero prefissato all’inizio del progetto e “quasi” tutto quello che poi mi e’ venuto in mente che avrebbe potuto fare.

E’ nelle mie intenzioni fare le cose per bene, prevedo quindi pure un manuale di istruzioni 🙂

 

Stampante 3D 

Comprata con un amico in Inghilterra da uno che poi l’ha fatta arrivare dalla Cina con spesa da parte sua di circa 60€ di dogana… 

Stampa bene fino ad un decimo di millimetro. Bisogna fare però attenzione a come l’oggetto aderisce al piano. 

First PCB

image

Il primo pcb da me interamente disegnato e prodotto in ben 10 pezzi. (www.seeedstudio.com)

Il PCB in questione e’ composto da tre parti distinte ed ha la dimensione totale di 5cm x 5cm. (in foto il fronte ed il retro)

E’ pensato per essere tagliato in tre parti ed è sagomato per poterlo fare abbastanza semplicemente.

Il pezzo più grande (quello sotto con la scritta PBAVIE (ok il logo e’ da rivedere 🙂 ) permette di connettere ,anche in cascata, delle classiche schede a 8 relay alimentate a 5v con lo standard di comunicazione seriale I2C utilizzando il diffuso pcf8574. Il bello di questa schedina e’ che l’indirizzo necessario per pilotarla e’ selezionabile semplicemente muovendo le levette del  DIP switch e il cablaggio e’ irrisorio. Infatti permette di controllare 8 o più relay con 4 fili compresi alimentazione.

IMPORTANTE!!! C’e’ un errore nel design ma funziona con un piccolo ponte. L’errore e’ nell’inversione della Terra con Vcc all’integrato. Probabilmente dovuto ad un errore di sbaglio nello schema. 🙂

La parte di dimensioni intermedie e’ un interfaccia pensata per essere posta sopra alla precedente e comprende un array di transistor per poter pilotare con gli stessi 8 pin dell’integrato pcf8574 delle tensioni maggiori. Questo per utilizzare ,ad esempio, schede di relay che richiedono tensioni più elevate.

La piccolina… e’ una semplice brekoutboard per la classica presa RJ45, presa che ho deciso di usare come standard per i miei progetti che necessitano di essere connessi su distanze oltre il metro. Disegnata per avere subito a portata di mano tutti i pin in particolare le coppie inutilizzate nello standard 10-100.

 

Smart mirror

Prende lentamente forma il progetto “smart mirror “.
Il garage è veramente un gran bel posto dove provare le mie cagate.  Sulla sx smart mirror e s destra lavagna in vetro … si dovrebbe intuire qualcosa dalle foto 🙂

image

image