Rekord velike Slovenije

Rasprava o AVR mikrokontrolerima, AVR projekti i drugo vezano za AVR...

Moderators: pedja089, stojke369, trax, InTheStillOfTheNight

Post Reply
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Rekord velike Slovenije

Post by InTheStillOfTheNight »

Kao neću ja raditi elektroniku preko praznika, a sve mi se cini da bi i na badnjak mogao neki vrag lemiti okolo :)

Htio bi raditi jedan zabavan projekt za ove naše divne Slovence. Naime oni svake godine organiziraju natjecanje u vožnji robotskih kolica na fakultetu elektrotehnike. A znate i sami kako su Slovenci raširenih ruku kada treba novcem nešto podmazati pa im je tako nagrada za najbolje prolazno vrijeme nekih 100 eura sto je jadno za međunarodno natjecanje.

Tamo sam pobjedio neke davne godine vise se ni ne sjecam, ali znam da je robot bio strasno lose napravljen.
Pa eto ja bi opet otisao malo u Sloveniju :)

Mislim ne ja, nego dao bih nekome robota da se natjece (vise se ne skolujem tak da se ne mogu prijaviti)

Recimo robotu bih dao ime Ivica ili Janica, i stavio neku zastavicu Hrvatskih teritorijalnih voda, cisto iz zajebancije.

E sad kad sam tamo isao neke 1994 ako se ne varam, htio sam pobjediti u obe kategorije pa sam radio 2 robota. (Srednja skola i Studenti, frend i ja). U to vrijeme nije bas niti bilo novca za razvoj necega tako da sam robota radio doslovno od nicega, jedva da sam procesore nabavio, a da ne govorim o motorima koji su bili na oba robota, a mjenjani su tokom natjecanja... (Malo varanja nikad ne skodi). No nije plan bas bio dobar, ja sam izvukao kao student prvo mj, a moj frend drugo u konkurenciji srednje skole. (U srednjoj skoli je jaca konkurencija).

U ovome sto bih zelio raditi ima jako puno problematike, od robotike, do senzora, do motora te programiranja i logike.

Osobni rekord tog natjecanja mi je oko 25 sekundi, ali to je bio robot koji sam radio prije puno vremena. Danasnji rekord Slovenije je oko 18 sekundi i to sa nekim robotom koji je razvila velika firma. Znaci grupica dobro podmazanih i cudnih tipova. :azdaja:

Nikada nisam isao na neko natjecanje samo da idem pa sam tako i radio nekim svojim sistemom:
"Pobijedi protivnika za duplo, i onda pobjedi sebe"
To je tad palilo jer su svi imali sranje od razmišljanja, loše robote, i mislili su da ne može bolje.
Današnji rekord od 18 sekundi nije tako jednostavno srušiti, a za duplo ga ni NASA ne moze skinuti.

Evo neki video koji sam nasao, ne znam koliko je prolazno vrijeme, ali i ovo je relativno brzo.
http://www.youtube.com/watch?v=VVi9c_flRIM" onclick="window.open(this.href);return false;

Ono sto bi ja htio probati napraviti je robot koji ce proci za 10 sekundi ovaj labirint.
Znam da je nemoguce, ali je zato izazov. Svi ovi višenaučni strojari su rekli da se nemoguće spustiti ispod 10 sekundi jer to više ni fizika ne dozvoljava.

Ali to nije toliko ni bitno za pobjedu, jer i tako 17 sekundi nitko neće srušiti.

Meni ide elektronika i programiranje, ali kada to spojim sa zupcanicima izgleda katastrofalno. Mehanika i ja nikako da se složimo oko puno stvari. Projekt bi trebao zapoceti poslje nove godine jer je natjecanje u 4 mjesecu pa bih volio da znam i vaše ideje kako napraviti nešto što i nije sasvim moguće...

Motore, MCU, Kotače i širinu robota sam odabrao, i to bi mi moglo podržati brzinu do 1,5 m/s. Sad ostaje onaj najgori dio: Brzi senzori, povratna veza sa kotača, težina robota, opasno precizna regulacija odziva na motorima, stabilan napon sa baterija, lagane baterije sa dovoljno snage i naravno logika programiranja kojom je to moguce postici.
InTheStillOfTheNight
abc
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 498
Joined: 08-03-2007, 20:19
Location: Hrvatska

Re: Rekord velike Slovenije

Post by abc »

