Go Down

Topic: progetto azionamento da pulsante di motore passo passo (Read 609 times) previous topic - next topic

LucaFischetti

mi chiamo Luca,
neofita completo di Arduino.
Mi affaccio a questo mondo da ieri perchè vorrei realizzare un piccolo progetto applicato al ferromodellismo. Saluti a Tutti

docdoc

#1
Mar 22, 2019, 12:30 pm Last Edit: Mar 22, 2019, 12:30 pm by docdoc
Si, è fattibile, ma hai un po' da studiare, ovviamente, sia per il linguaggio se non conosci già il C, sia per l'ambiente Arduino, sia per gli aspetti "fisici" su realizzazione di circuiti elettronici.

Se tu avessi messo una presentazione un poco più descrittiva delle tua attuali conoscenza, sarebbe stato tutto più semplice, per dire, non so quale sia la tua pratica di elettronica, e cosa tu abbia in casa come componenti. Hai già un Arduino? Se si, quale? E' un kit quindi hai già pulsanti, led eccetera o non li hai? Sai saldare? Hai mai avuto a che fare con circuiti? Sai cosa è una resistenza di Pull-up?

PS: sei parente del professor Enzo Fischetti? ;)
Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

docdoc

Questo è il mio primo obiettivo.
Ce ne dici ce la posso fare ? Come procedo ?
Ti dico allora che quello NON è il tuo primo obiettivo.

Il tuo primo obiettivo è iniziare per gradi, è necessario iniziare con cose semplici, quantomeno perché vista la tua descrizione hai ancora da capire come funziona una MCU e/o Arduino in particolare, come si usano i vari pin a disposizione, e come si collegano ad "altro", ed infine prendere un minimo di pratica col linguaggio.

Tutto questo lo fai scartando il kit ed iniziando a "sporcarti le mani", ossia realizzare gli esempi eventualmente inclusi nel kit, partendo da cose semplici come far lampeggiare il led on-board, poi come si collega un pulsante ed usarlo per accendere e spegnere il led, come collegare un paio di led esterni, come collegare un potenziometro ad un ingresso analogico e visualizzare il valore sulla seriale, eccetera. E pensa che nonostante io stato da sempre appassionato di elettronica, abbia fatto pure Ingegneria Elettronica e conoscessi già il C, ho fatto anche io stesso anni fa queste cose (ho una cartella "esercizi e prove" dove accumulavo tutte le mie prove).

Nel tuo caso, DOPO che avrai fatto questi esercizi, potrai iniziare a vedere come si collega e come si gestisce un servo (magari facendolo ruotare in base alla pressione di un tasto, e alla posizione del potenziometro).

Se nel kit non hai un manuale con esempi da seguire, puoi cercare in rete ad esempio puoi trovare QUESTO (un corso introduttivo dell'ottimo Mauro Alfieri), ma anche alcuni corsi video come QUESTO (non so come sia, non l'ho visto, ma mi sembrava abbastanza utile soprattutto nell'introduzione).
Come "Bibbia" per sapere come si collegano le cose ad Arduino scaricati QUESTO documento PDF, che potrai consultare di tanto in tanto

Fatto tutto questo, sono cose che se ti ci metti forse in una settimana riesci a completare e partire con un minimo di basi (non si finisce mai di imparare...) quindi secondo me sarai in grado di iniziare a scrivere il "vero" programma che hai in mente. E, sapendo quindi padroneggiare un minmo l'ambiente Arduino e l'elettronica di base, avrai molta più soddisfazione.

Ma ti consiglio di NON metterti fretta, non saltare a cose più complicate ma vai sempre per gradi, non fare copia/incolla di codice preso in rete che non comprendi e che quindi alla fine non sapresti come adattare alle tue esigenze, mettendoti in testa più confusione che altro.
Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

-zef-

Per quello che vuoi fare è molto meglio utilizzare il motore pp che già di suo è ridotto con una serie di ingranaggi interni, il limite di quel motore è la pochissima forza, ma se fai un buon meccanismo senza troppo attriti o che peggio si inceppi ce la fai benissimo a ruotare la piattaforma con il binario, nella meccanica inserisci anche un finecorsa in modo che una volta acceso il tutto si possa resettare su un punto preciso, i motori pp al contrario dei servocomandi non hanno una retroazione per sapere la posizione raggiunta, devi partire da una posizione nota e poi tenere il conto dei passi eseguiti.

John_Fischetti

#4
Mar 23, 2019, 12:23 am Last Edit: Mar 23, 2019, 12:31 am by John_Fischetti
Caro Luca, siamo entrambi della maledetta genìa dei Fischetti, e ho appena appreso che esiste anche il professor Enzo. :)

