MECCANICA e DINTORNI
http://meccanicaedintorni.morpel.it/phpbb/

Cassaforte e arduino
http://meccanicaedintorni.morpel.it/phpbb/viewtopic.php?f=16&t=30718
Pagina 1 di 2

Autore:  Davide Resca [ sab apr 15, 2023 11:04 ]
Oggetto del messaggio:  Cassaforte e arduino

Salve a tutti , vi presento il mio primo progetto con arduino
Allora ... correva l'anno 19... quando la cassaforte a muro marca Thema , a casa di mia moglie si è licenziata ! o per meglio dire , mia moglie (santa donna) era convinta che dentro ci fosse una pastiglia di plutonio al posto di una pila da 9V cosicchè , non usandola quasi mai , un giorno mentre cercava di aprirla, la pila scarica ha incasinato il processore e fine della festa :muro:
Fortunatamente la pila non era proprio scarichissima così la cassaforte si è "quasi aperta" , ma non del tutto, per un paio di mm i due cilindri di acciaio sono rimasti incastrati nella chiusura impedendone l'apertura completa.
Contattato l'assistenza ci è stato chiesto una cosa come 400 euro senza garanzia di successo ed in tal caso, rottura del muro con estirpazione della cassaforte completa ... insomma un bordello !!!
Metto una foto, come si vede l'elettronica pilota un motore con riduttore che fa scorrere i cilindri a cui è collegata una C che pilota due switch di fine corsa, la batteria scarica ha causato l'arresto del motore a "metà strada" con i due swich entrambi aperti e ciò ha causato l'empasse al microprocessore che non è più ripartito neanche fornendo l'alimentazione esterna che è possibile appoggiando la pila direttamente sulla tastiera.

Autore:  Davide Resca [ sab apr 15, 2023 11:05 ]
Oggetto del messaggio:  Re: Cassaforte e arduino

Non vi dico come ho fatto ad aprirla anzi no , ve lo dico :risatina:
1) ho staccato la tastiera adesiva e , con molta calma, sono riuscito a sfilarla da una apertura dello sportello di dimensioni 40 x 5 mm idonea a fare passare il connettore della tastiera che è flat.
2) ho smontato una telecamera di quelle a filo con usb per ispezioni e il solo ccd era di 4mm di diametro :mrgreen: e , dopo due ore di contorsionismo sono riuscito ad individuare i capi di alimentazione del motore ( ed anche a capirne il funzionamento ) .
3) mi sono costruto due clip in acciaio armonico che attraverso la ferritoria e con l'uso di solo due mani :risatina: ho agganciato al motore da li è stato facile portarlo a completa apertura .
Una volta in mano ho capito che l'elettronica era andata ed ho deciso di fare un tentativo con arduino ( dopo tanti esperimenti qualcosa di utile ) :mrgreen:

Autore:  Davide Resca [ sab apr 15, 2023 11:08 ]
Oggetto del messaggio:  Re: Cassaforte e arduino

Ovviamente non essendo una tastiera commerciale adatta ad arduino mi sono dovuto rilevare tutte le connessioni da cui poi disegnare lo schema elettrico nel frattempo ho iniziato ad imbastire un programma montando tutto su breadboard.

Il codice lo posto qui caso mai dovesse servire a qualcuno è commentato quindi basta aggiungere o togliere quello che non serve.
Al riguardo alcune considerazioni:
1) ho realizzato quella che viene definita una macchina a stati, cioè un loop dove a seconda di quello che succede viene indirizzato una particolare sequenza di comandi a se stanti, per poi ritornare in attesa di un evento . ( il tutto senza l'uso degli interrupt )
2) ho inserito alcune funzioni particolari come in caso di batteria scarica (scarica inteso come poca alimentazione per fare muovere il motore) un led rosso presente sulla tastiera lampeggia con 4 blink corti ed uno lungo e non succede nulla ...
3) se il motore si dovesse fermare a metà tra i due finecorsa , una volta messa la pila nuova la cassaforte si chiude in automatico e per aprirla ci vuole il codice .
4) dopo varie prove , anche mantenendo l'arduino al minimo del funzionamento con 5-8mA di assorbimento la batteria si sarebbe scaricata nel giro di qualche mese e , non potendo prevedere una alimentazione o una ricarica della stessa dalla rete data la sua posizione nel muro, ho optato per alimentarla direttamente dalla tastiera appoggiando la batteria sugli appositi connettori.
5) per aprire la cassaforte si deve inserire il codice e premere il tasto C , se si perde troppo tempo durante l'inserimento o si sbaglia il codice non succede nulla e il led rosso lampeggia , se tutto va a buon fine si accende il led verde e la cassaforte si apre.
6) per la chiusura basta alimentarla e premere il tasto R
7) ho inserito un cicalino per la conferma della pressione dei tasti

