Sadržaj:
- Korak 1: Promijenjena je lokacija vodiča
- Korak 2: Izgradite robota SnappyXO diferencijalnog pogona
- Korak 3: Spojite elektroniku
- Korak 4: Instalirajte PreciseMovement Arduino knjižnicu
- Korak 5: Kodirajte
- Korak 6: Kako to radi
Video: SnappyXO precizni robot za kretanje: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
Neka vaš Arduino robot ide ravno na određenu udaljenost ili se okreće do određenog kuta pomoću PreciseMovement Arduino biblioteke.
Robotu je potreban kotač za valjanje ili ekvivalent za smanjenje trenja tijekom uvijanja.
www.pololu.com/product/954
Možete reći robotu da ide naprijed na određenu udaljenost ili da se okreće prema određenom kutu. Program utvrđuje svoj položaj pomoću mrtvih računa. Budući da se procjene položaja oslanjaju samo na brzinu kotača, klizanje će izazvati značajnu pogrešku. Dizajner robota trebao bi biti oprezan kako bi smanjio rizik od klizanja.
Ovo je testirano za rad sa SnappyXO robotom.
Korak 1: Promijenjena je lokacija vodiča
Vodič je premješten na stranicu ispod. Ovaj se vodič više ne održava.
sites.google.com/stonybrook.edu/premo
Korak 2: Izgradite robota SnappyXO diferencijalnog pogona
Knjižnica PreciseMovement koju ćemo koristiti kompatibilna je samo s robotima s diferencijalnim pogonom. Možete odabrati korištenje drugih robota s pogonom na 2 kotača.
Korak 3: Spojite elektroniku
Za standardni optički koder SnappyXO:
D0 (izlaz kodera) -> Arduino digitalni pin
VCC -> Arduino 5V
GND -> GND
Snaga motora i Arduina:
Izvor energije motora trebao bi biti odgovarajući za motore koje koristite. Za SnappyXO komplet, 4AA baterije se koriste za napajanje motora i 9V baterija za Arduino napajanje. Pobrinite se da svi imaju zajednički GND.
Korak 4: Instalirajte PreciseMovement Arduino knjižnicu
Preuzimanje datoteka:
github.com/jaean123/PreciseMovement-library/releases
Kako instalirati Arduino knjižnicu:
wiki.seeedstudio.com/How_to_install_Arduino_Library/
Korak 5: Kodirajte
Arduino kod:
create.arduino.cc/editor/ whileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview
Ovi parametri zahtijevaju prilagodbu. Ostali parametri označeni preporukom u kodu mogu se prilagoditi radi bolje izvedbe.
- Provjerite i postavite pinove motora pod ARDUINO PINS.
-
Postavite LENGTH i RADIUS.
- LENGTH je udaljenost od lijevog do desnog kotača.
- RADIUS je polumjer kotača.
-
Postavite PULSES_PER_REV, koji je broj impulsa koje koder daje za jedan okretaj kotača.
- Imajte na umu da se to razlikuje od broja impulsa koje izlaz davača daje za jedan okret vratila motora, osim ako su davači spojeni za očitavanje izravno s osovine kotača.
- PULSES_PER_REV = (impulsi po jednom okretu osovine motora) x (prijenosni omjer)
-
Postavite STOP_LENGTH ako vidite da se robot prenapucao nakon kretanja prema naprijed.
Robot će se zaustaviti kada je procijenjeni položaj STOP_LENGTH udaljen od cilja. Dakle, STOP_LENGTH je približna udaljenost potrebna da se robot zaustavi
-
PID parametri
KP_FW: Ovo je proporcionalna komponenta kretanja naprijed. Povećavajte ovo dok robot ne ide ravno. Ako ovo ne možete postići ispravnim podešavanjem, vjerojatno je greška u hardveru. (npr. pomak kotača itd.)
KP_TW: Ovo je proporcionalna komponenta PID -a uvrtanja. Jednostavno krenite od niske vrijednosti i povećavajte je sve dok brzina uvijanja ili kutna brzina robota tijekom uvijanja ne budu dovoljno brzi, ali ne uzrokuju prekoračenje. Za opažanja možete robota izmjenjivati od 0 do 90 i natrag umetanjem sljedećeg u funkciju petlje
Postavite ovo u petlju za podešavanje KP_FW:
selidba.naprijed (99999);
Postavite ovo u petlju za izmjenu od 0 do 90 za podešavanje KP_TW:
mover.twist (90); // Twist 90 CW
odgoda (2000);
mover.twist (-90) // Twist 90 CCW
odgoda (2000);
Imajte na umu da, kako bi se zapravo zakrenula kutna brzina na TARGET_TWIST_OMEGA, KI_TW također treba biti podešen budući da se proporcionalni regulator nikada neće dosegnuti na točnu metu. Međutim, nije potrebno okretati se točno tom kutnom brzinom. Kutna brzina samo treba biti dovoljno spora.
Korak 6: Kako to radi
Ako vas zanima kako to funkcionira, pročitajte dalje.
Kretanje prema naprijed održava se ravno pomoću algoritma čiste potrage na ravnoj liniji. Više o Pure Pursuit:
PID kontroler uvijanja pokušava zadržati kutnu brzinu uvijanja na TARGET_TWIST_OMEGA. Imajte na umu da je ova kutna brzina kutna brzina cijelog robota, a ne kotača. Koristi se samo jedan PID regulator, a izlaz je brzina upisivanja PWM -a i lijevog i desnog motora. Mrtvo računanje vrši se za izračunavanje kuta. Kada kut dosegne prag pogreške, robot se zaustavlja.
Preporučeni:
Arduino precizni i točni voltmetar (0-90V DC): 3 koraka
Arduino precizni i točni voltmetar (0-90V DC): U ovom uputstvu sam izgradio voltmetar za mjerenje visokog napona DC (0-90v) s relativnom preciznošću i točnošću pomoću Arduino Nano. Testna mjerenja koja sam obavila bila su dovoljno točna, uglavnom unutar 0,3v od stvarnog napona izmjerenog s
Raspberry Pi - MPL3115A2 Precizni senzor visinomjera Senzor za Python: 4 koraka
Raspberry Pi - MPL3115A2 Precizni senzor visinomjera Python Vodič: MPL3115A2 koristi MEMS osjetnik tlaka s I2C sučeljem za pružanje točnih podataka o tlaku/nadmorskoj visini i temperaturi. Izlazi senzora digitalizirani su 24-bitnim ADC-om visoke rezolucije. Interna obrada uklanja zadatke kompenzacije iz
DropArt - Precizni fotografski kolajder s dva ispuštanja: 11 koraka (sa slikama)
DropArt - Precizni fotografski sudarač s dvije kapi: Pozdrav svima, u ovom uputstvu predstavljam svoj dizajn za računarski upravljani sudarač s dvije kapljice tekućine. Prije nego počnemo s detaljima dizajna, mislim da ima smisla objasniti točno koja je svrha dizajna. Zabava, interesi
Precizni svjetlosni pištolj Wiimote za malinu PI: 9 koraka (sa slikama)
Točan Wiimote Light Gun za Raspberry PI: Uobičajeno, Wii daljinski upravljač koji se koristi kao svjetlosni pištolj nije dovoljno točan za retro igre poput NES Duck Hunt, jer Wii daljinski upravljač zapravo ne odabire točku na televizoru na koju je usmjeren. Ne može! Wii Remote ima infracrvenu kameru na prednjoj strani
Precizni sat: 3 koraka
Precizni sat: Svi nam trebaju satovi pa zašto ne napravite sami u ovom uputstvu, pokazat ću vam kako napraviti precizni sat nakon što postavite, automatski će pratiti trenutno vrijeme u pozadini svega. Iako je potrebno samo vrlo malo