Di dove sei? Io vivo a Udine.

Oltre agli ottimi consigli che ti hanno già dato, so per esperienza quanto può essere frustrante far le cose da soli, specialmente all'inizio, dove ogni ostacolo ingigantisce il proprio complesso di inferiorità. Non preoccuparti, poi quando si diventa esperti o quasi ... la cosa peggiora perché anche le "rogne" diventano più sofisticate e insidiose.

Allora aggiungo anche la mia briciolina di saggezza, e ti consiglio di cercare nella tua zona un gruppo di appassionati. Se vivi in una grande città sei fortunato perché di sicuro qualcosa esiste, se vivi in provincia dipende da dove. Cercando in rete "Arduino group" e il nome della città dove vivi probabilmente qualcosa esce.

Per tenere alto il tuo appetito ti dico che secondo me la cosa che hai in mente si può fare e non richiede conoscenze da scienziato. Sicuramente il motore da usare è il passo passo. Hai fortuna che essendo ridotto con un rapporto 1/64 hai una buona precisione per allineare perfettamente i binari, ma dovrai studiare il modo di fissare un riferimento preciso con un sensore di allineamento, un "punto zero" da cui poi sviluppare i movimenti.

QUale è il diametro della piattaforma rotante? Immagino una trentina di centimetri. Con il motore che hai un passo vale 0,088 gradi, il che vuol dire circa 0,46 millimetri con il diametri ipotizzato. Forse troppo. Per fortuna gli step motor possono essere pilotati anche a mezzo passo, un quarto di passo, e anche ancora con maggior precisione, ma serve un controllore un po' più sofisticato. Ne parleremo se il progetto avanza. Inoltre gli ingranaggi di quel motore sono di plastica, e inoltre l'inevitabile lasco produrrà imprecisione e instabilità. Non a caso le tavole rotanti che si usano in ambito industriale sono molto costose, perché richiedono una meccanica molto raffinata e precisa. Nel tuo caso posso ipotizzare una soluzione mista, in cui prima posizioni il motore dove vuoi, e poi con un piccolo elettromagnete e un fermo a cuneo allinei perfettamente i binari. Fra l'altro credo che questo avvenga anche nelle piattaforme girevoli ferroviarie "vere" :)

Una alternativa più "meccanica" potrebbe consistere in una coppia di ingranaggi, uno grande come quasi tutta la piattaforma e uno piccolo azionato dal motore, oppure una corona circolare dentata con lo stesso principio, anche fatti di plastica, magari stampati in 3D. Pensaci.

Intanto ti saluto e ti lascio un link dove parlano del motore passo passo che hai tu e di come azionarlo, come antipasto per lo studio vero che dovrai affrontare.

John

https://aspettandoilbus.blogspot.com/2016/01/parliamo-del-motore-passo-passo-28byj-48.html

gpb01

> LucaFischetti:   ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post #7 (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo
Search is Your friend ... or I am Your enemy !

gpb01

Chiedo perdono. Scusa. Ho sistemato.
Perfetto, grazie :)

Guglielmo
Search is Your friend ... or I am Your enemy !

gpb01

Guarda, fai una bella cosa, prendi l'IDE e usa Strumemti -> Formattatzione automatica e, una volta che il codice sarà scritto ed indentato come si deve (al momento, perdona ma ... la fomattazzione è pessima) vedrai che ti accorgerai da solo dell'errore che salterà agli occhi ... ;)

Guglielmo
Search is Your friend ... or I am Your enemy !

gpb01

Intanto fai quello che ti ho chiesto, poi rimetti qui il codice ben formattato e ti faccio vedere l'errore che è più che evidente ;)

Guglielmo
Search is Your friend ... or I am Your enemy !

gpb01

Scusa, che versione dell'IDE usi? In che lingua? su che piattaforma?

Guglielmo
Search is Your friend ... or I am Your enemy !

gpb01

Scusa, vieni qui chiedendo aiuto e poi non sei disponibile ad un minimo di colaborazione con chi cerca di aiutarti ? :o

Noi qui non abbiamo la "palla di vetro" che possiamo vedere la tua configurazione ed il tuo ambiente di sviluppo ...
... o collabori o difficilmente qualcuno potrà aiutarti ... ::)

Guglielmo

Search is Your friend ... or I am Your enemy !

docdoc

non trovo neanche il menu strumenti. Figurati.
Posso ripeterti che secondo me stai cercando di fare troppi passi insieme senza capire bene cosa stai facendo?

Hai fatto tutto quello che ti ho consigliato? Io credo di no. Per fare gli esercizi e quindi iniziare a capire quello che ti serve ossia il linguaggio (anche in modo introduttivo), come collegare cose anche semplici come LED e pulsanti, come collegare e controllare uno stepper o un servo, dici di aver passato 20 ore, ma se parti veramente da zero, altro che 20 ore...

