Ciao a tutti!
Per una volta non scrivo per un mio assurdo progetto, ma per aiutare un mio amico in un idea che mi ha lanciato..
In pratica a casa sua ha una basculante elettrica, che si apre e si chiude tramite un classico telecomando.. La sua idea era di rendere il tutto automatico.. Ovvero quando arriva la macchina la basculante si apre, aspetta che la macchina sia entrata, e la chiude.. Viceversa quando deve uscire la basculante da sola si apre, aspetta che esca, e si chiude..
Ho cercato di farmi un idea su come potessi farla..
In macchina un arduino collegato al telecomando.. Tramite un relè chiude e apre il collegamento al bottone del telecomando e simula la pressione.. Il tutto collegato via bluetooth ad un altro arduino in casa, che trasmette vari dati all'arduino in macchina..
Quando il bluetooth in macchina rileva quello in casa preme il pulsante, la basculante si alza, tramite un finecorsa capisce quando è alzata completamente ed invia il dato all'arduino in macchina.. Oltre al finecorsa in casa ci volevo piazzare anche un sensore che capisse quando sta passando la macchina, e una volta che è passata completamente invia il dato all'arduino in macchina, che preme il pulsante e fa chiudere la basculante..
Questa è la mia idea... Prima di tutto chiedo a voi se sta in piedi e se si può realizzare abbastanza facilmente, o se posso modificarla/integrarla..
Seconda cosa.. Ho già "testato" quanto detto sopra, ma in maniera approssimativa.. Ho collegato il telecomando ad arduino, e per dirgli se la macchina c'è e se la basculante è aperta ho usato un semplice interruttore.. Invece per rilevare il passaggio della macchina ho usato gli ultrasuoni, ma sono molto instabili.. Pensavo di usare una barriera infrarossi o laser, ma non so che componenti prendere..
Per ora mi fermo qua.. Avrei altre mille domande, ma prima aspetto una vostra risposta sulla fattibilità della mia idea..
Grazie mille
l'idea sembra simpatica, ma ciò non toglie che sia comunque assurda (IMHO): tutto questo lavoro per evitare di premere un tasto sul telecomando.
una cosa non mi è chiara:
cosa impedisce alla basculante di riaprirsi una volta che l'auto è entrata (il sensore sull'auto sta comunque entro la portata del ricevitore di casa).
ma anche:
come fa la porta ad aprirsi da sola quando è ora di uscire? ci vorrebbe un altro sensore da collegare al cervello del tuo amico ] (scherzo ovviamente)
Eh.. so che è assurda, ma è un idea che vogliamo realizzare.. E' sempre comunque "allenamento"
Comunque, siccome è l'arduino interno alla macchina che invia il comando di apertura, ho scritto lo sketch in modo che una volta avviato l'arduino esegue i comandi di apertura, attesa, e chiusura, e poi va in un loop infinito non eseguendo piu niente.. Finchè non lo spegni e riaccendi, e ricomincia da capo.. Siccome l'arduino sarà collegato ad una usb presente in macchina, quando la macchina si spegne, si spegne pure arduino.. E viceversa quando si accende si riaccende anche arduino..ed essendo in casa significa che deve uscire, quindi si aprirà..
in questo caso, almeno in teoria dovrebbe funzionare come vorresti, non ci vedo grosse difficoltà.
perchè dici che gli ultrasuoni sono instabili? potrebbero fallire al passaggio, ma se invece di posizionarlo a mo' di fotocellula lo posizioni sopra l'auto, sul soffitto del garage non dovrebbe dare problemi. l'unica noia e che deve essere costantemente alimentato e letto.
in alternativa puoi usare un laser (tipo puntatore da 5mW) e una normale fotoresistenza come rilevatore.
Avevo inviato già una risposta, ma non so perchè non è partita...
@Brunello, può disattivare l'apertura agendo su un interruttore.. Se non vuole entrare basta che sposta la levetta sull'interruttore e l'arduino non fa niente..
@ricdata, sono instabili perchè durante i test mentre passava la macchina me l'ha rilevata, ma per un secondo ho ricevuto una distanza maggiore di quella reale, e quindi la basculante si è chiusa.. In quel momento c'ero io che l'ho subito bloccata, ma se capita mentre non ce nessuno che può bloccarla cade dritta sulla macchina! Quindi deve essere qualcosa di precisione.. Deve dirmi con certezza se la macchina sta passando o è già passata..
Comunque con gli ultrasuoni non sempre ricevevo la misura corretta della distanza tra loro e il muro dall'altra parte.. Vacillava spesso, ma non di pochi centimetri, a volte anche di un metro..
Per quanto riguarda l'apertura, io ho semplicemente collegato il telecomando ad uno di quei tasti vuoti sul cruscotto che sono in tutte le macchine e il telecomando è nel cofano del motore dove non lo vede nessuno. Molto più comodo, non c'è pericolo che quando parcheggi davanti casa ti si apre il garage o cose del genere e il tasto è sempre a portata di mano (oppure alla moto l'ho collegato alla freccetta destra così basta mettere quella per aprire il garage). Per la chiusura puoi usare dei semplici led a infrarossi (pochi euro) collegati con Arduino direttamente al motore del garage. Dovrai smanettarci un pochino. Magari puoi semplicemente collegarti al filo del ricevitore del e simulare di aver premuto il tasto del telecomando. Eviti l'Arduino in macchina e due moduli Bluetooth.
Via software di potrebbero eliminare le false letture, facendo partire la chiusura della porta solo dopo due o tre letture consecutive del sensore.
Oppure posizionando il sensore in fondo al garage, in modo che rilevi la presenza dell'auto solo dopo che è completamente entrata e quindi fuori dal raggio d'azione della basculante.
Non è il punto di mettere un pulsante da qualche parte.. Non ha problemi a premere il pulsante del telecomando per aprire o chiudere.. Semplicemente siccome ha il telecomando mezzo rotto, è uscita l'idea che gli sarebbe piaciuto una basculante che si apre da sola, e a me è venuto in mente di usare arduino.. E' più un esperimento che una necessità, ma se riuscissi a portarlo a termine non mi dispiacerebbe..
Comunque ho scoperto appena adesso questo http://memeduinos.oodlesofmedia.com/2012/08/25/arduino-standalone-su-una-mini-breaboard/.. Quasi quasi invece di comprarmi altri 2 arduino, mi prendo solo 2 atmega e uso tutorial per crearmi due arduino.. Cosi risparmio, e mi esce una cosa piccolina..
Seconda cosa.. Non esiste un altro modo per trasferire i dati da un arduino all'altro, senza fili, e che abbia la stessa distanza del bluetooth? (ma che ovviamente sia più economico).. Alla fine devo rilevare la vicinanza tra i due, e trasferire solo una stringa contenente 3/4 caratteri booleani, quindi non deve essere chissà cosa di potenza..
Per rilevare l'auto ho avuto una mezza idea, che ho letto ieri in giro, di usare i laser e una fotoresistenza.. Ma ho visto che è difficile posizionarla correttamente, ed assicurarsi che le letture corrispondano alla realtà.. comunque penso sia meglio degli ultrasuoni!
E' difficile posizionare il sensore in fondo al garage, perchè dovrei tirare 7/8 metri di filo.. Già non so quanto sia ottimo tirare 3 metri di filo per passare da una parte all'altra del muro..
lo svantaggio del laser è che, visto che ti scoccia passare i cavi, dovrai passarli da entrambi i lati, tx e rx.
non ho idea di come sia fatto questo garage, ma secondo me gli ultrasuoni sono il sistema più semplice che puoi usare.
oppure, potresti usare una coppia di fotocellule da cancello automatico.
se vuoi risparmiare e miniaturizzare ancora di più il tuo progetto potresti usare anche gli attiny84/44 al posto dell ATMega 328 standalone.
per la comunicazione senza fili ti posso consigliare gli NRF24L01+: lavorano in banda libera a 2.4GHz, hanno la stessa portata, se non qualcosa in più dei bluetooth, li puoi usare sia con arduino, atmega o attiny, ci sono librerie ed esempi per ognuno e se hai la pazienza di aspettare, comprandoli in china li prendi anche a meno di 1 euro l'uno. comprando in italia 3-4 euro. li trovi su ebay.
se ti servono maggiori indicazioni a riguardo ti posso postare qualcosa (ci sto lavorando anche io).
se dicidi per questi moduli potresti anche fare tutto wireless togliendoti il problema del passaggio dei cavi: con 3-4 euro di materiale ti fai un sensore, attuatore o quello che vuoi (con 3-4euro non ci compri neanche il cavo).
Proverò a lavorare sugli ultrasuoni allora.. vediamo se riesco ad evitare misure fallate..
Oddio, penso che un atmega328 sia già abbastanza piccolo per come devo farlo io.. Anche perchè la parte più grossa è il telecomando della basculante, quindi anche se realizzo un circuito piccolo avrò sempre la dimensione più grande.. Quindi anche se uso un atmega328 fa stesso.. Comunque terrò presente gli attiny per un mio progetto futuro, mi torneranno sicuramente utili!!
Per gli NRF24L01+ non so che dirti.. a occhio mi sembra una scelta migliore, ma devo contare il range.. La mia idea è che una volta che i due arduino si rilevano a vicenda, si attivino e comincino a fare quello per cui sono programmati.. Se si rilevano ad una distanza troppo alta invia il comando di apertura, ma me la apre mentre sono troppo distante, oppure invia il comando ma non riesce ad arrivare fino alla basculante, quindi viene tutto annullato.. Sarebbe ottimo sennò, da quello che ho capito (programmazione a parte che attualmente non so come inviare i comandi) riesco a rilevarlo ed inviare i comandi meglio del BT.. visto che su quest'ultimo dovrei lavorare sui pin AT per permettergli di rilevare/inviare...
Se si rilevano ad una distanza troppo alta invia il comando di apertura, ma me la apre mentre sono troppo distante,
non è un problema, si possono impostare 4 diversi livelli di potenza di trasmissione e tre diversi baud rate: trovando la giusta combinazione tra questi due fattori puoi variare la portata radio da pochi metri a quasi un kilometro (senza ostacoli)
la cosa migliore è prenderne un paio e provarli.
se intanto vuoi dare un'occhiata alla programmazione butta un occhio sulle librerie RF24 o Mirf (io sto usando la Mirf, che non è la migliore, ma funziona sugli attiny)
Oddio, penso che un atmega328 sia già abbastanza piccolo per come devo farlo io
sì certo, ma secondo me prendere un 328 per utilizzare 3-4 pin è uno spreco, è come prendere una ferrari per andare a buttare la spazzatura sotto casa e anche qui il rapporto di prezzo è di quasi 4:1
Ahah e chi ti dice che io non usi una ferrari per buttare l'immondizia!?
Comunque dai, provo a dare un occhiata.. Puntavo molto anche sull'atmega328 visto che potevo prendere tutto da un unico venditore.. Vedo che trovo!!
Per il NRF24L01+ ho già trovato dove acquistarlo, in italia, 5 euro 2 moduli.. Non è proprio 1 euro, ma può ancora andare IMHO.. Vedo di stilare una lista delle cose che mi servono ed entro settimana prossima acquisto.. Intanto vado avanti a test con i materiali che ho.. domani provo a sistemare gli ultrasuoni!
PS. ma con il NRF24L01+ posso pure collegarmi al wifi di casa?
Cosa cambia sostanzialmente da un attiny44 a un attiny84?? Perchè li ho trovati tutti e due su ebay, ma per il 44 vengo a pagare 8,75 di 5 pezzi, invece per l'84 vengo a pagare quasi 12 euro sempre di 5 pezzi.. Se è uguale a questo punto prendo il 44!!
Comunque, per usare un attiny devo fare i collegamenti con gli stessi componenti che uso per gli atmega (ovvero quarzo, condensatori, ecc..)? Posso usarlo anche staccato da arduino uno giusto? Ovunque sul web vedo che resta colegato anche per eseguire il semplice blink..
ce la potresti fare anche con un 44. nel sensore che sto realizzando, molto simile al tuo, tutta la parte di codice per i moduli radio più qualcos'altro mi occupa circa 3,4K, ma se vuoi andare tranquillo prendi l'84.
il quarzo non è indispensabile, serve solo se vuoi lavorare a 16MHz, ma per la tua applicazione puoi lavorare anche a 8 o 1MHz con l'oscillatore interno. in questo modo hai anche un minor consumo di corrente che può essere vantaggioso nel caso volessi alimentare a batteria.
se ti serve una buona guida dalla A alla Z per gli attiny la trovi qui http://www.leonardomiliani.com/2013/guida-allutilizzo-dei-micro-attiny-con-lide-arduino-1-5-x/
Posso usarlo anche staccato da arduino uno giusto? Ovunque sul web vedo che resta colegato anche per eseguire il semplice blink..
ovvio che sì. lo vedi collegato perchè molto probabilmente ci prende l'alimentazione dall'arduino.
Molto molto utile questa guida, ti ringrazio!! Mi si è aperto un nuovo mondo
Per qualche euro in più comunque prendo gli 84.. Anche perchè 2 lo uso per questo progetto, i rimanenti 3 potrebbero servirmi per altro in futuro!
Curiosità.. Io ho un quarzo da 20Mhz.. se ci collego quello potrei far lavorare l'attiny a 20Mhz?? Se si, che vantaggi avrei?
Inoltre.. cosa cambia dal costruirsi un arduino in questo modo, che prenderlo già fatto? Oltre alla comodità di avere tutto pronto, quello già fatto ha prestazioni/vantaggi maggiori?
Curiosità.. Io ho un quarzo da 20Mhz.. se ci collego quello potrei far lavorare l'attiny a 20Mhz??
sì, 20mhz è il limite massimo di clock per gli attiny.
Se si, che vantaggi avrei?
lo sketch verrebbe eseguito più velocemente. nel tuo caso specifico però non ti porterebbe nessun vantaggio tangibile poichè lo sketch è semplice e non ha bisogno di elevate velocità di esecuzione.
è utile lavorare con parecchi mhz quando ci sono da controllare molti ingressi/uscite, fare campionamenti, il codice diventa complesso ecc...
cosa cambia dal costruirsi un arduino in questo modo, che prenderlo già fatto?
le board arduino sono state concepite come piattaforme di sviluppo, con le quali creare e sviluppare il codice nel modo più semplice e veloce possibile, per poi trasferire il tutto su una MCU scelta su misura per il lavoro che deve svolgere.
sulle board ci sono componenti che potrebbero non essere indispensabili per il progetto finale, tipo l'interfaccia seriale, il regolatore di tensione, l'oscillatore esterno...
poi è anche una questione di costi, un arduino UNO sta sui 20 euro, un atmega328 4-5euro.
poi ovviamente nessuno vieta di usare un arduino nel progetto finale. è una scelta personale.
il mio prof. di elettronica diceva che un buon elettronico deve saper realizzare un circuito, oltre che funzionante (ovviamente) anche con il minor costo possibile.
Quindi in pratica io potrei sviluppare un progetto con un arduino uno, e poi costruirmi una board con magari solo un atmega o attiny (in base alle esigenze), o magari con una mcu e degli altri componenti necessari per il progetto, e caricarci sopra lo sketch ed avrei la stessa identica cosa?