Evo jedan koristan link za tebe, servo kontrola DC motora napisana u asembleru za atmel koja radi i to provjereno, inace ovaj tip (japanac) ima jos zanimljivih projekata.

http://elm-chan.org/works/smc/report_e.html" onclick="window.open(this.href);return false;
User avatar
rajac
Napredujem
Napredujem
Posts: 129
Joined: 11-03-2009, 19:01

Re: Rekord velike Slovenije

Post by rajac »

Ja mogu samo reći za za brzo vrijeme robot treba biti što manji,jer tad je potrebno manje vremena za naglo ubrzanje i usporavanje,skretanje.Za motore i batrerije najbolje je uzeti one koji se koriste u RC modelima. Tamo ima motora od par grama pa na dalje,a snaga im je impresivna,a baterije isto tako.Osim toga cijene i jednih i drugih su svega par dolara.
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: Rekord velike Slovenije

Post by InTheStillOfTheNight »

To je dosta zafrknuto, jer ako je robot mal, onda mu je i mala udaljenost između kotača što znači da je još teže održavati putanju robota stabilnom... To je ona problematika koju sam već viđao kada ti se robot okrene i vrati nazad, samo zato jer je htio brzo promjeniti smijer i okrenuo se za 180 stupnjeva.

Imam ovakve motore :

http://www.youtube.com/watch?v=fl0CJhPiEfY" onclick="window.open(this.href);return false;
http://www.pololu.com/catalog/category/51" onclick="window.open(this.href);return false;

Mislim da je to ovaj najmanji, a omjer redukcije je kao na ovoj snimci utrke.

malo cu jos dici napon na njima, sad trenutno rade na 11.2V PWM, ja bi to digao jos 2-3V gore. i recimo radio malo manjeg robota...

Sam ne znam kako da izvedem povratnu vezu na tako malim motorima, a ako idem na izlaznu osovimu onda mi je to sve neprecizno...
InTheStillOfTheNight
abc
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 498
Joined: 08-03-2007, 20:19
Location: Hrvatska

Re: Rekord velike Slovenije

Post by abc »

Povratna veza direktno sa motora bi bila idealna. Ali koliko sam vidio ona crna crta je dosta debela dako da mozes vise senzora da stavis dolje ili jedan veci koji bi pratio otstupanje od sredine odnosno najmanje svjetla ulazi u senzore , ali da sensori hvataju vise nego je debljina crte da znas tocno gdje je robot u odnosu na crtu , ako sa jedne strane sensori svijetle na svjetlu povrsinu vise svjetla treba da se odbije nego od crne , barem u teoriji bi tako trebalo ,ali mislim da bi trebali da sensori trebaju da imaju i predajnik i prijemnik kodirani na visoj frekvenciji od osvjetljenja i preko te povratne veze da regulises preko PI ili PID regulatora da pokusavaju da drze sredinu preko PWM . Treba vrlo brz procesor pozeljno neki DSP i za sto nizi napon i potrosnju. Takodje mislim da je bolje uzeti jaci motor sa manjim prenosnim odnosom , jer forsiranjem visim naponom trosis vise struje a i veci prenosni odnos znaci i vece gubitke. Odlucuju nijanse u performansama motora koji manje trosi i brzi je. ACCU baterije mogu da daju ogromne struje i imaju dosta veliki kapacitet , pretpostavljam da su litijumske tu najbolje odnosno najlakse ali i najskuplje .
Na onoj snimci uvjek onaj iza izgura ovog naprijed u krivini jer onaj iza ide u tom momentu ravno i ide brze i stabilniji je nego onaj koji skrece.

Oni mali robotici svi izgledaju isto kao da su izasli ispod iste "prese".
abc
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 498
Joined: 08-03-2007, 20:19
Location: Hrvatska

Re: Rekord velike Slovenije

Post by abc »

Malo sam dosadan ali da pokusam da objasnim ideju regulacije a pretpostavljam da su i oni tako radili.

