Sadržaj:

1KG Sumobot Build: 6 koraka
1KG Sumobot Build: 6 koraka

Video: 1KG Sumobot Build: 6 koraka

Video: 1KG Sumobot Build: 6 koraka
Video: Sumo Robot 1kg Petrosains RBTX Final 2022 | Ultimate Battle of Robot Titans 2024, Jun
Anonim
1KG Sumobot Build
1KG Sumobot Build

Ovaj Instructable će vas voditi kroz proces dizajniranja i izgradnje sumobota od 1 kilograma.

Ali prvo, malo pozadine zašto sam odlučio ovo napisati. Upravo sam namjeravao popraviti svog starog sumobota za takmičenje kada sam shvatio da nikada nisam napravio Instructable o tome kako napraviti sumobota. Šutio sam u Instructables -u poslednjih godinu dana, pa sam odlučio da se vratim sa ovim Instructable -om o tome kako da napravim 1KG sumobot.

Prije svega, mnogi od vas bi se zapitali: šta je sumobot?

U osnovi, sumobot je vrsta robota koji se koristi na sumobot ili robot-sumo takmičenjima. Kao što ime govori, cilj je međusobno istiskivanje iz ringa, slično sumo hrvanju. Sam sumobot dizajniran je s jedinom svrhom da izgura drugog sumobota iz prstena. Sumobot u ovom uputstvu ima 1 kilogram. Postoje, međutim, i druge kategorije težine poput 500 grama i 3 kilograma.

Potrebne vještine:

  • Poznavanje CAD -a (računarski potpomognuti dizajn)
  • Lemljenje
  • Programiranje u Arduinu

Za ovaj projekat nije potrebno mnogo vještina. Jednostavno poznavanje CAD -a, lemljenje i programiranje dug su put. Neka vas ne zabrinjava koliko zvuči komplikovano računarsko projektovanje. Autodesk nudi besplatne sveobuhvatne vodiče na vlastitom softveru (i sam koristim Fusion 360) i izuzetno je korisno za početnike koji uče užad. Za mene je važnija volja i spremnost za učenje, i naravno da se usput zabavljam.

S ovim, počnimo.

P. S. Takođe ulazim u ovaj Instructable na takmičenju Make it Move. Ako vam je ovaj Instructable odličan, glasajte i za mene. (Želim majicu; izgleda stvarno super:))

Korak 1: Lista dijelova

Lista dijelova:

Aluminijski lim 0,090”6061 - 12” x 12”(ili bilo koji aluminijski lim 0,090” /2,2 mm koji se može CNC -om. Odabrao sam 6061 jer bi se to koristilo za glavno tijelo, a 6061 ima priličnu čvrstoću)

Aluminijski lim od 0,5 mm - 12”x 12” (Bilo koja legura bi radila; ovo je samo za gornji poklopac i oštricu. Koristio sam rezervne aluminijske otpatke)

Aluminijski lim od 5 mm (Opet, svaka legura bi radila. Moje su bile 7075 aluminijskih ostataka.)

2 x 12V DC motor velikog zakretnog momenta (Svaki motor velikog zakretnog momenta će raditi, poput ovog iz Amazona.)

2 x naplatak (opet, svaki naplatak bi radio, ovisno o vašem motoru. Ako imate osovinu motora od 5 mm, ovi kotači će raditi odlično. Moji su zapravo neki stari silikonski kotači koje sam imao)

4 infracrvena senzora udaljenosti (koristim Sharp infracrvene senzore udaljenosti, koji se mogu kupiti u više trgovina, poput ovog iz Pololua i ovog iz Sparkfuna.)

2 IC senzora (opet sam ih dobio od Sparkfuna.)

1 Mikrokontrolerska ploča (koristim ATX2 samo zato što je to potrebno. Običan Arduino Uno bi zapravo bio bolji zbog jednostavnosti upotrebe).

