NodeMCU-tempi scrittura/lettura Flash per motore stepper

Ciao a tutti,
sto lavorando ad un progetto per fare un pollaio.

Per ora lo sto costruendo nel giardino,
ma poi vorrei realizzare l'apertura al mattino e alla sera usando un Nema 17
per la porticina del pollaio.

Mi stavo chiedendo pero... se per caso mentre la porta si alza oppure si abbassa,
va via la corrente, come faccio a farla tornare alla normale posizione (chiusa oppure aperta)
una volta che la corrente torna ?

Ho pensato di scrivere una variabile in un file nella Flash
ogni volta che il motore fa uno step.
Anzi... ne scriverei 2 variabili... una per il nr. di step e l'altra per la direzione della porta del pollaio.

Cosi quando torna la corrente, rilegge le 2 variabili e finisce il suo giro,
di apertura oppure di chiusura.

La domanda... perché dall'inizio la volevo fare :slight_smile:
...e se la velocità di lettura/scrittura sarà abbastanza
per fare in modo che la mia porta del pollaio si apra
e si chiuda con abbastanza velocità, nonostante
ci dovrà fare una lettura e una scrittura a ogni step.

Oppure... esiste altra soluzione per memorizzare la posizione
quando va via la corrente ?
Non so... con le tapparelle come funziona la cosa ?

Grazie a tutti
Denis

Io metterei dei semplicissimi interruttori di "fine corsa" e, all'accensione (che sia la prima o sia un riavvio NON ha importanza) faccio un "ciclo" fino a chiudere l'interruttore di "fine corsa" e da quel momento conosco esattamente la posizone.

Guglielmo

Grazie Guglielmo
...si e un bel idea, ma ho paura per troppa meccanica.

Li piu cose meccaniche ci sono piu ci sono rischi che possa succedere qualcosa.
E poi non sono un bravo smanettone per montare tutti sti switch.
Dici che le tapparelle hanno un fine corsa sia in alto che in basso ?
Oppure memorizzano la posizione da qualche parte ?

Vorrei automatizzare tutto il pollaio in modo che possa andare in ferie
per 2 settime.
Quindi apertura porticina, acqua, cibo etc...

Dici che potrebbe essere tropo lento se a ogni step leggo e scrivo un file ?

Grazie ancora
Denis

Naturalmente quoto Guglielmo

No anche il tempo di correggere...
Lo facessi apposta capirei...

Tanto poi i fine corsa ci devono essere per forza
Anche un RTC è pressoché obbligatorio
Se la setup trova nessun fine corsa premuto guarda l'ora e decide da che parte mettere la porta...

Standardoil:
Naturalmente quoto Gilberto

... deciso ... ti BANNO :stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes:

Guglielmo

Ops Guglielmo
Mi capita ogni tanto, Scusa, adesso correggo,
Invece per Denis
Troppa meccanica 2 fine corsa?
È letteralmente il minimo sindacale
Se per te è troppo lascia stare...

Standardoil:
Troppa meccanica 2 fine corsa?
È letteralmente il minimo sindacale
Se per te è troppo lascia stare…

SI, infatti, i finecorsa sono obbligatori
… se guardi come è fatta la movimentazione sull’asse Z di una stampate 3D (quelle che muovono il piano), hanno tutte un finecorsa sotto il piano per la calibrazione all’accensione !

Guglielmo

Grazie a tutti per le risposte,
anche se la risposta di Standardoil non l’ho capita molto bene.

Voi dite di mettere una roba tipo questa ?

Ok… ci devo mettere uno sopra uno sotto copie di fili che gironzolano
fra le galline… ma si puo fare.

Comunque… non sarebbe bello se la mia idea funzionasse ?
Basta accedere alla flash ogni step e memorizzare la posizione/direzione.
Sarebbero dei finecorsa virtuali alla fine.

Appena arriva il Nema 17 faccio una prova e ve lo faccio sapere
cosi… tanto per :slight_smile:

Grazie ancora a tutti
Denis

denisj:
Comunque... non sarebbe bello se la mia idea funzionasse ?
Basta accedere alla flash ogni step e memorizzare la posizione/direzione.
Sarebbero dei finecorsa virtuali alla fine.

NO, è una pessima idea e NON hai alcun riferimento iniziale (che è fondamentale) per sapere quando la "porta" è VERAMENTE in una determinata posizione.

Poi, ovviamente, fai come vuoi ... i problemi li avrai tu nel tempo ... ::slight_smile:

Guglielmo

denisj:
anche se la risposta di Standardoil non l'ho capita molto bene.

Quale parte non ti era chiara?

denisj:
Comunque... non sarebbe bello se la mia idea funzionasse ?