Ako nekom analognom elektronikom pretvaramo poziciju robota iznad crne crte u recimo napon , 2,5V je sredina crte , sto je napon nizi robot sve vise odstupa lijevo i napon visi od 2,5V robot sve vise otstupa desno. Upotrijebimo neki konvertor napona u frekvenciju ili jos bolje dva takva i osposobimo dva brojaca na nekom brzom mikrokontroleru koji bi ocitavao nekoliko tisuca puta u sekundi brojace i na osnovu njih upravljao sa dva PWM izlaza ako je robot na sredini oba PWM imaju konstatni izlaz recimo jedan radi na 49% drugi 52% na ravnoj crti zbog razlike u motorima , reduktorima, ako dolazi do korekcije mikrokontroler to odmah koriguje i hvata sredinu. PID algoritam treba da se vrti sto brze imamo sto precizniju regulaciju cak i na jako velikim brzinama i u krivini znaci PID petlja se vrsi nekoliko ticuca puta u sekundi i koriguje motore.

Zasto PID zato sto se moze za svaku promjenu tereta podloge , snage baterija preko proporcionalnog , diferencijalnog i integralnog koeficijenta idealno namjestiti uredjaj da ide glatko bez oscilacija.

Najbolje ako imas neki motor sa povratnom spregom isprogramiras taj atmega sa onim softverom od japanca pa da sam vidis o cemu se radi , motor sa namjestenim PID regulatorom hvata poziciju od delice stepena u kasnjenju od nekoliko milisekundi.

Postoje neki primjeri PID algoritama ali za dsPIC u C-u ali mislim da je atmel slab za to, ovi dsPIC na 5V vrti dosta koda i taj PID algoritam izmedju 5 i 6kHz a njegov klok je na 120MHz i trosi blizu 180mA na 5V , neprihvatljivo za baterijsko napajanje, ovi od 3V trose nekoliko puta manje ali jos puno ali su dosta brzi pa se mogu usporiti i smanjiti potrosnja. Mozda bi 32 bitni atmeli bili bolji sto se tice potrosnje.

Ovo je sve mlacenje prazne slame , dok ne probas nesto konkretno neces znati sta ti stvarno treba i sta bi najbolje radilo, moguce da ti robotici rade kontrolu na sasvim drugom principu.

Dosta sam davio da prekinem :ohno: .
abc
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 498
Joined: 08-03-2007, 20:19
Location: Hrvatska

Re: Rekord velike Slovenije

Post by abc »

Da bi bilo malo jasnije evo ti ovaj pojednostavljeni PID.
Sve varijable su float takodje i koeficijenti. Kompajliraj ga u C-u za neki atmel i provjeri koliko moze da vrti ali pazi moras mu dati vrijednosti da racuna takodje i koeficijente jer neces dobiti stvarno stanje stvari ,znaci u Atmelov studio pa ukljucis tajmer breakpoint na pocetak i stopaj sa tajmerom da vidis kako moze brzo da svari ovu matematiku.
*****************************************************************************
// Get the current value

measured_G = read_curent();
// ovo je float i stavi neku vrijednost umjesto ove read_curent()


// Get the desired value

required_G = (float)set_value;
//u simulaciji i ovdije stavi neku float vrijednost umjesto set_value


// Difference between required and actual value
Error = (float)required_G - measured_G;







if(PID_PROPORTIONAL){

// Proportional term

Control_i = (float)(Controller_output_G + (Error / PID_PROPORTIONAL));



}



if(PID_INTEGRAL){

Sum_G += Error;

Control_i +=(float) (Sum_G / (1 + PID_INTEGRAL));

}

if(PID_DIFFERENTIAL){



Control_i += (float)((Error - Old_error_G) / (1 + PID_DIFFERENTIAL));



// Store error value

Old_error_G = Error;

}



if (Control_i > 100)

{

Control_i = 100;

Sum_G -= Error; // Windup protection

}



if (Control_i <= 0)

{

Control_i = 0;

Sum_G -= Error; // Windup protection

}


Controller_output_G = (int)Control_i;


// ovdje dobijas relativnu vrijednost u Control_i koji je float nju prati u simulatoru da li se mijenja u //svakom ciklusu
//koeficijente stavi recimo PID_PROPORTIONAL=0.005;
//PID_INTEGRAL=0.0003;
//PID_DIFFERENTIAL=0.0001;
***********************************************************************************

Prakticno sve varijable su ti float takodje daj kompajleru 24 bitnu preciznost racunanja


Znaci za tvoj motor moras da znas brzinu odziva sustava , laicki receno da znas kojom brzinom da racunas PID , odnosno koliko max motor sme da se okrene a da ne izracunas PID jer ako sporo regulises motor dobices oscilacije i nepreciznost. Ovo je tek pocetak price onda na stvarnom motoru i malo komplikovanijim PID treba odrediti P I i D koeficijente da uredjaj najbolje radi bez oscilacija.