1 3S litijum -polimerna baterija (LiPo. 3S LiPos su 12 volti. Kapacitet od 800 do 1400 mah bi radio.)

1 Pogonitelj motora (Opet ovisi o tome koliko snage vaš motor može izvući. Ovo ide izravno na Arduino Uno i može osigurati do 5A struje.)

Žice, kablovi i konektori (Za povezivanje senzora sa pločom i za povezivanje sa laptopom.)

M3 vijci i matice

Epoksid

Karton

Laptop (za programiranje ploče)

Alati poput škara, skidača žice i lemilice.

Korak 2: Sklapanje šasije

Sklapanje šasije
Sklapanje šasije
Sklapanje šasije
Sklapanje šasije
Sklapanje šasije
Sklapanje šasije
Sklapanje šasije
Sklapanje šasije

Koristio sam Fusion 360, sve u jednom 3D CAD/CAM softver u oblaku, za dizajniranje šasije. Autodesk ovdje nudi prekrasne vodiče. Učio sam uglavnom gledajući videozapise i pokušavajući ih sam napraviti. Neću vas pokušavati naučiti kako koristiti Fusion 360; Pustit ću profesionalce da rade svoje.

Sam dizajn sastoji se od jedne glavne baze, jedne oštrice, jednog gornjeg poklopca, dva držača motora i dva (ili četiri) 3D štampana držača. Glavna baza je aluminij 2,2 mm, nosači motora od aluminija 5 mm, oštrica je aluminij 0,5 mm, dok gornji poklopac može biti od aluminija od 0,5 mm ili od običnog kartona. Koristio sam karton jer aluminij teži par grama više, a prešao sam granicu od 1 kilograma za 10 grama. S druge strane, 3D štampane zagrade štampane su ABS -om, na 50% ispuni.

Dizajn koji je zahtijevao aluminij izvezen je u.dxf datoteke i poslan lokalnoj kompaniji za lasersko rezanje ovdje na Filipinima. U međuvremenu su 3D štampani dijelovi izvezeni u STL i ponovo poslani lokalnoj kompaniji za 3D štampanje.

Odricanje od odgovornosti: Ponovno sam upotrijebio svoj stari sumobot koji više ne radi, ali koristi ovaj dizajn, tako da su neki dijelovi već sastavljeni na fotografijama. Ja ću vas, međutim, provesti kroz proces sastavljanja svih komada zajedno.

Nakon što ste izrezali dijelove, možete početi s gornjim poklopcem, podupiračem i oštricom ili nosačem motora.

Gornji poklopac u dizajnu izrađen je od aluminija, ali zbog ograničenja težine koristio sam karton. Režem karton po istim specifikacijama kao i po dizajnu.

3D ispisani podupirač pričvršćen je sprijeda vijcima i koristi se za doslovno pričvršćivanje oštrice. Oštrica je zalijepljena za podlogu pomoću epoksida. Rupe za vijke na oštrici i glavna baza služe za usmjeravanje pozicioniranja i paze da su točno spojeni. Na glavnoj bazi postoje kružne rupe koje možete popuniti epoksidom kako biste oštricu zalijepili za glavnu podlogu. Velika površina rupa omogućava epoksidu da bolje uhvati oštricu i spriječi njeno odvajanje od podloge. IC senzor se također može zalijepiti za dno oštrice pomoću epoksida, baš kao na fotografijama. Uvjerite se da je dno senzora okomito na pod.

Da biste motor montirali na bazu, prvo ga uvrnite u nosač motora. Međutim, prvo morate lemiti žice na motor, budući da su vodiči na stražnjoj strani motora i da će ih biti teško doći do njih nakon što su pričvršćeni na podnožje. Motor se poravnava s nosačem motora i pridržava se vijcima. To jest, ako imate motor, uključio sam ga u listu dijelova. U suprotnom možete promijeniti dizajn koji odgovara vašem motoru. U ovom trenutku možete pričvrstiti i naplatak točka na motor. Nosač motora se zatim pričvršćuje na stražnje rupe glavnog postolja.

