ArduoAlarmMega / ArduoMegaAlarm

:slight_smile:
Dopo più di un anno, rieccoci con l'evoluzione del progetto ArduoAlarm.

Matteo, qualche giorno fà mi scrive:

Ho visto il suo progetto arduoalarm, ho trovato notizie fino al 2012 per caso siete andati avanti? Posso unirmi?

Perchè no!

Da quì abbiamo cominciato a pensare come sviluppare il nuovo progetto, che in sostanza sarà l'evoluzione del vecchio, ma con l'utilizzo di Arduino Mega.

Credo che con questa base HD non ci siano per un pò vincoli legati ai pin fisici, per il resto sarà tutto da definire.

Che ne pensate?

Volete unirvi anche Voi ?

Il progetto sarà totalmente OPEN SOURCE, come il predecessore.

C'è bisogno di qualsiasi info, che possa aiutare a sviluppare l'intero progetto, a partire dal software da utilizzare per lo sviluppo HD ed eventualmente, il SW per la configurazione della centrale, che questa volta sarà un pò più sofisticata della precedente.

Per gli interessati, aspetto un Vostro riscontro e consiglio.

Un saluto a tutti.

Giuseppe G. :wink:

Ciao,
ho provato a compilare la versione 0.4 con le librerie allegate e sull'IDE 1.0.3 da errori dovuti all'aggiornamento delle funzioni del core di Arduino.
Credo che sarebbe un'ottima cosa renderla compatibile con i nuovi IDE. (1.0.3 e 1.5.2)
Forse è sufficiente aggiornare le librerie. :wink:

EDIT:
Compila!!

Ho sostituito

lcd.write(0);

con

lcd.write((byte)0);

cancellata la libreria LiquidCristal perchè è già presente nell'IDE
e aggiunti nei file Time.cpp, TimeAlarms.cpp e AnalogButtons.h
al posto di

#include <WProgram.h>

il codice

#if defined(ARDUINO) && ARDUINO >= 100
      #include "Arduino.h"
#else
      #include "WProgram.h"
#endif

Dimensione del file binario dello sketch: 15.196 bytes (su un massimo di 32.256 bytes)

P.S.
Per il menù c'è la liberia MenWiz di Brunalti.

x iscrizione

Ho una certa esperienza con Eagle e posso sviluppare schemi e PCB.

Può servire questa mia esperienza oltre ad una buona conoscenza del MEGA?

:stuck_out_tongue_closed_eyes:

Tutti sono ben accetti !!!!

"L'iscrizione alla partecipazione" si può effettuare lasciando un post su (http://www.arduoalarmmega.blogspot.it) con il Vostro nome o nikname ed indirizzo E-Mail.
Verrete poi contattati per decidere insieme come portare avanti il progetto.

Partiamo dal presupposto che che sia tutto da inventare incominciando dal tipo di HD.

Dopo aver definito che si userà il MEGA 2560, si suppone di utilizzare un display LCD, una tastiera (analogica o multiplex), un altoparlante per segnalazioni audio.

Questo penso sia la base di partenza.

Un esempio su cosa discutere, prima di partire con la programmazione:

Abbiamo bisogno di ingressi filtrati o addirittura optoisolati e altrettanto per le uscite.
L'HD di ArduoAlarm, lo avevo testato con un generatore di onde per la compatibilità elettromagnetica, e lo aveva passato alla grande.
Mi sembra un pò esagerato l'optoisolatore, ma garantisce la protezione del micro.

E così via.......

Quindi definiamo per prima cosa il SW per creare lo schema elettrico che potrebbe essere Eagle, puchè si trovi la versione completamente Free, essendo questo un progetto OPEN, che potrà essere scaricato da tutti in un punto ben specifico.

L'IDE lo abbiamo tutti o comunque si sà dove reperirlo.

Chi possiede simulatori SW (per arduino) è ben accetto, visto che dovrà verificare il firmware.

Pensavo di fare una programmazione a registri, dove ad esempio il registro 0015 sarà il codice di accesso di un operatore o il registro 0116 il tempo di uscita per l'attivazione, i quali verranno mantenuti su eprom.

L'idea di usare il menu MenWiz può andare, bisogna vedere come integrarlo su di in display a 2 righe 16 caratteri.

Insomma..... :stuck_out_tongue: Vi piace l'idea ?

Se il Display 16x2 sta stretto ci sono anche più grandi; senza dover passare a quelli grafici che complicherebbero il codice.

per HD che intendi ? vuoi dire HW ?

stiamo parlando di uno standalone con 2560 ? Quanti sono in grado di saldarlo ?

Secondo me funziona anche il 328P in standalone con opportuni multiplex via I2C; oppure se proprio si vuole la mega, utilizzare il metodo di ER ovvero prevedere la piedinatura e incastrare la mega capovolta.

Salve ecco il colpevole:)
Premetto che sono un appasionato e alle prime armi con Arduino, lavoro nel campo dell'informatica e sto leggendo il più possibile
Cmq volevamo basarci su un Arduino Mega 2560 in quanto meno restrittivo.
Rinnovo i saluti a tutti

paolo cosa e' questo metodo ER ? hai un link ?

ciao Guforil, intendi fare una standalone 2560 o implementare un progetto con arduino mega dentro ?