Da ne zaboravim neznam kako radi WINAVR ali moze da se desi da ako nema ovako zadano
"Error = (float)required_G - measured_G;" vec samo "Error = required_G - measured_G;" da u ovom drugom uopste ne racuna sa float iako su sve varijable tipa float , provjeri u simulatoru.
abc
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 498
Joined: 08-03-2007, 20:19
Location: Hrvatska

Re: Rekord velike Slovenije

Post by abc »

Nocni sad sam nasao onaj sajt sa tim robotima, he he bio sam u pravu motori imaju opticke enkodere, imaju 5 reflektivnih sensora dolje, imaju h bridgeve i , hall efekt strujnu kontrolu , sve u smd tehnici, mislim da imaju jos jedan mc u kojem je "glavni servo kod"(po kojem nemoze da se prcka tek toliko da se firma osigura od kopiranja :D ) a ostalo sto su ostavili da se moze programirati je samo da se djeca malo igraju :D.

Preznojices se ti da napravis sto moze ovog da potuce ide 1 m/s , u startu si hendikepiran ovako lagan neces napraviti "home made" nema sanse , mozes jedino da pokusas nekim dobrim softverskim programom da ga "skantas" a i malo "varanja" bi dosta pomoglo :D .
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: Rekord velike Slovenije

Post by InTheStillOfTheNight »

ABC ne radi se tu o crti, taj link sam koristio samo zbog motora koje cu koristiti na svom robotu... Radi se o ovom drugom linku: LABIRINT, tu nema nikakvih crta, a sve se svodi na mjerenje udaljenosti između nekog senzora i pregrade. Vec sam vidio dosta tih natjecanja pa svatko ima neku svoju logiku postavljanja senzora, najcesce IR, te se najvise vozi na nacin da se stalno prati desna ili lijeva strana pregrade.

Taj robot je sa http://www.pololu.com" onclick="window.open(this.href);return false;
Nema nista na motoru za povratnu vezu pa ne znam kako da strpam neki brojac u tako male motore. Nemam tu sad motora ali budem to sve poslikao.

Na sebi ima ATMEGA168 na 20Mhz
Ima jos jedan obicni Driver za motore i pumpa ih sa PWM-om, imam cak i te sve libove i izvorne kodove tog robota.
Napajanje je izvedeno Step UP konverterom koji baterijski napon dize na nekih 12.25V... Ovo je trik koji nikada nisam vidio, ali likovi su fenomeni.

Ovo sa Step Up konverterom je riješenje bolnog problema sa padom napona baterija. To sam imao problema na svim robotima... Ja podesim sve savršeno i naravno odaberem komponente da sve bude najlakše najštedljivije te da ne moram vući "Kilu" baterija na robotu i onda mi se dogodi problem jer se pražnjenjem baterija mijenja brzina motora i naravno više mi senzori ne mogu odreagirati onako kako je podešeno.

Sto se tice tih nekih elemenata nisu mi kriticni, sad sam malo uhvatio "Bozicni Dah" tako da cu prvu verziju shme nacrtati nagodinu.

Moja neka vizija je da na robota stavim one motore sto voze po crti, ATMEGA 168 QFN, Neki driver za PWM, 78L05 za napajanje Atmela i STEP up konverter na nekih 14 ili 15 V za napajanje motora, tj najbolje napraviti regulaciju da ga mogu podesiti...

Jos nemam uopce ideja kako čitati udaljenost od pregrade... Prije sam koristio IR tako da odašiljem signal koji se odbija od pregrade i prema tome mogu procjeniti koliko sam daleko, ali ovo je dosta spora i neprecizna metoda i to ne bi podrzalo tako veliku brzinu...

Sad cu biti malo odsutan zbog ovog Bozica i Nove, pa tek nakon odmora cu nacrtati ovaj prvi dio sa motorima PWM-om napajanjem, i nekim osnovnim funkcijama pa cemo onda vidjeti sto dalje...

Hvala na ovom linku za PWM.
InTheStillOfTheNight
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: Rekord velike Slovenije

Post by InTheStillOfTheNight »

Evo i pojednostavljena shema tog 3pi robota
http://www.sparkfun.com/datasheets/Robo ... ematic.pdf" onclick="window.open(this.href);return false;