Ako koristite upravljački program motora koji ne može ići preko Arduina, ili iz bilo kojeg razloga što vozač mora imati svoje područje, postoji prostor između motora i noža za to. Ovaj prostor je predviđen za lipo bateriju i upravljački program motora, u slučaju da vam je potreban dodatni prostor. Budući da već radimo i na donjem dijelu robota, a kasnije bi mu bilo teško pristupiti nakon što se pričvrsti gornji poklopac, možete postaviti vozača motora između noža i motora, baš kao na fotografijama. Dvostrana traka može vam pomoći pri pričvršćivanju na bazu.

Korak 3: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Slijede elektronika, poput senzora, upravljačkog programa motora i ploče.

Ako opet koristite upravljački program motora koji ne ide preko Arduina, počnite spajati žice koje su potrebne za povezivanje s mikrokontrolerom. Za vozača motora sve što mi treba je signalna (plava) i uzemljena (crna) žica. Zavisi od samog vozača. Svi vozači trebaju žice za spajanje na bateriju ili izvor napajanja. Kablovi pričvršćeni na moj XT-60 (isti utikač na većini lipo baterija) bili su predebeli, pa sam ih morao skratiti kako bi odgovarao uskim konektorima.

Moj mikrokontroler također dijeli isti izvor napajanja kao i upravljački programi motora, pa sam morao lemiti žice direktno na vodiče konektora XT-60 na upravljačkim programima motora.

Sami IC senzori udaljenosti će možda morati imati zalemljene igle zaglavlja, ovisno o tome koji senzor nabavite. Obično uključuju neke u paket ako ih kupite, pa ih samo lemite po potrebi.

Možda ćete također morati lemiti žice kako biste povezali mikrokontroler sa senzorima, baš kao i ja. Senzor ima svoj konektor; neki koriste JST, dok neki koriste servo zaglavlja. Uz običan Arduino, možete spojiti kratkospojne kabele na Arduino, a zatim drugi kraj kabela zalemiti za kabel koji izlazi iz senzora. Proces funkcionira na isti način s drugim mikrokontrolerima. Žice koje dolaze iz mikrokontrolera lemljene su na žice koje dolaze od senzora.

Korak 4: Spajanje svih dijelova zajedno

Spajanje svih dijelova zajedno
Spajanje svih dijelova zajedno
Spajanje svih dijelova zajedno
Spajanje svih dijelova zajedno
Spajanje svih dijelova zajedno
Spajanje svih dijelova zajedno
Spajanje svih dijelova zajedno
Spajanje svih dijelova zajedno

Senzori i mikrokontroler idu na gornjoj ploči. Montirao sam IC senzore udaljenosti na hrpu kartona kako bih ih podigao iznad mikrokontrolera, jer se žice iza senzora sudaraju s mikrokontrolerom. Primijetite kako na fotografiji postoje samo tri senzora. Tek sam u zadnji trenutak odlučio dodati četvrti senzor udaljenosti na stražnjoj strani robota. Nažalost, više nije bilo mjesta pa sam ga morao postaviti na samu glavnu bazu, odmah iza motora.

Mikrokontroler je zatim pričvršćen na gornju ploču. Ništa previše teško; Samo sam probušio neke rupe u kartonu i zašrafio cijelu ploču na gornju ploču. Ako koristite aluminij, ručna bušilica bi bila neophodna.

Nakon što je sve pričvršćeno na gornju ploču, upotrijebite dvostranu traku da je zalijepite na gornji dio motora.

U ovom trenutku možete početi povezivati svu elektroniku zajedno, poput spajanja senzora i upravljačkog programa motora na mikrokontroler. Ako koristite upravljački program motora koji se samo drži na vrhu Arduina, onda vam to neće predstavljati problem. Ako ne, morat ćete ga spojiti prema ploči prema specifikacijama vozača, baš kao što sam ja učinio.

