Sadržaj:
- Korak 1: Promijenjena lokacija vodiča
- Korak 2: Izgradite robota SnappyXO diferencijalnog pogona
- Korak 3: Priključite elektroniku
- Korak 4: Instalirajte PreciseMovement Arduino biblioteku
- Korak 5: Kodirajte
- Korak 6: Kako to funkcionira
Video: SnappyXO precizni robot za kretanje: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Učinite da 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 tokom 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 svoju poziciju koristeći mrtve račune. Budući da se procjene položaja oslanjaju samo na brzinu kotača, klizanje će izazvati značajnu grešku. Dizajner robota treba biti oprezan kako bi minimizirao rizik od klizanja.
Ovo je testirano za rad sa SnappyXO robotom.
Korak 1: Promijenjena lokacija vodiča
Vodič je premješten na stranicu ispod. Ovaj vodič se više ne održava.
sites.google.com/stonybrook.edu/premo
Korak 2: Izgradite robota SnappyXO diferencijalnog pogona
Biblioteka 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: Priključite elektroniku
Za standardni SnappyXO optički koder:
D0 (izlaz kodera) -> Arduino digitalni pin
VCC -> Arduino 5V
GND -> GND
Snaga motora i Arduina:
Izvor napajanja 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. Uvjerite se da svi imaju zajednički GND.
Korak 4: Instalirajte PreciseMovement Arduino biblioteku
Skinuti:
github.com/jaean123/PreciseMovement-library/releases
Kako instalirati Arduino biblioteku:
wiki.seeedstudio.com/How_to_install_Arduino_Library/
Korak 5: Kodirajte
Arduino kod:
create.arduino.cc/editor/ whileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview
Ove parametre je potrebno prilagoditi. Ostali parametri označeni kao preporučeni u kodu mogu se prilagoditi radi boljih performansi.
- 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 izlaz davača daje za jedan okretaj kotača.
- Imajte na umu da se ovo 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 previše našao nakon kretanja prema naprijed.
Robot će se zaustaviti kada je procijenjena pozicija STOP_LENGTH udaljena od cilja. Dakle, STOP_LENGTH je približna udaljenost potrebna da se robot zaustavi
-
PID parametri
KP_FW: Ovo je proporcionalna komponenta kretanja prema naprijed. Povećavajte ovo dok robot ne ide ravno. Ako ovo ne možete postići ispravnim podešavanjem, vjerovatno je greška u hardveru. (npr. pogrešno poravnanje točkova itd.)
KP_TW: Ovo je proporcionalna komponenta PID -a uvrtanja. Jednostavno krenite od niske vrijednosti i povećavajte ovu brzinu sve dok brzina uvijanja ili kutna brzina robota tokom uvijanja ne budu dovoljno brzi, ali ne uzrokuju prekoračenje. Za zapažanja možete robota naizmjenično mijenjati od 0 do 90 i natrag umetanjem sljedećeg u funkciju petlje
Postavite ovo u petlju za podešavanje KP_FW:
mover.forward (99999);
Postavite ovo u petlju za izmjenu od 0 do 90 za podešavanje KP_TW:
mover.twist (90); // Twist 90 CW
kašnjenje (2000);
mover.twist (-90) // Twist 90 CCW
kašnjenje (2000);
Imajte na umu da za stvarno uvijanje kutne brzine na TARGET_TWIST_OMEGA, KI_TW također treba biti podešen budući da se proporcionalni kontroler nikada neće uskladiti s tačnim ciljem. Međutim, nije potrebno okretati se upravo na toj kutnoj brzini. Ugaona brzina samo treba biti dovoljno spora.
Korak 6: Kako to funkcionira
Ako vas zanima kako to funkcionira, pročitajte dalje.
Kretanje prema naprijed održava se ravno koristeći algoritam čiste potrage na pravoj liniji. Više o Čistoj potrazi:
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 se vrši za izračunavanje ugla. Kada kut dosegne prag greške, robot se zaustavlja.
Preporučuje se:
Arduino precizni i tačni voltmetar (0-90V DC): 3 koraka
Arduino precizni i tačni voltmetar (0-90V DC): U ovom uputstvu sam izgradio voltmetar za mjerenje visokog napona DC (0-90v) sa relativnom preciznošću i tačnošću koristeći Arduino Nano. Testna mjerenja koja sam obavila bila su dovoljno točna, uglavnom unutar 0,3v od stvarnog napona izmjerenog sa
Raspberry Pi - MPL3115A2 Precizni senzor visinomjera Senzor za Python: 4 koraka
Raspberry Pi - MPL3115A2 Precizni senzor visinomera sa Python vodičem: MPL3115A2 koristi MEMS senzor pritiska sa I2C interfejsom za pružanje tačnih podataka o pritisku/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č sa dvije kapi: Pozdrav svima, u ovom uputstvu predstavljam svoj dizajn za računarski upravljani sudarač sa dvije kapljice tekućine. Prije nego počnemo s detaljima dizajna, mislim da ima smisla objasniti tačno koja je svrha dizajna. Zabava, interesi
Precizni sat: 3 koraka
Precizni sat: Svima su nam potrebni satovi pa zašto ne napravite sami u ovom uputstvu, pokazat ću vam kako napraviti precizni sat nakon što ga postavite automatski će pratiti trenutno vrijeme u pozadini svega. Iako mu je potrebno samo vrlo malo
Visoko precizni regulator temperature: 6 koraka (sa slikama)
Visokoprecizni regulator temperature: U znanosti i svijetu inženjeringa praćenje temperature aka (kretanje atoma u termodinamici) jedan je od osnovnih fizičkih parametara koje treba uzeti u obzir gotovo svugdje, počevši od ćelijske biologije do rakete na tvrdo gorivo