Turinys:

„Arduino“valdomas servo robotas (SERB): 7 žingsniai (su nuotraukomis)
„Arduino“valdomas servo robotas (SERB): 7 žingsniai (su nuotraukomis)

Video: „Arduino“valdomas servo robotas (SERB): 7 žingsniai (su nuotraukomis)

Video: „Arduino“valdomas servo robotas (SERB): 7 žingsniai (su nuotraukomis)
Video: Single servo robot 2024, Lapkritis
Anonim
„Arduino“valdomas servo robotas (SERB)
„Arduino“valdomas servo robotas (SERB)
„Arduino“valdomas servo robotas (SERB)
„Arduino“valdomas servo robotas (SERB)
„Arduino“valdomas servo robotas (SERB)
„Arduino“valdomas servo robotas (SERB)
„Arduino“valdomas servo robotas (SERB)
„Arduino“valdomas servo robotas (SERB)

Koks geresnis būdas pradėti eksperimentuoti su atvirojo kodo mikrovaldikliais („Arduino“), tada sukuriant savo atviro kodo robotą (CC (SA -BY))? Ką daryti su SERB?

  • (čia) - Kaip prijungti SERB prie interneto ir valdyti jį per „Skype“vaizdo skambutį.
  • (čia) - Kaip valdyti savo SERB naudojant „Wii nunchuck“akselerometrus
  • (čia) - Kaip pridėti kliūčių aptikimo ūsus prie savo roboto
  • (čia) - Kaip pagaminti 30 rinkinių (atvira gamyba)

Funkcijos:

  • Visiškai programuojamas naudojant „Arduino Duemilanove“mikrovaldiklį (arba kitą jūsų pasirinktą mikrovaldiklį).
  • Lituoti nereikia.
  • Akrilo gabalų pjovimo variantų pasirinkimas. (slinkties pjūklas, prieiga prie lazerinio pjaustytuvo, perkant iš anksto supjaustytas dalis)
  • Lengvai išplečiamas ir keičiamas, naudojant papildomas varžtų skyles ir pridedamą duonos lentą.
  • Dvigubas rutulinis guolis galinis ratas.
  • Pradės veikti 1–2 valandas. (iš komplekto)
  • Atviro kodo dizainas (sukurkite tiek, kiek norite)

(„Shameless Plug“) JK ir kaip „Arduino“dalykai? Peržiūrėkite mūsų naujai atidarytą internetinę parduotuvę oomlout.co.uk Greitas vaizdo įrašas apie užbaigtą „Arduino“valdomą servo robotą - (SERB), kuriame vykdoma įtraukta bandymo programa (6 veiksmas) Pastaba: šaltinio failai yra prieinami lygiagrečioje instrukcijoje (šaltinio failai) - Kaip padaryti „Arduino“valdomą servo robotą - (SERB)

1 žingsnis: dalys ir įrankiai

Dalys ir įrankiai
Dalys ir įrankiai

Visus varžtus galite rasti vietiniame „Home Depot“. Kitas dalis galima rasti internete (kiekvienai pateikiau nuorodą į savo mėgstamą šaltinį). Dalių sąrašas: „Oomlout.com“parduotuvėje (čia) galima įsigyti paketą, kuriame yra visi aparatūros elementai (120 USD). Veržlės ir varžtai:

  • 3 mm x 15 mm varžtas (x20)
  • 3 mm x 10 mm varžtas (x12)
  • 3 mm veržlė (x34)
  • 3 mm poveržlė (x12)
  • 8 mm x 25 mm varžtas (x2)
  • 8 mm veržlė (x2)
  • Riedučių guoliai (x2) (VXB) (tai yra standartiniai riedučių guoliai, todėl juos galima išgelbėti iš poros ritininių menčių arba riedlentės)