D'altronde lo hai detto tu stesso nel post #7 (prima pagina):

Quote
3 schetc che ho fatto copiando ma anche facendo piccole modifiche
ossia hai COPIATO pezzi di codice presi in giro e cercato di fare modifiche senza capire bene come funzioni il tutto, e NON è questo che ti ho consigliato! Anzi, è proprio il modo migliore per complicarti la vita e confonderti le idee, e, alla fine, demoralizzarti.

Non andare di fretta, prenditi il tempo per CAPIRE cosa stai facendo e come funziona, affronta una cosa nuova per volta (un progettino per i pulsanti, uno per uno stepper o -meglio- un servo, uno per il potenziometro, uno per il rotary encoder, eccetera...), e poi inizia a scrivere il tuo codice solo quando avrai capito come si gestiscono i componenti che vuoi mettere nel tuo progettino finale.

In ogni caso non trovare neanche il menu dell'IDE è una cosa abbastanza strana, il menu sta sempre sopra, come in tutte le applicazioni, che significa che non sei in grado di trovarlo? Intendo questo:



Noi qui non abbiamo la "palla di vetro"
Si dice "sfera di cristallo", che è quella degli indovini. La "palla di vetro" è più una protesi :D


Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

gpb01

Si dice "sfera di cristallo", che è quella degli indovini. La "palla di vetro" è più una protesi :D
... le sfere di cristallo costano, le palle di vetro sono più economiche   :D :smiley-mr-green: :D :smiley-mr-green:

Guglielmo
Search is Your friend ... or I am Your enemy !

Standardoil

In un altro luogo ho fatto la stessa domanda presentando il medesimo sketch (5 pulsanti con posizionamento angolare e problema di non riuscire a regolare la velocità)  e dopo 4 minuti di orologio mi hanno scritto che avevo semplicemente un problema di parentesi graffe messe male che afferiscono ad un concetto che ho anche
.
.
.
Giusto per saperlo, dove? no,che mi serve per il mio futuro corso, avrò bisogno di un bel po' di aiuto.....

Dalla parte di chi insegna invece si dovrebbe perseguire l'approccio maieutico. Che non impone percorsi e obiettivi che altri non perseguono e che suggerisce a colui che insegna di porsi sul piano di colui che impara e non il contrario. Le persone intelligenti capiranno sicuramente il concetto alla base dell'approccio che ho appena descritto.

Grazie per la pazienza di aver letto.

invece questa te al rubo, mi srve anch'essa per il corso, grazie
Prima legge di Nelson (che sono io): Non scambiare il fine con il mezzo: ricorda "cosa" devi fare, non "come" devi farlo

Non bado a studenti, che copino altrove

Tu hai problema-Io ti domando-Tu non mi rispondi: vuol dire che non ti serve più

docdoc

Ho costruito uno sketch fatto da me frutto di copia, incolla, taglia, cuci, prove ecc. Non ci trovo nulla di vergognoso se ho voluto seguire un approccio intuitivo.
Dipende. Se vuoi imparare tu le cose o se vuoi solo limitarti a copiare cose fatte da altri, come acquistare un kit e limitarsi a saldare i componenti che trovi in busta.

Quote
In un altro luogo ho fatto la stessa domanda presentando il medesimo sketch (5 pulsanti con posizionamento angolare e problema di non riuscire a regolare la velocità)  e dopo 4 minuti di orologio mi hanno scritto che avevo semplicemente un problema di parentesi graffe messe male
Vorrei sommessamente farti notare che al tuo post #12 delle 09:38:09 col quale hai posto il problema allegando il tuo codice, alle 09:45:45 ti ha risposto Guglielmo dicendoti:

Quote
usa Strumemti -> Formattatzione automatica e vedrai che ti accorgerai da solo dell'errore che salterà agli occhi ...
Quindi la soluzione dopo soli 7 minuti di orologio ti era stata messa sotto gli occhi, ma dato che come spirito del forum abbiamo quello di aiutare le persone ad evolvere e capire se possibile da sole come fare certe cose e dove sbagliano, ti sarebbe bastato fare quello che ti ha detto Guglielmo ed avresti capito una cosa "nuova" per te, e molto utile per il futuro, e non metterti ad affermare persino che non sai neanche cosa sia il menu di un programma...

Ma visto che, come dici, non ti interessa imparare ma vuoi solo la "pappa pronta", prosegui pure nell'altro forum dove ti trovi meglio, non ci rimetteremo nulla. Anzi.
Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

Go Up