Progetto di piattaforma con step motor e Arduino
Moderatori: lorelay49, cararci, MrMassy86, adobel55
- Docdelburg
- Socio GAS TT
- Messaggi: 6151
- Iscritto il: martedì 4 settembre 2012, 18:16
- Nome: Mauro
- Regione: Estero
- Città: Madrid (España)
- Stato: Non connesso
Progetto di piattaforma con step motor e Arduino
La piattaforma, premendo un pulsante, deve semplicemente ruotare di 180° in un senso e, premendo nuovamente il pulsante deve ritornare alla posizione iniziale (indifferentemente se ruotando nello stesso senso o meno). Niente posizioni intermedie, solo giratura di 180*.
Ho il motore passo passo, ho la scheda L298N, ho Arduino Uno e ho lo sketch adatto a muovere il motore dei passi desiderati e alla velocità desiderata.
Sarà una fase successiva adattare un pignone e una ruota dentata per il movimento finale.
Ora, in fase sperimentale, fatico a inserire nello sketch una funzione che mi porti nella posizione iniziale corretta la piattaforma in caso si muova quando il tutto non è alimentato. E sto pasticciando non poco con la storia dei pulsanti.
Come avrete capito non me la cavo granchè bene con la programmazione.....c'è qualche anima pia che mi dà qualche suggerimento?
Questa dell'amico Giacomo è una piattaforma manuale da cui prendo spunto
- sal727
- Messaggi: 4065
- Iscritto il: domenica 26 aprile 2015, 17:22
- Nome: Salvatore
- Regione: Emilia Romagna
- Città: Bologna
- Ruolo: Moderatore
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
Anche le caratteristiche del motore passo passo.
- MrPatato76
- Socio GAS TT
- Messaggi: 5540
- Iscritto il: lunedì 27 agosto 2012, 11:14
- Nome: Roberto
- Regione: Lombardia
- Città: Nova Milanese
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
Tre pulsanti:
-il primo che avvia il ciclo completo (inversione di 180° della piattaforma);
-Gli altri due (un tasto per senso orario ed uno per senso antiorario) se premuti danno solo un singolo impulso al motore permettendo l'eventuale allineamento in caso di perdita della posizione di riferimento.
- Docdelburg
- Socio GAS TT
- Messaggi: 6151
- Iscritto il: martedì 4 settembre 2012, 18:16
- Nome: Mauro
- Regione: Estero
- Città: Madrid (España)
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
Grazie Salvatore, faccio ancora qualche prova di fusione tra vari sketch che mi interessano e che ho trovato in rete e poi vedo di mandarti il risultato.
Il motore è uno stepper da 200 passi incluso nella confezione di Arduino per principianti....
Buona idea Roberto, vedrò di applicarla, grazie.MrPatato76 ha scritto: ↑giovedì 24 settembre 2020, 8:15 Doc io proverei così:
Tre pulsanti:
-il primo che avvia il ciclo completo (inversione di 180° della piattaforma);
-Gli altri due (un tasto per senso orario ed uno per senso antiorario) se premuti danno solo un singolo impulso al motore permettendo l'eventuale allineamento in caso di perdita della posizione di riferimento.
- antogar
- Messaggi: 148
- Iscritto il: mercoledì 31 dicembre 2014, 13:52
- Nome: Antonino
- Regione: Campania
- Città: Castellammare di Stabia
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
Considerami a tua disposizione....
ti mando in pvt l' indirizzo mail
- Docdelburg
- Socio GAS TT
- Messaggi: 6151
- Iscritto il: martedì 4 settembre 2012, 18:16
- Nome: Mauro
- Regione: Estero
- Città: Madrid (España)
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
Ma siccome sono anch'io uno smanettone, mi sono divertito a fare dei "copia e incolla" di diversi programmi e con un pò di pazienza, un pò di prove e qualche correzione, sono riuscito a ottenere quello che volevo.
Al termine un breve video di quello che sono riuscito a fare, ovvero comandare un motore passo passo da 200 passi con Arduino e il modulo L298N.
Come suggerito da Roberto ho previsto tre tasti: con i primi due sposto l'albero del motore di un passo per volta in senso orario o antiorario e questo dovrebbe permettermi di posizionare il binario in modo corretto all'inizio di una sessione di utilizzo.
Con il terzo tasto faccio compiere due giri e mezzo (500 passi) che nel mio immaginario dovrebbero corrispondere, grazie al riduttore, alla rotazione di 180° della piattaforma.
Invio a Salvatore e ad Antonino lo sketch in formato .zip via messaggio e attendo i vostri suggerimenti e osservazioni.
Domanda: si può per caso muovere il motere anche di mezzo passo?
- sal727
- Messaggi: 4065
- Iscritto il: domenica 26 aprile 2015, 17:22
- Nome: Salvatore
- Regione: Emilia Romagna
- Città: Bologna
- Ruolo: Moderatore
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
Riguardo alla domanda del mezzo passo, penso proprio di no, ogni motore ha i suoi step(passi) totali per compiere un giro, il tuo ne ha 200, per avere un movimento minore dovresti avere un motore con più step.
vedi qui
https://www.motoripassopasso.it/MotoriP ... Angle.aspx
- Docdelburg
- Socio GAS TT
- Messaggi: 6151
- Iscritto il: martedì 4 settembre 2012, 18:16
- Nome: Mauro
- Regione: Estero
- Città: Madrid (España)
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
Un'altra domanda: potrei usare un Arduino Nano invece che Arduino Uno, vista la semplicità dell'operazione?
- sal727
- Messaggi: 4065
- Iscritto il: domenica 26 aprile 2015, 17:22
- Nome: Salvatore
- Regione: Emilia Romagna
- Città: Bologna
- Ruolo: Moderatore
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
SiDocdelburg ha scritto: ↑giovedì 24 settembre 2020, 20:38 ...potrei usare un Arduino Nano invece che Arduino Uno, vista la semplicità dell'operazione?
- MrPatato76
- Socio GAS TT
- Messaggi: 5540
- Iscritto il: lunedì 27 agosto 2012, 11:14
- Nome: Roberto
- Regione: Lombardia
- Città: Nova Milanese
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
Perfettosal727 ha scritto: ↑giovedì 24 settembre 2020, 20:52SiDocdelburg ha scritto: ↑giovedì 24 settembre 2020, 20:38 ...potrei usare un Arduino Nano invece che Arduino Uno, vista la semplicità dell'operazione?
Ne ho uno che avanza.
- Docdelburg
- Socio GAS TT
- Messaggi: 6151
- Iscritto il: martedì 4 settembre 2012, 18:16
- Nome: Mauro
- Regione: Estero
- Città: Madrid (España)
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
Vuoi lo sketch da provare?MrPatato76 ha scritto: ↑giovedì 24 settembre 2020, 21:11Perfettosal727 ha scritto: ↑giovedì 24 settembre 2020, 20:52SiDocdelburg ha scritto: ↑giovedì 24 settembre 2020, 20:38 ...potrei usare un Arduino Nano invece che Arduino Uno, vista la semplicità dell'operazione?
Ne ho uno che avanza.
- MrPatato76
- Socio GAS TT
- Messaggi: 5540
- Iscritto il: lunedì 27 agosto 2012, 11:14
- Nome: Roberto
- Regione: Lombardia
- Città: Nova Milanese
- Stato: Non connesso
- MrPatato76
- Socio GAS TT
- Messaggi: 5540
- Iscritto il: lunedì 27 agosto 2012, 11:14
- Nome: Roberto
- Regione: Lombardia
- Città: Nova Milanese
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
- sal727
- Messaggi: 4065
- Iscritto il: domenica 26 aprile 2015, 17:22
- Nome: Salvatore
- Regione: Emilia Romagna
- Città: Bologna
- Ruolo: Moderatore
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
- squirrel
- Messaggi: 11
- Iscritto il: sabato 23 gennaio 2016, 12:25
- Nome: Carlo
- Regione: Lombardia
- Città: Lissone
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
Anzitutto " Si puo' muovere uno stepper di mezzo passo ?" La risposta e' affermativa si deve usare la tecnica denominata microstepping .
Sul mercato sono reperibili driver adatti ( ad es. Allegro A4988 che consente di dividere lo step fino a 16 volte) , ma l' integrato citato (L298) non puo' implementare tale tecnica.
La tecnica microstepping assicura un movimento piu' dolce, ma ha il difetto che se si toglie l' alimentazione l' asse dello stepper puo' muoversi e perdere l' allineamento, quindi alla riaccensione occorre rifare la calibrazione dello zero del piatto rotante.
Una alternativa puo' essere l'utilizzo di un riduttore meccanico sull' asse. Ad esempio interponendo un riduttore 1:10 tra motore e piatto rotante si ottiene una risoluzione sul giro di 2000 step/giro (sempre con motore da 200 step/giro).
Un altro accorgimento da usare in caso di soste intermedie nella rotazione e' di avere le soste in posizione di step intero (es. se si vogliono 50 soste sul giro , 200/50 = 4 (numero intero) il motore non avra' problemi perche' ad ogni avanzamento la fermata sara' in corrispondenza ad un passo pieno.
Infine la frequenza degli impulsi con cui si muove il motore: Il motore deve muovere un carico che ha un proprio momento di inerzia, quindi nel movimento da fermo occorre tenerne conto. Se si usa una frequenza di impulsi troppo alta il motore rischia di non eseguire correttamente l' avanzamento ( e' come se perdesse qualche step). Per i casi piu' critici si usa un profilo di velocita' cioe' si aumenta gradualmente la frequenza degli impulsi da un valore inizialmente basso fino al valore richiesto dal movimento.
- Docdelburg
- Socio GAS TT
- Messaggi: 6151
- Iscritto il: martedì 4 settembre 2012, 18:16
- Nome: Mauro
- Regione: Estero
- Città: Madrid (España)
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
Andiamo per ordine:
-il motore è un Mercury Motor SM-42BYG011-25 2PHASE,1.8° 35/17, quindi credo sia effettivamente un Nema 17 a 200 step.
-ho intenzione di demoltiplicare la velocità di rotazione cercando di arrivare ad un rapporto di 1:8 così da mantenere un velocità di rotazione della piattaforma entro limiti realistici e al contempo permettere una fine regolazione della posizione senza bisogno dei "mezzi passi".
-essendo minimo lo sforzo di rotazione e oltretutto molto demoltiplicato, credo che non ci siano importanti fenomeni di ritardo inerziale.
-la presenza dei due pulsanti di regolazione (eventuale all'inizio di ogni sessione) suggerita da Roberto dovrebbe risolvere il problema di eventuali spostamenti della piattaforma a motore non alimentato.
Posto le cose sin qui fatte a uso di chi avesse interesse:
1) lo schema di collegamento dei pulsanti è tratto dalla rete e prevede l'interposizione di una resistenza da 10Kohm tra il negativo e l'uscita positiva del pulsante come da foto seguente (in cui sono riportati solo due pulsanti; nel mio caso c'è il terzo pulsante per la rotazione di 180°)
2) questo è lo sketch attuale, opportunamente e gentilmente corretto e puntualizzato da Salvatore. Ricordo che ho posto un ipotetico valore di 500 passi come numero indicativo per una rotazione di 180° demoltiplicata; tale numero sarà poi sostituito dal valore risultante dalla prove pratiche.
Adesso vorrei risolvere un altro aspetto, legato alla necessità di invertire la polarità dei binari in occasione di ogni rotazione di 180°.
Inizialmente pemsavo ad un contatto meccanico con un interruttore a leva che agisse su un relè, ma credo sia preferibile aggiungere un comando allo sketch in modo da pilotare il relè bistabile direttamente da Arduino.
- Docdelburg
- Socio GAS TT
- Messaggi: 6151
- Iscritto il: martedì 4 settembre 2012, 18:16
- Nome: Mauro
- Regione: Estero
- Città: Madrid (España)
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
1) so che Arduino ha una memoria Eprom interna che potrebbe ricordare la posizione "zero" iniziale senza più bisogno dei due tasti per la calibrazione. Andrò a cercare documentazione e sketch in tal senso.
2) il motore passo passo scalda parecchio perchè le bobine sono sempre alimentate anche quando ferme. C'è la possibilità di togliere alimentazione al motore quando non comandato? Mi sembra che alcune schede abbiano una funzione "sleep"; vi risulta?
Grazie
- sal727
- Messaggi: 4065
- Iscritto il: domenica 26 aprile 2015, 17:22
- Nome: Salvatore
- Regione: Emilia Romagna
- Città: Bologna
- Ruolo: Moderatore
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
nel codice che ti ho postato, col pulsante unico per il movimento, se togli i due pulsanti del movimento ad uno step, che servirebbero solamente per una eventuale posizione non corretta, premendo una volta si posiziona a 180°, premendo una seconda volta, muovendosi a 180°, torna nella posizione iniziale, il movimento è a gradi, se poi non va nella posizione esatta è un problema hardware non software.1) so che Arduino ha una memoria Eprom interna che potrebbe ricordare la posizione "zero" iniziale senza più bisogno dei due tasti per la calibrazione. Andrò a cercare documentazione e sketch in tal senso.
non conosco driver con la funzione sleep, puoi inserire un interruttore per togliere l'alimentazione solo alla shedina mettendo due alimentazioni separate e Arduino rimane sempre attivo, se l'interruttore è scomodo, volendo si può inserire un relè nel codice che si attiva alla pressione del pulsante e una volta giunto alla posizione si disattiva.2) il motore passo passo scalda parecchio perchè le bobine sono sempre alimentate anche quando ferme. C'è la possibilità di togliere alimentazione al motore quando non comandato? Mi sembra che alcune schede abbiano una funzione "sleep"; vi risulta?
- Docdelburg
- Socio GAS TT
- Messaggi: 6151
- Iscritto il: martedì 4 settembre 2012, 18:16
- Nome: Mauro
- Regione: Estero
- Città: Madrid (España)
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
- IpGio
- Socio GAS TT
- Messaggi: 3546
- Iscritto il: domenica 20 maggio 2018, 9:22
- Nome: Giorgio
- Regione: Lombardia
- Città: Nerviano
- Ruolo: co-amministratore
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
Grazie per la condivisione.
IpGio
N/TT/H0-Ep.III-IT GASTT/FIMF
IpGio I plastici di Gio https://www.gtg3b.it
- squirrel
- Messaggi: 11
- Iscritto il: sabato 23 gennaio 2016, 12:25
- Nome: Carlo
- Regione: Lombardia
- Città: Lissone
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
La memoria che citi e' la EEPROM e per utilizzarla c'e' una libreria apposita. Tuttavia occorre prestare attenzione perche' tale memoria ha un numero limitato di possibilita' di scrittura. Esaurito il numero la memoria cessa di essere scrivibile. Il numero di accessi possibili puo' variare tra 10.000 e 100.000 in funzione del microprocessore. Sono numeri alti se si usa la memoria per dei parametri di configurazione, possono diventare limitati se si deve memorizzare continuamente un parametro.Docdelburg ha scritto: ↑domenica 27 settembre 2020, 19:11 Due domande per gli esperti di Arduino e relativa programmazione:
1) so che Arduino ha una memoria Eprom interna che potrebbe ricordare la posizione "zero" iniziale senza più bisogno dei due tasti per la calibrazione. Andrò a cercare documentazione e sketch in tal senso.
2) il motore passo passo scalda parecchio perchè le bobine sono sempre alimentate anche quando ferme. C'è la possibilità di togliere alimentazione al motore quando non comandato? Mi sembra che alcune schede abbiano una funzione "sleep"; vi risulta?
Grazie
Per quanto riguarda il secondo punto, l' integrato 298 ha due piedini indicati EnA e EnB . Se vengono messi a livello 0Volt disabilitano i transistors del ponte ad H e quindi gli avvolgimenti del motore stepper non vengono piu' alimentati e di conseguenza il motore non scalda.
A questo punto si pone il problema di come farlo con Arduino. Non so se la libreria ha un comando specifico. Presumo che quando si configura il canale stepper la procedura forzi i pins Enx a livello HI. Forse basterebbe rimuovere la configurazione del motore quando non si usa e riconfigurarlo per la nuova operazione.
- antogar
- Messaggi: 148
- Iscritto il: mercoledì 31 dicembre 2014, 13:52
- Nome: Antonino
- Regione: Campania
- Città: Castellammare di Stabia
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
Se doc usasse la piattaforma tutti i giorni e consideriamo una media di 10 scritture ogni sessione di gioco, sono 365x10=3650 scritture in EEPROM all' anno. Facciamo che l' Arduino cinese usato da Doc supporta 50000 scritture (la Atmel ne dichiara almeno 100.000), abbiamo che la EEPROM del dispositivo dura 50000/3650=13 anni circa, ma il resto continua sempre a funzionare.squirrel ha scritto: ↑lunedì 28 settembre 2020, 15:57 La memoria che citi e' la EEPROM e per utilizzarla c'e' una libreria apposita. Tuttavia occorre prestare attenzione perche' tale memoria ha un numero limitato di possibilita' di scrittura. Esaurito il numero la memoria cessa di essere scrivibile. Il numero di accessi possibili puo' variare tra 10.000 e 100.000 in funzione del microprocessore. Sono numeri alti se si usa la memoria per dei parametri di configurazione, possono diventare limitati se si deve memorizzare continuamente un parametro.
...e comuqnue, si compra qualche Arduino Nano in più e via!
- Docdelburg
- Socio GAS TT
- Messaggi: 6151
- Iscritto il: martedì 4 settembre 2012, 18:16
- Nome: Mauro
- Regione: Estero
- Città: Madrid (España)
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
Nello specifico è un "Arduino Uno COMPATIBILE BOARD CON ATMEGA 328 ch34x USB r3 chipset" che però non viene inizialmente riconosciuto dal sistema e quindi richiede il download di un file di configurazione detto "CH340 USB" altrimenti non funziona.
Il problema si è posto con il pc normalmente in uso, con sistema operativo Windows10, che non ne vuole sapere di accettare l'installazione di detto file.
Provato su un pc appena pensionato dallo studio, con Windows7, caricato il drive "CH340 USB", tutto sembra funzionare al meglio.
Come detto riporto per dovere di cronaca per chi intende usare i cloni con gli occhi a mandorla....
- sal727
- Messaggi: 4065
- Iscritto il: domenica 26 aprile 2015, 17:22
- Nome: Salvatore
- Regione: Emilia Romagna
- Città: Bologna
- Ruolo: Moderatore
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
http://www.wch.cn/downloads/CH341SER_ZIP.html
- Docdelburg
- Socio GAS TT
- Messaggi: 6151
- Iscritto il: martedì 4 settembre 2012, 18:16
- Nome: Mauro
- Regione: Estero
- Città: Madrid (España)
- Stato: Non connesso
Re: Progetto di piattaforma con step motor e Arduino
la base sarà del tutto simile alla piattaforma definitiva; la grossa differenza è che in questo prototipo il taglio del disco è stato fatto a mano, con un seghetto alternativo, quindi vi lascio immaginare che tolleranze ho dovuto mettere in conto....
Per fortuna ho già chi mi procurerà la parte superiore con il piatto già tagliato col laser.
Ecco il mio manufatto di base su cui ho fissato un sistema di cuscinetti a doppio anello che dovrebbero darmi molta stabilità al disco della piattaforma.
Ieri sono arrivati gli ingranaggi tanto attesi e li ho subito messi in opera
E poi non ho resistito e ho fatto una prova fissando il motore passo passo ad una traversa volante e........FUNZIONA!