Padangos

  • Didelis sandarinimo žiedas (4,5 col. ID 3/16 col. Karoliukų brūkšnys #349) (x2) („McMaster-Carr“gaminio Nr. 9452K407)
  • Mažas sandarinimo žiedas (3/4 "ID 3/16" karoliukų brūkšnys #314) (x1) ("McMaster-Carr" produktas #9452K387)

Elektronika

  • „Arduino Duemilanove“(x1) („Maker Shed“)
  • Nuolatinio sukimosi servo sistema (x2) (paralaksas)
  • 400 kontaktinė duonos lenta (x1) (visa elektronika))
  • Keturių AA baterijų dėžutė (x1) (visa elektronika)
  • 9V akumuliatoriaus spaustukas (x1) (visa elektronika)
  • 2,1 mm kištukas (x1) (visa elektronika)
  • 3 kontaktų antraštė (x2) (visa elektronika)
  • A -B USB kabelis - spausdintuvo stilius (x1) (visa elektronika) (į komplektą neįeina)

Baterijos:

  • AA baterija (x4) (į komplektą neįeina)
  • 9 V baterija (x1) (į komplektą neįeina)

Viela: (visa viela yra 22 AWG kietas, aš įsigyju kasyklą per „McMaster-Carr“)

  • 15 cm violetinė (x2)
  • 15 cm juoda (x1)
  • 5 cm juoda (x2)
  • 5 cm raudona (x2)

Įrankiai

  • Atsuktuvas (x1) („Philips“)
  • Adatos replėms (x1)

2 žingsnis: gabalų pjaustymas

Pjaustymo gabalai
Pjaustymo gabalai
Pjaustymo gabalai
Pjaustymo gabalai
Pjaustymo gabalai
Pjaustymo gabalai
Pjaustymo gabalai
Pjaustymo gabalai

Prašome pasirinkti, kokius veiksmus atlikti, atsižvelgiant į pasirinktą pjovimo parinktį. 1 variantas (iš anksto supjaustytų dalių pirkimas)

Įsigykite iš anksto supjaustytą važiuoklę iš oomlout.com parduotuvės (čia) (60 USD, įskaitant pristatymą į JAV ir Kanadą)

2 variantas (skaitmeninė gamyba (pvz., „Ponoko“) / Prieiga prie lazerinio pjaustytuvo)

  • Atsisiųskite lazerinio pjaustytuvo išdėstymą („03 SERB Ponoko Cutting Layout P2.eps“arba „03- (SERB) -Ponoko Cutting Layout (P2). Cdr“)
  • Iškirpkite failus naudodami „Ponoko“arba savo lazerinį pjoviklį (naudodami 3 mm,.118 colių akrilą (kartais parduodamas kaip.125 colių)

3 variantas (slinkties pjūklas ir gręžtuvas)

  • Atsisiųskite ir atsispausdinkite PDF šabloną (pasirinkite failą, atitinkantį jūsų popieriaus dydį) 03- (SERB) -ScrollSaw Pattern (raidė).pdf 03- (SERB) -ScrollSaw Pattern (A4).pdf (svarbu, kad nebūtų mastelio piešimas spausdinant)
  • Išmatuokite spaudinyje esančią liniuotę su liniuote, kuria pasitikite, jei jos neatitinka modelio mastelio ir prieš perspausdindami turite peržiūrėti savo spausdintuvo nustatymus. Jei jie sutampa, pirmyn.
  • Klijuokite modelį prie akrilo lakšto (3 mm,.118 "(kartais parduodamas kaip.125").
  • Gręžkite skyles.
  • Iškirpkite gabalus naudodami slinkimo pjūklą

3 žingsnis: Surinkimas

Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas

Sveikiname, kad 90% proceso baigta, tiesiog atsisiųskite šio žingsnio surinkimo instrukcijas (04- (SERB)-Surinkimo vadovas.pdf) ir po nedidelio lego/mechano stiliaus surinkimo būsite pasiruošę laidui. Norėdami jus linksminti pakeliui, yra mano susirinkimo laikas:

4 žingsnis: laidų prijungimas

Laidai
Laidai
Laidai
Laidai

Kai visi dideli gabalai kartu, laikas pridėti mažas elektrines gyslas, kurios leis valdyti mūsų robotą. Norėdami tai padaryti, atsisiųskite ir atsispausdinkite prijungimo schemą (05- (SERB)-laidų schema.pdf). Iš pirmo žvilgsnio jis gali atrodyti gana bauginantis, tačiau jei kiekvieną ryšį užmezgsite nuosekliai ir neskubėsite, jis susitvarkys nepaprastai greitai. Laidai yra gana paprasti ir jūsų grandinei nebus jokios žalos, kol nepridėsite baterijų. Taigi viską prijunkite, patikrinkite dar kartą, tada pridėkite maitinimą.

5 veiksmas: bandymas ir trikčių šalinimas

Testavimas ir trikčių šalinimas
Testavimas ir trikčių šalinimas

Jei užsisakėte rinkinį, „Arduino“buvo iš anksto įdiegta bandymo programa. Tiesiog įdėkite 4 AA baterijas ir prijunkite 9 V bateriją prie „Arduino“. Ir jei viskas buvo padaryta teisingai, jūsų robotas pradės judėti (jis pasuks atsitiktine kryptimi tam tikrą laiką nuo 0,1 iki 1 sekundės, prieš eidamas į priekį atsitiktiniu laiku nuo 1 iki 2 sekundžių, po to pristabdys 2 sekundes prieš pradėdamas iš naujo). Jei nenusipirkote rinkinio, reikia atlikti papildomą veiksmą. Atsisiųskite pridėtą ZIP failą (07- (SERB)-SERB-Test Arduino Program.zip). Tada išpakuokite jį savo „Arduino“eskizų kataloge (numatytasis „mano dokumentai / Arduino“) ir atsisiųskite jį į savo arduino plokštę. (jei esate naujokas „Arduino“, ženkite vieną žingsnį į priekį, kur yra nuorodų į puikias darbo pradžios pamokas) Dažnos problemos: mano SERB lėtai juda, kai jį reikia sustabdyti. Taip yra dėl to, kad jūsų servos nebuvo tinkamai sukalibruotos, kad sukalibruotumėte savo servus, palaukite, kol programa bus sustabdyta, tada mažu atsuktuvu pasukite potenciometrą servo viduje (maža anga servo korpuse, esančioje tiesiai virš laidų). Pasukite jį į kairę arba į dešinę, kol servo sistema tikrai sustos. Daiktai neveikia tinkamai. Atsiųskite mums el. Laišką su savo simptomais ir mes stengsimės jums padėti, kol laukiate atsakymo, dar kartą patikrinkite visus savo laidus su prijungimo schema iš 4 veiksmo. Jei susiduriate su problema, pridėkite komentarą į šį „Instructable“arba atsiųskite el. laišką adresu [email protected] ir mes stengsimės jums padėti, kad jūsų SERB veiktų

6 žingsnis: programavimas

Programavimas
Programavimas

Fizinis robotas yra baigtas laikas pradėti duoti jam smegenis. Prieš pradėdami susipažinti su „Arduino“valdomo servo roboto - (SERB) programavimo detalėmis - keletas nuorodų į puikius „Arduino“programavimo išteklius internete. „Arduino“pradžios vadovas - vadovas padėti jums pradėti naudotis „Arduinos“, pradedant programavimo aplinkos atsisiuntimu ir baigiant pirmosios programos rašymu. „Arduino“programavimo nuoroda - išsamus, lengvai pateikiamas „Arduino“programavimo kalbos vadovas. Kaip veikia „Servos“- greitas servo variklių veikimo pradžia. - Kaip veikia „Arduino Servo“biblioteka (kaip mes valdome savo servus). Gerai, jei mokotės iš kelio, galite pradėti programuoti. Yra trys būdai, kaip pradėti programuoti „Arduino“valdomą servo robotą - (SERB). 1 parinktis: (SERB_Test.pde modifikavimas) Kartais programuojant lengviausias dalykas yra imtis darbo programos ir pradėti prie jos pridėti savo kodą. Norėdami tai padaryti, atsisiųskite programą „SERB_Test zipped“(07- (SERB)-SERB-Test Arduino Program.zip). Toliau išpakuokite tai savo „Arduino“eskizų aplanke (numatytasis „Mano dokumentai / Arduino“). Galiausiai atidarykite „Arduino“programavimo aplinką ir atsisiųskite ją į „Arduino“. Kodas yra gerai pakomentuotas. (Arba nukopijuokite ir įklijuokite kodą iš šio veiksmo priedo į naują „Arduino“eskizą) 2 variantas: (SERB įpročių pridėjimas prie savo programos) Prie savo esamos programos pridėkite keletą paprastų procedūrų (pvz., „GoForward“), setSpeed (int) ir tt). Norėdami tai padaryti, atsisiųskite tekstinio failo procedūras (07- (SERB)- Simple Routines Text.txt). 1. Nukopijuokite ir įklijuokite preambulės dalį į savo programos pradžią.2. Nukopijuokite ir įklijuokite įprastą dalį į savo programos tekstą. Pridėti skambutį prie serbSetup (); 3 parinktis: (Sukurkite savo programą nuo nulio) Tai nėra per sunku. Viskas, ko jums reikia, yra susipažinti su „Arduino Servo“biblioteka. Tada dešinysis servo įrenginys yra prijungtas prie 9 kaiščio, o kairysis - prie 10 kaiščio. Pastaba: čia bus pridėtos papildomos programos, kai jos bus sukurtos; arba jei ką nors sukursite ir norėtumėte, kad jis būtų rodomas, atsiųskite man asmeninę žinutę ir jis gali būti pridėtas. Priedas: (SERB_Test.pde kodas)

/ * * „Arduino“valdomas servo robotas (SERB) - bandymo programa * Norėdami gauti daugiau informacijos, apsilankykite: https://www.oomlout.com/serb * * Elgesys: paprasta bandymo programa, dėl kurios SERB * atsitiktinai pasisuka į kairę arba į dešinę * atsitiktiniam laikotarpiui nuo 0,1 iki 1 sekundės. * Tada SERB važiuos į priekį atsitiktine tvarka * nuo 1 iki 2 sekundžių. Galiausiai * sustabdykite 2 sekundes prieš vėl pradėdami. * * Laidai: dešinysis servo signalas - 9 kaištis * Kairysis servo signalas - 10 kaištis * * Licencija: Šis darbas yra licencijuotas pagal „Creative Commons“* „Attribution -Share Alike 3.0 Unported License“. Norėdami * peržiūrėti šios licencijos kopiją, apsilankykite * https://creativecommons.org/licenses/by-sa/3.0/ * arba atsiųskite laišką „Creative Commons“, 171 Second * Street, Suite 300, San Francisco, California 94105, * JAV. * */// --------------------------------------------- ----------------------------- // ARDUINO KONTROLIUOJAMO SERVO ROBOTO (SERBO) PRAMBOS PRADA #apima #define LEFTSERVOPIN 10 #define RIGHTSERVOPIN 9Servo kairėServo; Servo dešinėServo; int greitis = 100; // nustato roboto greitį (abu servai) // procentas tarp 0 ir 100 // ARDUINO KONTROLIUOTO SERVO ROBOTO (SERBO) PABAIGA // ---------------- -------------------------------------------------- --------/ * * nustato smeigtukus į atitinkamas būsenas ir pritvirtina servo servus. Tada pauzė * 1 sekundei prieš pradedant programą */ void setup () {serbSetup (); // nustato visų būtinų // smeigtukų būseną ir prideda servo prie jūsų eskizo randomSeed (analogRead (0)); // nustato atsitiktinio skaičiaus sėklą su // kažkuo šiek tiek atsitiktiniu vėlavimu (1000);}/ * * pasuka robotą į kairę arba į dešinę (atsitiktinai) tam tikrą laikotarpį nuo * 0,1 iki 1 sekundės. Prieš eidami į priekį atsitiktine tvarka * nuo 1 iki 4 sekundžių. Prieš sustabdydami dvi sekundes, tada vėl pradėdami *. */Void loop () {turnRandom (100, 1000); // Atsitiktinai pasisuka į kairę arba į dešinę // atsitiktinio laiko tarpui nuo.1 sekundės // iki vienos sekundės goForwardRandom (1000, 2000); // Eina į priekį atsitiktine tvarka // nuo 1 iki 2 sekundžių goStop (); // Sustabdo roboto uždelsimą (2000); // pauzė 2 sekundėms (tuo pat metu sustabdyta)}/ * * atsitiktine tvarka pasuka robotą į kairę arba į dešinę nuo * minTime (milisekundės) iki maxTime (milisekundės) */void turnRandom (int minTime, int maxTime) {int pasirinkimas = atsitiktinis (2); // Atsitiktinis skaičius nuspręsti // tarp kairės (1) ir dešinės (0) int turnTime = atsitiktinis (minTime, maxTime); // Atsitiktinis pauzės numeris // laikas, jei (pasirinkimas == 1) {goLeft ();} // Jei atsitiktinis skaičius = 1, tada pasukite // į kairę {goRight ();} // Jei atsitiktinis skaičius = 0, tada turn // vėlavimas į dešinę (turnTime); // uždelsimas atsitiktiniam laikui}/ * * eina į priekį atsitiktiniam laikotarpiui tarp minTime (milisekundžių) * ir maxTime (milisekundžių) */void goForwardRandom (int minTime, int maxTime) {int forwardTime = random (minTime, maxTime); // nustatyti atsitiktinį laiką iki // eiti į priekį goForward (); // nustato SERB persiuntimo delsa (forwardTime); // vėlavimai atsitiktiniam laikotarpiui} // ---------------------------------------- -------------------------------- // ARDUINO KONTROLIUOJAMO SERVO ROBOTO (SERBO) MUTŲ PRADŽIA/ * * nustato jūsų arduino, kad kreiptųsi į jūsų SERB naudodami įtrauktas procedūras*/void serbSetup () {setSpeed (sparta); pinMode (LEFTSERVOPIN, OUTPUT); // nustato kairįjį servo signalo kaištį // į išvesties pinMode (RIGHTSERVOPIN, OUTPUT); // nustato dešinį servo signalo kaištį // išvesti leftServo.attach (LEFTSERVOPIN); // prideda kairįjį servo dešinįjįServo.attach (RIGHTSERVOPIN); // pridedamas dešinysis servo goStop ();}/ * * nustato roboto greitį tarp 0- (sustabdytas) ir 100- (visu greičiu) * PASTABA: greitis nepakeis dabartinio greičio, turite pakeisti greitį *, tada paskambinkite iš eigos metodų prieš įvykstant pakeitimams.*/void setSpeed (int newSpeed) {if (newSpeed> = 100) {newSpeed = 100;} // jei greitis didesnis nei 100 // padarykite jį 100, jei (newSpeed <= 0) {newSpeed = 0;} // jei greitis mažesnis nei 0, tai // it 0 speed = newSpeed * 0.9; // padidina greitį // nuo 0 iki 90}/ * * siunčia robotą į priekį */void goForward () {leftServo.write (90 + greitis); rightServo.write (90 greičių);}/ * * siunčia robotą atgal */void goBackward () {leftServo.write (90 greičių); rightServo.write (90 + greitis);} / * * siunčia robotą į dešinę * /void goRight () {leftServo.write (90 + greitis); rightServo.write (90 + greitis);}/ * * siunčia robotą į kairę */void goLeft () {leftServo.write (90 - greitis); rightServo.write (90 - greitis);}/ * * sustabdo robotą */void goStop () {leftServo.write (90); rightServo.write (90);} // ARDUINO VALDOMO SERVO ROBOTO (SERBO) PASKIRTIES PABAIGA // ---------------------------- -----------------------------------------------

7 žingsnis: baigta, kiti, kurie baigė ir ateitis

Baigta, kiti, kurie baigė ir ateitis
Baigta, kiti, kurie baigė ir ateitis
Baigta, kiti, kurie baigė ir ateitis
Baigta, kiti, kurie baigė ir ateitis
Baigta, kiti, kurie baigė ir ateitis
Baigta, kiti, kurie baigė ir ateitis
Baigta, kiti, kurie baigė ir ateitis
Baigta, kiti, kurie baigė ir ateitis

Sveikiname pasiekus šį tikslą ir tikiuosi, kad jums smagu su „Arduino“valdomu servo robotu - (SERB). Michaelas Beckas „SERB“- Michaelas Thingiverse.com rado SERB planus ir išpjovė jį iš geltono ir raudono akrilo. Manau, kad tai atrodo puikiai. Mikės SERB - Mike'as (iš Sent Luiso srities robotų klubo ROBOMO) draugas lazeriu nupjovė SERB važiuoklę ir panaudojo savo robotų žinias, kad ją pradėtų eksploatuoti. Manau, kad tai atrodo nuostabiai mėlyna spalva. (išsamesnės informacijos apie tai ir kitus jo robotus rasite jo svetainėje (čia). Šiame skyriuje bus išsami informacija apie būsimus pokyčius ir priedus (jie bus pateikti čia, kol jie nebus tinkamai dokumentuoti). Bet aš taip pat norėčiau parodyti nuotraukas kitų žmonių SERB. Taigi, jei baigėte, atsiųskite man asmeninę žinutę su nuotrauka ir keliais žodžiais (ar tai būtų aprašymas, ar nuoroda į jūsų svetainę), ir aš ją pridėsiu čia. („Shameless Plug“) šią pamokomą informaciją rasite kitų įdomių atvirojo kodo projektų svetainėje oomlout.com.

Pirmasis prizas „SANYO eneloop“baterijų maitinimo konkurse

Rekomenduojamas: