Sommario:
- Passaggio 1: posizione del tutorial modificata
- Passaggio 2: costruisci il robot con azionamento differenziale SnappyXO
- Passaggio 3: collegare l'elettronica
- Passaggio 4: installa la libreria Arduino PreciseMovement
- Passaggio 5: codice
- Passaggio 6: come funziona
Video: SnappyXO Precise Mover Robot: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Fai in modo che il tuo robot Arduino vada dritto per una distanza specificata o ruota fino a un angolo specificato utilizzando la libreria Arduino PreciseMovement.
Il robot ha bisogno di una rotella rotante o equivalente per ridurre al minimo l'attrito durante la torsione.
www.pololu.com/product/954
Puoi dire al robot di andare avanti a una distanza specificata o di ruotare fino a un angolo specificato. Il programma determina la sua posizione utilizzando la navigazione stimata. Poiché le stime della posizione si basano solo sulla velocità della ruota, lo slittamento indurrà un errore considerevole. Il progettista del robot deve fare attenzione a ridurre al minimo il rischio di scivolamento.
Questo è stato testato per funzionare con il robot SnappyXO.
Passaggio 1: posizione del tutorial modificata
Il tutorial è stato spostato nella pagina sottostante. Questo tutorial non viene più mantenuto.
sites.google.com/stonybrook.edu/premo
Passaggio 2: costruisci il robot con azionamento differenziale SnappyXO
La libreria PreciseMovement che utilizzeremo è compatibile solo con i robot con azionamento differenziale. Puoi scegliere di utilizzare altri robot a 2 ruote motrici.
Passaggio 3: collegare l'elettronica
Per l'encoder ottico SnappyXO standard:
D0 (uscita encoder) -> Pin digitale Arduino
VCC -> Arduino 5V
GND -> GND
Potenza motore e Arduino:
La fonte di alimentazione del motore dovrebbe essere adeguata ai motori che stai utilizzando. Per il kit SnappyXO, vengono utilizzate 4 batterie AA per l'alimentazione del motore e una batteria da 9 V per l'alimentazione di Arduino. Assicurati che abbiano tutti un GND comune.
Passaggio 4: installa la libreria Arduino PreciseMovement
Scarica:
github.com/jaean123/PreciseMovement-library/releases
Come installare la libreria Arduino:
wiki.seeedstudio.com/How_to_install_Arduino_Library/
Passaggio 5: codice
Codice Arduino:
create.arduino.cc/editor/whileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview
Questi parametri richiedono una regolazione. Altri parametri etichettati come consigliati sul codice possono essere regolati per prestazioni migliori.
- Controllare e impostare i pin del motore sotto ARDUINO PINS.
-
Impostare LUNGHEZZA e RAGGIO.
- LENGTH è la distanza dalla ruota sinistra alla ruota destra.
- RADIUS è il raggio della ruota.
-
Impostare PULSES_PER_REV, che è il numero di impulsi emessi dall'encoder per un giro della ruota.
- Notare che questo è diverso dal numero di impulsi emessi dall'encoder per un giro dell'albero motore, a meno che gli encoder non siano collegati per leggere direttamente dall'albero della ruota.
- PULSES_PER_REV = (impulsi per un giro dell'albero motore) x (rapporto di trasmissione)
-
Imposta STOP_LENGTH se vedi che il robot è in overshoot dopo il movimento in avanti.
Il robot si fermerà una volta che la posizione stimata sarà distante STOP_LENGTH dal target. Pertanto, STOP_LENGTH, è la distanza approssimativa richiesta affinché il robot si fermi
-
Parametri PID
KP_FW: Questa è la componente proporzionale del movimento in avanti. Aumentalo finché il robot non va dritto. Se non riesci a farlo funzionare correttamente regolando questo, è probabile che l'hardware sia in errore. (es. disallineamento delle ruote, ecc.)
KP_TW: Questa è la componente proporzionale del PID del movimento di torsione. Inizia semplicemente da un valore basso e aumentalo fino a quando la velocità di torsione, o la velocità angolare del robot durante la torsione, è abbastanza veloce, ma non causa il superamento. Per fare osservazioni, puoi far alternare il robot da 0 a 90 e viceversa inserendo quanto segue nella funzione loop
Metti questo in loop per sintonizzare KP_FW:
mover.forward(99999);
Metti questo in loop per alternare da 0 a 90 per sintonizzare KP_TW:
mover.twist(90); // Twist 90 CW
ritardo (2000);
mover.twist(-90) // Twist 90 CCW
ritardo (2000);
Si noti che per modificare effettivamente la velocità angolare su TARGET_TWIST_OMEGA, è necessario regolare anche il KI_TW poiché un controller proporzionale non si assesterà mai sul target esatto. Tuttavia, non è necessario ruotare esattamente a quella velocità angolare. La velocità angolare deve essere sufficientemente lenta.
Passaggio 6: come funziona
Se sei curioso di sapere come funziona continua a leggere.
Il movimento in avanti viene mantenuto dritto utilizzando l'algoritmo di puro inseguimento su un percorso in linea retta. Maggiori informazioni su Pure Pursuit:
Il controller PID di torsione cerca di mantenere la velocità angolare di torsione su TARGET_TWIST_OMEGA. Nota che questa velocità angolare è la velocità angolare dell'intero robot, non delle ruote. Viene utilizzato un solo controller PID e l'uscita è la velocità di scrittura PWM di entrambi i motori sinistro e destro. Per calcolare l'angolo viene eseguita la stima stimata. Quando l'angolo raggiunge la soglia di errore, il robot si ferma.
Consigliato:
Arduino - Robot per risolvere labirinti (MicroMouse) Robot che segue il muro: 6 passaggi (con immagini)
Arduino | Robot Maze Solving (MicroMouse) Robot Wall Following: Benvenuto Sono Isaac e questo è il mio primo robot "Striker v1.0".Questo Robot è stato progettato per risolvere un semplice Labirinto.Nella competizione avevamo due labirinti e il robot è stato in grado di identificarli. Qualsiasi altro cambiamento nel labirinto potrebbe richiedere un cambiamento nel
Come costruire un robot SMARS - Arduino Smart Robot Tank Bluetooth: 16 passaggi (con immagini)
Come costruire un robot SMARS - Arduino Smart Robot Tank Bluetooth: questo articolo è orgogliosamente sponsorizzato da PCBWAY.PCBWAY realizza PCB di prototipazione di alta qualità per le persone di tutto il mondo. Provalo tu stesso e ottieni 10 PCB per soli $ 5 su PCBWAY con un'ottima qualità, grazie PCBWAY. Lo scudo motore per Arduino Uno
ROBOT AFFAMATO DI CARTA - Pringles Recycle Arduino Robot: 19 passaggi (con immagini)
ROBOT FAME DI CARTA - Pringles Recycle Arduino Robot: questa è un'altra versione di Hungry Robot che ho costruito nel 2018. Puoi realizzare questo robot senza stampante 3D. Tutto quello che devi fare è acquistare una lattina di Pringles, un servomotore, un sensore di prossimità, un arduino e alcuni strumenti. Puoi scaricare tutti i
Robot di bilanciamento / Robot a 3 ruote / Robot STEM: 8 passaggi
Robot di bilanciamento / Robot a 3 ruote / Robot STEM: Abbiamo costruito un robot combinato di bilanciamento e 3 ruote per l'uso educativo nelle scuole e nei programmi educativi dopo la scuola. Il robot è basato su un Arduino Uno, uno shield personalizzato (tutti i dettagli costruttivi forniti), un pacco batteria agli ioni di litio (tutti co
[Robot Arduino] Come realizzare un robot per la cattura del movimento - Pollici Robot - Servomotore - Codice sorgente: 26 passaggi (con immagini)
[Robot Arduino] Come realizzare un robot per la cattura del movimento | Pollici Robot | Servomotore | Codice sorgente: Thumb Robot. Usato un potenziometro del servomotore MG90S. È molto divertente e facile! Il codice è molto semplice. Sono solo circa 30 linee. Sembra una cattura del movimento. Si prega di lasciare qualsiasi domanda o feedback! [Istruzioni] Codice sorgente https://github.c