Intendo questo:

Un pcb su dove inserire la scheda come quella fatta da ER dei Vicenza Thunders.

ok, resta sempre un accrocchio pero', vuoi mettere uno standalone ? :slight_smile:

StandAlone forever...

e visto che il 2560 e' problematico, c'e' sempre il 644 o 1284

Al di la della scelta se standalone 2560, ATmega1284/644 o altro, io sono disponibile per disegnare lo schematico con Kicad e creare anche il PCB e simulare pezzi di circuito con LTSpice.

Di allarmi non ne capisco molto, quindi non ho idea circa le funzioni che deve avere e di conseguenza non mi pronunzio.

Per la progettazione posso dire che si possono usare più microcontroller piccoli tipo attiny, 168, 328 ecc per distribuire le funzionalità, oppure concentrare il tutto su un unico micro.

Per il software nel caso di unico micro, consiglio di fare attenzione al software che dialoga, alcune librerie possono bloccare il codice, in attesa di un cambio di stato, e non si risolve usando gli interrupt pinchanged perchè l'interrupt scatterà ma al termine della funzione utente agganciata all'interrupt l'esecuzione riprende dal punto di interruzione che se è quello del blocco non si avrà l'intervento della sirena ecc. Si può risolvere usando le librerie modificate per essere non bloccanti.

Tanto per dire:
Più microcontroller es, il 644 riceve dei comandi dal micro della tastiera/display con l'obbiettivo di mettere il 644 in modo interattivo o isolato. In modo isolato il 644 non comunica con il display/tastiera ma testa solo gli input di allarme e esegue le routine di gestione. Il 644 periodicamente cambia stato di una porta con l'obbiettivo di comunicare lo stato in cui si trova al display.

In questo modo non c'è possibilità in assoluto di bloccare il 644 quando è in modalità isolato. In tal caso il micro della tastiera/display deve anche servire come abilitatore disabilitatore. Per passare da modo interattivo/isolato basta un pin sotto interrupt commutato x volte dal display. Senza considerare che con allarme inserito quando la password è nel micro display/tastiera inserendo la password sbagliata non andremo a disturbare il 644 che sta sorvegliando.

Nota che anche la scrittura/lettura in eemprom interna può essere bloccante, bisogna evitare che accade.

Però dal momento che il codice è open sorces bisognerebbe fare la contrattazione del codice crittografico in automatico tra il micro tastiera/display e il 644, ma ne possiamo fare a meno se c'è il tamper e qualche altro accorgimento nel vano di allogio della scheda.

Ciao.

io metterei come rperogativa il fatto che debba essere senza fili, nessuno puo' permettersi di sfondare casa per sistemare una decina di sensori

Testato:
io metterei come rperogativa il fatto che debba essere senza fili, nessuno puo' permettersi di sfondare casa per sistemare una decina di sensori

Solitamente di base le centraline commerciali offrono connessioni filari verso i sensori e c'è un modulo aggiuntivo che si innesta sulla scheda principale per fornire funzionalità wireless. Questa sicuramente da un grado di libertù maggiore che avere tutto su una scheda, perchè il modulo wireless potrebbe subire modifiche senza intervenire sulla scheda madre.

Ciao.

Ok.... cominciamo. :cold_sweat:

Così, almeno si sà di cosa si stà parlando. :stuck_out_tongue:

Primo prospetto delle caratteristiche di base:

  • Main Board ArduinoMega 2560
  • doppia Alimentazione (rete/Batteria tampone) con controllo carica batteria automatico
  • display lcd (preferibile minimo 20x4)
  • tastiera PS2 (quella dei PC) o dedicata multiplex / analogica
  • buzzer / sirena interna
  • 16 Ingressi filari (multingresso impulsi o bilanciati con tamper 24h)
  • 32 ingressi radio (sensori e radiocomandi con controllo anti jumming)
  • ritardi ingressi, uscite configurabili
  • 2/4 zone composte da più sensori
  • 16 utenti
  • 2 ingressi dedicati per le chiavi meccaniche
  • 8 uscite completamente configurabili (sirena, lampeggianti, comando combinatore, etc..)
  • protezione del sistema sotto password
  • almeno ultimi 256 eventi su rom con spool automatico
  • autoattivazione / disinserimento ad orario, quindi eventualmente RTC inclusa
  • programmazione da PC con software dedicato
  • parametri di configurazione su eprom
  • etc......

Cominciamo dallo stadio di alimentazine.

Occorre prevedere l'utilizzo di una batteria tampone da 12Vdc 5-7a, quindi trasfo da 15Vac 30Va per garantire almeno 2A.
Da dedicare almeno 2 pin di arduino (n.1 outdigit e n.1 inanalog)

Qualcuno ha idee o si utlizza il vecchio circuito di ArduoAlarm con qualche modifica? :roll_eyes:

:slight_smile:

Ecco la bozza dello stadio di alimentazione.

Un saluto a tutti.
Giuseppe G.

Non vedo perchè cambiare ciò che ha dimostrato di funzionare.

Questo circuito andrebbe su scheda separata?

Ciao.

strano schema,
perche' la lampada ?
i 13,8v credo tu non li raggiunga ne' con tensione di rete presente ne a batteria