Al momento la pw è fissa e viene scritta direttamente durante la programmazione , lo so è un po' una ciofeca, ma per quanto abbia smanettato non sono riuscito a creare una routine che all'accensione mi leggesse da eeprom il codice memorizzato e all'occorrenza poterlo cambiare con relativa scrittura su eeprom ... la mia ignoranza in merito è ancora abissale , quindi se qualche anima pia avesse voglia di mettere mano al codice per inserirla gliene sarei grato oltre ad imparare qualcosa

Autore:  Davide Resca [ sab apr 15, 2023 11:09 ]
Oggetto del messaggio:  Re: Cassaforte e arduino

Per il pilotaggio del motore che è in cc occorreva un ponte ad H , dopo varie prove con componenti tradizionali e grande ingombro ho acquistato per una manciata di euro questi moduletti di 20mm x 20 adatti alla bisogna
https://www.amazon.it/gp/product/B07VSG ... UTF8&psc=1

Autore:  Davide Resca [ sab apr 15, 2023 11:15 ]
Oggetto del messaggio:  Re: Cassaforte e arduino

Alcune foto dello schema e della fresatura del PCB

Autore:  Davide Resca [ sab apr 15, 2023 11:20 ]
Oggetto del messaggio:  Re: Cassaforte e arduino

video del collaudo :mrgreen:



https://www.youtube.com/watch?v=103SCSd3j84

Autore:  lelef [ sab apr 15, 2023 13:05 ]
Oggetto del messaggio:  Re: Cassaforte e arduino

ti iuterei volentieri m,stesso problema dei fle trattamenti galvanici ,non me lo apre...

Autore:  Davide Resca [ sab apr 15, 2023 13:14 ]
Oggetto del messaggio:  Re: Cassaforte e arduino

Prova ora , ho messo anche il sorgente arduino con estensione txt da rinominare in "ino"

Autore:  lelef [ sab apr 15, 2023 14:00 ]
Oggetto del messaggio:  Re: Cassaforte e arduino

ho smanettato su una tastiera blutooth per programmi navigazione su android che ha funzioni simili, la versione che ho modificato e`per andare a bateria, il consumo e`un problema, usi la libreria Keypad bella ma consuma, bisognerbbe mandarlo in sleep che non so neanche se arduino puo`farlo...
in quel progeto ho usato una versione di esp32 a bassissimo consumo, gestisce le batterie lipo e la loro ricarica via mini usb`potresti optare per quella, il codice ti cambia poco o nulla
col bluetooth sempre attivo ma versione basso consumo una 800mah dura 72 ore si poteva far meglio ma che cavolo guida 72 ore i fila in moto in off? quindi ok cosi
poi se usi un esp e vuoi giocare questo ti puo`inviare una mail se provano ad aprirti la cassaforte puoi fissare degli orari a cui puo`essere aperta ed altri no, aggiorna lòra con i server ,la ersione dim potrebbe anche inviarti sms o telefonarti ,la versione cam potrebbe pure inviarti la foto o il filmato di chi sta aprendo o provando ad aprire la cassaforte.
Son giochini vedi tu.
per la eeprom, arduino da ide non puo`cricare i valori in memoria, l esp si, si potrebbe, la libreria Keypad ha anche la funzione longpress, quindi mettiao che tieni premuto 30 sec un pulsnte a tua scelta ecco ti scrive il codice emrgenza per aprirla e poi se vuoi fai in modo di programmare un altro codice o codici diversi per piu`persone se serve.
il longpress o un contato a parte sulla scheda potrebbe servire giusto per aggirare il problema inizializzazione memoria.
Be`dimmi come vuoi procedere eti passo qualche blocco alla bisogna

Autore:  Davide Resca [ sab apr 15, 2023 16:27 ]
Oggetto del messaggio:  Re: Cassaforte e arduino

Che fai guardi solo le figure ? :risatina:
si arduino può andare il sleep, ma non è comunque sufficiente per la durata della batteria... cos' invece si alimenta all'occorrenza e bon.

Premetto che la cassaforte era già presente in casa quando l'abbiamo acquistata e non ci teniamo nulla se non un ciondolo di mia moglie regalatogli da suo padre (morto giovane ) , va da se che tutte le robe tecnologiche che hai elencato non mi interessano, anche perchè ho già fatto il circuito stampato e non vedo l'ora di montarla così riprendo a giocare con i miei giochi :mrgreen:

Era più un esercizio di stile, perchè mi rompe i cocommeri non essere in grado di memorizzare su eeprom quattro dati in croce, McMax sull'ELS ha memorizzato il mondo ...

Interessante la funzione long press della keypad, non la conoscevo , devo imparare a leggere di più tutte le potenzialità delle librerie , cosa a cui non sono abituato a fare

Autore:  lelef [ sab apr 15, 2023 18:19 ]
Oggetto del messaggio:  Re: Cassaforte e arduino

si, tutte le frociate le ho elencate perche`e`sbalorditivo quel che certi mnisistemini riescono a fare e con poco codice
per la eeprom ci son tanti esempi anche facili, non impazzerei troppo e poi che dati memorizzi?, un pezzetto memoria per ogni numero, senza star li`a comprimere ecchai una valanga di spazio.
h volendo sente anche il doppio click