Izbacit cu iz toga sve sto mi ne treba za voznju labirinta, i onda bi trebao odabrati senzore i riješiti problematiku sa povratom vezom motora, i senzorima...
InTheStillOfTheNight
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: Rekord velike Slovenije

Post by InTheStillOfTheNight »

abc wrote: Preznojices se ti da napravis sto moze ovog da potuce ide 1 m/s , u startu si hendikepiran ovako lagan neces napraviti "home made" nema sanse , mozes jedino da pokusas nekim dobrim softverskim programom da ga "skantas" a i malo "varanja" bi dosta pomoglo :D .
Nitko nije spomenuo da ovo radim "HOME MADE" sve cu raditi u tehnologiji SMD, cak i atmel ide u QFN kucistu, komponente kao otpornici cu staviti sve sto mogu 0603, plocicu budem narucio dvoslojnu koliko je moguce sitno izraditi u Hrvatskoj. Crtu se moze odvoziti i puno brze od ovoga jer je jednostano izvesti brze senzore, a i postoji logika programa koja podržava čuda, ali to je previse jednostavno za napraviti i nije toliko atraktivno pa se zato na vecim natjecanjima nikada ne vozi crta nego labirint koji je 3D okruzenje u kojemu se nije tako lagano snalaziti pri velikim brzinama..
InTheStillOfTheNight
abc
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 498
Joined: 08-03-2007, 20:19
Location: Hrvatska

Re: Rekord velike Slovenije

Post by abc »

Na youtubu sam gledao onaj clip sa onim tipom iz pololu gdje objasnjava i pokazuje sta moze njihov robot, on spominje povratnu vezu pomocu enkodera , moguce ne za sve tipove robota ali neki mozda i imaju, postoje vise servo ploca koje se mogu ugraditi na robota, prodaju takodje kit-ove ,na jednoj plocici sam izbrojao 5 ic jedan je maxov za komunikaciju ova 4 mi lice na bridge drivere, nemogu 100% ocitati oznake, a na ovoj shemi sto si postao je jedan IC za pogon oba motora.
Na njihovom sajtu sam vidjeo da prodaju sharpove IR sensore koji pokazuju udaljenost do prepreke i to mislim cak vise tipova. Pretpostavljam za takvu vrstu robota koju ti trebas.

Eh da ne zaboravim prodaju razne sensore za svoje robote cak i sensore za mjerenje akceleracije.
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: Rekord velike Slovenije

Post by InTheStillOfTheNight »

Imam tih sharpovih senzora, samo ne znam kolika je udaljenost, mislim da imam 0d 4cm-30, te jos neke s manjom udaljenosti, ali nisam ih bas analizirao. Tu mi je malo problem sto bi senzor morao postaviti na neku poziciju da mi nikad ne ide ispod svoje minimalne vrijednosti citanja, jer onda mi izbacuje netocne gluposti. Meni bi trebalo citanje do 30cm, a taj senzor ima minimalnu udaljenost oko 4 cm, sto znaci da ne smije biti bliže pregradi od 4 cm, inace ce mi napon poluditi.

Pregrade labirinta su razmaknute oko 27 cm, i tu jos nisam definirao koju sirinu robota odrediti i koju putanju robota napadati. Opet ce biti dubokih analiza :)


Radio sam jednom sa tim senzorima neki uređaj i ako se ne varam ima uzasnu karakteristiku ako ga priblizimo blize od 4 cm objektu. Događa se to da napon koji je linearano raste od 30cm-4 cm, ispod 4 cm počinje opadati i po tome vise ne mogu procijeniti kada je senzor blize od 4 cm, a kada prikazuje tocnu udaljenost.

Poslikati cu osciloskopom karakteristiku, testirati brzinu odziva te preciznost pa da vidimo koliko bi to bilo realno riješenje za ovu problematiku.

Sad me nece biti sve do poslje nove godine, a ovo i tako ne mogu raditi izvan Zagreba, tak da je ovo dosta samo filozofiranje koje ne mogu fizicki odraditi dok se ne vratim u ZG, pa najbolje da se pricekaju ovi pocetni testovi senzora i pocetna shema robota... Svima zahvaljujem na prijedlozima...

SrEtAn BoZiC I NoVa GoDiNa, DoBrO Se PrOvEdITe I Do TiPkAnJA,
OdJaVa
InTheStillOfTheNight
Post Reply