Tra il bello e il possibile c'è differenza
differenza che dovrebbe essere messa in chiaro dall'analisi
fase che tu, programmando un AS400, dovresti conoscere molto bene
comunque sarebbe ancora più bello se lo AS400 della mia banca avesse un bug nel calcolo degli addebiti del mio conto corrente
capito mi hai?

Be... magari (per l'AS400)
...ma poi ci sarebbe la riconciliazione e sei punto e da capo :slight_smile:

Comunque, non mi era chiara la fraze del RTC,
ma ora ho capito che e Real Time Clock Module.
Per quello magari mi prenderò il time dalla rete per impostarlo... oppure no... booo non so se mi servirà.
Gli eventi mi arriveranno via MQTT al Home Assistant che terrà gli eventi.

Ieri mi e arrivato il motorino Nema 17.
E si come oggi lavoro da casa, se non mi fanno programmare troppo comincio a giocare
... che mi prudono le mani :slight_smile:

Vi ricordo che sto progetto e solo per me... non lo devo lanciare sul mercato :slight_smile:
Quindi al montaggio della porta basta cominciare da 0 come step e dalla posizione "chiusa"
Da li in poi dovrei sapere sempre la posizione della porta tramite le 2 variabili nella flash.

Non ho ancora capito bene se la flash e piu veloce della eprom.
Anche se sembra che siano la stessa cosa alla fine dentro un Node MCU.

Mi faccio il caffe, e comincio a leggere un po di sta roba.

Vi tengo F5 :slight_smile:
Grazie ancora
Denis

Per essere molto chiari:
se ci metti i micro il progetto FORSE andrà, dico forse perchè potrebbero esserci altri problemi
se non ci metti i micro il progetto certemente non andrà
questi sono dati di fatto, non considerazioni
la considerazione invece è che se tu continui a voler mettere i micro io ne posso solo dedurre che NON tieni conto dell'analisi che non solo non sai fare, ma nemmeno comprendere
quindi io azzardo l'ipotesi che il tuo progetto non andrà nemmeno con i finecorsa, per la semplice ragione che hai dimostrato di non essere capace di pianificarlo, lasciamo stare realizzarlo
da ultimo una considerazione finale:
un fracco di gente che sa MQTT, home assistant, teorie e pratiche esoteriche, chi piu' ne ha piu' ne metta
ma un semplice microinterrutore li blocca come un fossato anticarro ferma una 126
negli anni passati abbiamo avuto (e lasciato) troppa gente a (s)parlare di nuove tecnologie, e abbiamo perso le tecnologie "vecchie, utili e necessarie" per fare le cose

Ma tu pensi veramente che tutti i progetti che sono stati pianificati sono rimasti tali ?
Ci sono scoperte, sviste, improvvisazioni e ulteriori sviluppi che si fanno quasi sempre.
Altrimenti eravamo ancora a girare il ramo nella pietra per accendere il fuoco.

Io nei miei oltre 20 anni di programmazione in varie banche ne ho visti di progetti
fatti da fior fior di analisti che hanno cambiato le carte in tavola anche oltre 10 volte dal progetto initiale.
Per di piu io stesso ho fatto grossi progetti/lavori che nel fra tempo sono stati modificati per migliorare.

Ma senza andare troppo OT... io ho già progettato il pollaio che ha la porta
d'avanti in verticale, che deve slittare su 2 binari sui fianchi.
Ti metto qui la foto cosi si capisce meglio:

Ora... dato che la porta scivola fra i binari laterali, dovrei trovare degli switch o micro come li chiami tu,
molto picoli e inserirli al interno dei binari...
perche se li metto d'avanti si vedono e non mi piace averli in vista.
Costruisco solo roba bella nel mio giardino... non sto facendo un pollaio alla montanara.
Capisci perche vorrei trovare una soluzione alternativa ?

E poi... posso sempre tornare al vostro consiglio se vedo che la cosa non funziona.
Che mi costa ? se mai viceversa e un po brutto dopo aver bucato il pollaio.
Il pollaio e quasi finito, ma giusto perche pianifico la porta non e stata ancora fata :slight_smile:

Bene... detto questo, finisco alcuni lavori che mi hanno "pianificato" :slight_smile:
E poi faccio le prove tramite il flash/eprom... poi vedrò quanto sia veloce.

Grazie a tutti
Denis

Oppure in alternativa a dei semplicissimi fine corsa se hai paura per lo sporco o altro... potresti usare sensori ad effetto hall che così anche se si riempiono di sporco sono sempre funzionanti!

cmq delle barriere laser mettile... se si chiude lo sportello con le galline sotto?!?!?

potresti sempre mettere un interruttore/pulsante sotto il passaggio delle galline così se c'è una gallina non si chiude lo sportello! magari l'interruttore lo metti all'interno di una "pedana" così rimane all'interno pulito... non so se mi sono spiegato...

cmq fine corsa o interruttori normali o ad effetto hall li metterei
e un controllo per sapere se il "passaggio" è libero o occupato idem...

ciao!

SuperDenab:
cmq fine corsa o interruttori normali o ad effetto hall li metterei
e un controllo per sapere se il "passaggio" è libero o occupato idem...

Caspita hai ragione... mi ero scordato della storia che qualche
gallina possa essere sotto la porta in fase di chiusura.
Magari a quella storia ci penso dopo.

Anche perche per quanto mi ricordo da quando ero piccolo,
le galline si abituano ad entrare da sole a una certa ora prima della sera.
E poi rimangono li senza piu uscire fino al mattino.

Lo vedro con il tempo.

Grazie
Denis

Faccio una piccola entrata in gamba-tesa, spero di non prendere nessuno :wink:
Hai verificato quanti passi deve fare il motore per un singolo ciclo di apertura/chiusura?
Hai verificato la durata, come cicli di lettura e scrittura di una cella di memoria flash?
Hai quindi calcolato la durata della flash, in numero di cicli, facendo la divisione?
Hai pensato ad un sistema per scrivere sempre su celle di memoria diversi per aumentare la durata della flash?
Hai ipotizzato quanto dovrebbe essere la velocità minima di una singola scrittura per poter fare il movimento ad una velocità accettabile? Esce un valore umanamente verosimile?
Se SI, la mia entrata in gamba-tesa è andata a vuoto, se NO....

maubarzi:
Hai verificato quanti passi deve fare il motore per un singolo ciclo di apertura/chiusura?

Si... ne deve fare circa 200 * 48... lo uso in full step che e già troppo per me.

maubarzi:
Hai verificato la durata, come cicli di lettura e scrittura di una cella di memoria flash?
Hai quindi calcolato la durata della flash, in numero di cicli, facendo la divisione?

No, perche tanto se la cosa funziona ordinerò una eeprom da 2-3 euri.

maubarzi:
Hai pensato ad un sistema per scrivere sempre su celle di memoria diversi per aumentare la durata della flash?

Questa e un bella idea, non ci avevo pensato... servirà un 3-zo contattore in questo caso,
ma visto il costo di una eeprom, magari aspetto prima una rottura.

maubarzi:
Hai ipotizzato quanto dovrebbe essere la velocità minima di una singola scrittura per poter fare il movimento ad una velocità accettabile? Esce un valore umanamente verosimile?
Se SI, la mia entrata in gamba-tesa è andata a vuoto, se NO....

Non l'ho verificata in quanto le operazioni IO sono talmente veloci che non riesco
ad accorgermene della differenza fra con, o senza lettura/scrittura, mentre gira il motore.

Puo essere che gira piu lentamente... ma io non vedo differenza.
E sono ancora a delayMicroseconds(1000); fra uno step e l'altro.
Fa solo un giro per adesso a 360° tento per provare, ma e stranamente veloce.

Non ho piu tempo, ma nel weekend se piove e non sto nel giardino a finire il pollaio,
mi ci metto a studiare meglio il programma.
Per ora ho usato SPIFFS... ma ho visto che ci sono altre opzioni... e lunga :slight_smile:

Grazie a tutti
Denis

prova magari a postare il codice....

Gentili,
ho cambiato l'idea... questo perche ho lasciato il motore per tutta una notte a
fare 5 giri da una parte e 5 dall'altra parte e al mattino non erra piu a 0°
...cioè non ha mantenuto la posizione iniziale.
Era indietro a piu di 90°... anche se le posizioni erano le stesse.

Puo essere per la corrente che non e pulitissima, oppure non a bastanza potente... booo
Certo e che la cosa non mi da sicurezza.

Ho quindi ripensato a fare il tutto con dei "hall sensor" come la fantastica idea di SuperDenab
...che ringrazio ancora.
Mi piace di piu l'idea, piu tosto che fine corsa con dei micro... insomma mi da piu sicurezza.

Ora, ho trovato in qualche vecchio set di arduino un sensore effetto hall,
e sto cominciando a giocarci on un magnete che ho trovato sul frigo :slight_smile:
Ho comunque acquistato questi sensori e qualche magnete e lunedì arrivano.

In questo caso il magnete lo posso inserire al interno della porta
e i sensori al interno dei binari... con un po di colla... non dovrebbero vedersi.

Quando finisco sia la porta che il programma posto foto e codice ovviamente.

Grazie a tutti
vi tengo F5 :slight_smile:

Denis

Ci sono alcune cose da considerare, quando si fanno dei progetti

  1. l'analisi non è una cosa sbagliata
  2. Murphy non è una barzelletta, era progettista aeronautico, e sapeva quello che diceva
  3. la differenza tra teoria e pratica è più grande in pratica che in teoria
  4. se uno che ne sa più di te ti dice una cosa e tu la ignori, rischi