Autore:  McMax [ dom apr 16, 2023 23:52 ]
Oggetto del messaggio:  Re: Cassaforte e arduino

Davide la EEPROM da usare é una cagata, adesso però son cotto, se hai pazienza domattina te la spiego per bene. Inizia a scaricare la libreria EEPROM :risatina:

Autore:  Davide Resca [ lun apr 17, 2023 12:04 ]
Oggetto del messaggio:  Re: Cassaforte e arduino

Si max , Tranquillo non ho fretta , perchè ho risolto con la programmazione direttamente su arduino .
Come ho detto diventa solo una questione di stile perchè l'ignoranza mi rompe le palle... :risatina:
ho provato con put e get ma niente, il dato non me lo vede e non riesco a capire se è perchè devo prima trasformarlo in stringa e poi in numero oppure basta come carattere stringa che poi non riesco a concatenare :oops:

Autore:  lelef [ lun apr 17, 2023 12:31 ]
Oggetto del messaggio:  Re: Cassaforte e arduino

https://www.lombardoandrea.com/scrivere ... i-arduino/
https://www.meccanismocomplesso.org/la- ... ermanente/

il codice apertura l`hai messo come stringa, un po`scomodo se vuoi usare un codice inseribile da utente ed un po`scomodo da leggere o memorizzare in eeprom, codice a N numeri, usa N dati byte o un array indicizzato se vuoi fare il brillante ma, le stringhe se non necessarie sono una rottura

Autore:  McMax [ lun apr 17, 2023 12:49 ]
Oggetto del messaggio:  Re: Cassaforte e arduino

quoto lelef, lascia stare le stringhe in EEProm che sono una enorme rottura di palle.
Questo è quello che faccio io per salvare i dati del ELS.
Ti metto solo un paio di dati come esempio per non incasinarti troppo.


Codice:
void WriteToEEPROM()
   
{
  EEPROM.put(0, one_turn_mandrel_steps); 
  EEPROM.put(2, screw_pitch);           
  EEPROM.put(6, one_turn_screw_steps);   
}

void LoadFromEEPROM() //Loads the parameters from the EEPROM and put them in the proper variables
{
  EEPROM.get(0, one_turn_mandrel_steps); 
  EEPROM.get(2, screw_pitch);             
  EEPROM.get(6, one_turn_screw_steps);   
}


lui tratta tutte le variabili come blocchi da 1 singolo byte pertanto devi sapere quando occupano in modo da sapere dove scrivere i dati successivi e soprattutto dove andarli a leggere.
la variabile "one_turn_mandrel_steps" è uint16_t quindi 2 byte, scrivendola sulla cella 0 con l'istruzione "EEPROM.put(0, one_turn_mandrel_steps); andrò ad occupare 2 byte pertanto la prima cella disponibile sarà all'indirizzo 2 (0+2 = 2). La successiva variabile "screw_pitch" è invece di tipo float ed occupa quindi 4 byte, se vedi infatti la terza variabile la vado a salvare nella cella 6 (cella di partenza di "screw_pitch" è 2, + 4byte andiamo alla 6). e così via.
La stringa non ho mai provato con arduino ma in genere funziona solo che devi considerare un carattere in più che è il fine stringa.
Attenzione che quando le vai a leggere sono singolo byte quindi con l'istruzione EEPROM.get(cella, variabile); lui va a leggere tanti byte quanti sono quelli occupati dalla variabile in cui li va a mettere. Ricordati bene questo concetto: una volta che hai salvato in EEPROM ti ritrovi con una sequenza di byte fini a se stessi, lui non sa più di che tipo era la variabile da cui li hai presi, sei tu che ne devi tenere memoria altrimenti quando vai a leggere fai un casino.

Pagina 1 di 2 Tutti gli orari sono UTC +1 ora
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/