Nakon što je sve ožičeno, postavite lipo u donji prostor između motora i noža, a zatim uključite mikrokontroler i upravljačke programe kako bi prvi put zasvijetlili.

Korak 5: Programiranje

Kada se sve sastavi, preostaje vam još jedna posljednja stvar: programirajte svog robota.

Programiranje vašeg robota ovisi o strategiji koju želite. Ovdje pretpostavljam da ste kompetentni u programiranju, jer moj vozač motora koristi serijsku (UART) komunikaciju, pa stoga moj program neće raditi za druge vozače motora. Uostalom, u programiranju ne postoji jedna veličina koja odgovara svima.

Da bih vam pomogao, evo osnovne sheme toka mog programa.

ako je netko jako blizu sprijeda, idite punim naponom, ako lijevi ili desni senzor boje otkrije bijelu liniju, vratite se, zatim se okrenite, ako lijevi ili desni senzor udaljenosti nešto otkrije, okrenite se u tom smjeru da stražnji senzor nešto otkrije, okrenite se u tom smjeru ako je netko daleko ispred, idite naprijed, nastavite dalje

Evo cijelog programa ako vas zanima:

#include

// A5 - lijevi senzor boje // A4 - desni senzor boje // A6 - stražnji senzor udaljenosti // A2 - lijevi senzor udaljenosti // A3 - desni senzor udaljenosti // A1 - prednji senzor udaljenosti // motor 1 - desno // motor 2 - postavljanje lijeve praznine () {uart1_set_baud (9600); Serial1.write (64); Serial1.write (192); UREDU(); zvučni signal (2); setTextColor (GLCD_BLUE); glcd (1, 0, "Inicijalizovano"); kašnjenje (4900); }

void loop () {{100} {101}

int frontDistanceValue = analogRead (A1); int leftDistanceValue = analogRead (A2); int rightDistanceValue = analogRead (A3); int rearDistanceValue = analogRead (A6); int leftColorValue = digitalRead (A5); int rightColorValue = digitalno čitanje (A4); if (frontDistanceValue> 250) {// netko ispred, maksimalna snaga Serial1.write (127); Serial1.write (128); } else if (leftColorValue == 0) {// dodirnuta ivica // obrnuti Serial1.write (1); Serial1.write (255); kašnjenje (400); Serial1.write (1); Serial1.write (128); kašnjenje (300); } else if (rightColorValue == 0) {// dodirnuta ivica // obrnuti Serial1.write (1); Serial1.write (255); kašnjenje (400); Serial1.write (127); Serial1.write (255); kašnjenje (300); } else if (frontDistanceValue> 230) {// nekako daleko ispred Serial1.write (127); Serial1.write (128); } else if (leftDistanceValue> 250) {// skrenite lijevo Serial1.write (127); Serial1.write (255); kašnjenje (450); } else if (rightDistanceValue> 250) {// skrenite desno Serial1.write (1); Serial1.write (128); kašnjenje (450); } else if (rearDistanceValue> 150) {// blizu leđa Serial1.write (1); Serial1.write (128); kašnjenje (1050); } else if (frontDistanceValue> 180) {// daleko ispred Serial1.write (127); Serial1.write (128); } else {Serial1.write (100); Serial1.write (155); }}

Korak 6: Fotografije

Fotografije
Fotografije
Fotografije
Fotografije
Fotografije
Fotografije
Fotografije
Fotografije

Prikazane su neke fotografije gotovog sumobota.

Nadamo se da ste naučili nešto iz ovog uputstva. Ako vam se sviđa ovaj vodič, glasajte za mene na natječaju Make it Move. Ako ne, rado ću ispraviti sve što ovaj vodič može učiniti boljim.

Sretno učenje!

Preporučuje se: