Je! Unataka kujifunza jinsi ya kujenga robot yako mwenyewe? Kuna aina nyingi za roboti ambazo unaweza kutengeneza na wewe mwenyewe. Watu wengi wanataka kuona roboti ikifanya kazi rahisi za kusonga kutoka hatua A kwenda kwa uhakika B. Unaweza kutengeneza roboti kabisa kutoka kwa vifaa vya analogi au kununua kit kuanzia kuanzia mwanzo! Kuunda robot yako mwenyewe ni njia nzuri ya kujifundisha umeme na programu ya kompyuta.
Hatua
Sehemu ya 1 ya 6: Kukusanya Robot
Hatua ya 1. Kukusanya vifaa vyako
Ili kujenga robot msingi, utahitaji vifaa kadhaa rahisi. Unaweza kupata zaidi, ikiwa sio yote, ya vifaa hivi kwenye duka lako la kupendeza la elektroniki, au wauzaji kadhaa mkondoni. Vifaa vingine vya msingi vinaweza kujumuisha vifaa hivi pia. Roboti hii haiitaji kutengenezea:
- Arduino Uno (au mdhibiti mwingine mdogo)
- 2 servos zinazoendelea za mzunguko
- Magurudumu 2 ambayo yanafaa servos
- Roller 1 ya caster
- 1 ndogo ya mkate isiyo na mkate (tafuta ubao wa mkate ambao una laini mbili hasi na hasi kila upande)
- Sensorer ya umbali 1 (na kebo ya kiunganishi cha pini nne)
- Kitufe 1 cha kifungo cha kushinikiza
- Kataa 1 10kΩ
- Cable 1 USB A hadi B
- Seti 1 ya vichwa vilivyovunjika
- 1 6 x AA mmiliki wa betri na 9V DC nguvu jack
- Pakiti 1 ya waya za kuruka au waya-gauge 22-gauge
- Mkanda wenye nguvu wa pande mbili au gundi ya moto
Hatua ya 2. Pindisha kifurushi cha betri ili nyuma ya gorofa iwe juu
Utajenga mwili wa roboti ukitumia kifurushi cha betri kama msingi.
Hatua ya 3. Patanisha servos mbili mwisho wa kifurushi cha betri
Huu unapaswa kuwa mwisho kwamba waya wa kifurushi cha betri hutoka kwa Huduma zinafaa kugusa sehemu za chini, na mifumo inayozunguka ya kila mmoja inapaswa kuangazia pande za kifurushi cha betri. Servos lazima ziwe sawa ili magurudumu yaende sawa. Waya kwa servos lazima kuja kutoka nyuma ya pakiti betri.
Hatua ya 4. Fungamanisha servos na mkanda wako au gundi
Hakikisha kuwa wameunganishwa kwa nguvu kwenye kifurushi cha betri. Migongo ya servos inapaswa kuwa iliyokaa sawa na nyuma ya pakiti ya betri.
Servos sasa inapaswa kuchukua nusu ya nyuma ya kifurushi cha betri
Hatua ya 5. Bandika ubao wa mkate haswa kwenye nafasi wazi kwenye kifurushi cha betri
Inapaswa kutegemea mbele ya kifurushi cha betri kidogo kidogo na itaenea zaidi ya kila upande. Hakikisha imefungwa salama kabla ya kuendelea. Safu "A" inapaswa kuwa karibu zaidi na servos.
Hatua ya 6. Ambatanisha mdhibiti mdogo wa Arduino kwenye vilele vya servos
Ikiwa uliunganisha servos vizuri, inapaswa kuwe na nafasi tambarare iliyofanywa na wao kugusa. Bandika bodi ya Arduino kwenye nafasi hii tambarare ili viunganisho vya USB na Nguvu za Arduino ziangalie nyuma (mbali na ubao wa mkate). Mbele ya Arduino inapaswa kuwa tu kupindukia ubao wa mkate.
Hatua ya 7. Weka magurudumu kwenye servos
Bonyeza kwa nguvu magurudumu kwenye utaratibu unaozunguka wa servo. Hii inaweza kuhitaji nguvu kubwa, kwani magurudumu yameundwa kutoshea kwa kukaba iwezekanavyo kwa traction bora.
Hatua ya 8. Ambatisha caster chini ya ubao wa mkate
Ikiwa unapindua chasi juu, unapaswa kuona ubao wa mkate uliopitisha pakiti ya betri. Ambatisha caster kwenye kipande hiki kilichopanuliwa, ukitumia risers ikiwa ni lazima. Caster hufanya kama gurudumu la mbele, ikiruhusu roboti igeuke kwa urahisi kuelekea upande wowote.
Ikiwa umenunua kit, caster anaweza kuwa alikuja na risers chache ambazo unaweza kutumia kuhakikisha kuwa kasta huyo anafikia chini. i
Sehemu ya 2 ya 6: Wiring Robot
Hatua ya 1. Vunja vichwa viwili vya pini 3
Utatumia hizi kuunganisha servos kwenye ubao wa mkate. Sukuma pini chini kupitia kichwa ili pini zitoke kwa umbali sawa kwa pande zote mbili.
Hatua ya 2. Ingiza vichwa viwili kwenye pini 1-3 na 6-8 kwenye safu ya E ya ubao wa mkate
Hakikisha kuwa zimeingizwa vizuri.
Hatua ya 3. Unganisha nyaya za servo kwa vichwa, na kebo nyeusi upande wa kushoto (pini 1 na 6)
Hii itaunganisha servos kwenye ubao wa mkate. Hakikisha servo ya kushoto imeunganishwa na kichwa cha kushoto na servo ya kulia kwa kichwa cha kulia.
Hatua ya 4. Unganisha waya za jumper nyekundu kutoka kwa pini C2 na C7 hadi pini nyekundu za reli (chanya)
Hakikisha unatumia reli nyekundu nyuma ya ubao wa mkate (karibu na chasisi nyingine).
Hatua ya 5. Unganisha waya nyeusi za kuruka kutoka kwa pini B1 na B6 hadi pini za reli ya bluu (ardhini)
Hakikisha unatumia reli ya bluu nyuma ya ubao wa mkate. Usiwaingize kwenye pini nyekundu za reli.
Hatua ya 6. Unganisha waya nyeupe za kuruka kutoka kwa pini 12 na 13 kwenye Arduino hadi A3 na A8
Hii itaruhusu Arduino kudhibiti servos na kugeuza magurudumu.
Hatua ya 7. Ambatisha sensorer mbele ya ubao wa mkate
Haingiliwi kwenye reli za nguvu za nje kwenye ubao wa mkate, lakini badala yake kwenye safu ya kwanza ya pini zilizochapishwa (J). Hakikisha unaiweka katikati kabisa, na idadi sawa ya pini zinazopatikana kila upande.
Hatua ya 8. Unganisha waya nyeusi ya kuruka kutoka kwa pini I14 hadi pini ya kwanza ya reli ya hudhurungi inayopatikana upande wa kushoto wa sensa
Hii itashusha sensor.
Hatua ya 9. Unganisha waya ya kuruka nyekundu kutoka kwa pini I17 hadi kwenye siri ya kwanza ya reli nyekundu inayopatikana kulia kwa sensa
Hii itawezesha sensa.
Hatua ya 10. Unganisha waya nyeupe za kuruka kutoka pini I15 hadi 9 kwenye Arduino, na kutoka I16 hadi 8
Hii italisha habari kutoka kwa sensorer kwa mdhibiti mdogo.
Sehemu ya 3 ya 6: Wiring Nguvu
Hatua ya 1. Flip robot upande wake ili uweze kuona betri kwenye pakiti
Elekeza ili cable ya kifurushi cha betri itoke kushoto chini.
Hatua ya 2. Unganisha waya nyekundu kwenye chemchemi ya pili kutoka kushoto chini
Hakikisha kuwa kifurushi cha betri kinaelekezwa kwa usahihi.
Hatua ya 3. Unganisha waya mweusi kwenye chemchemi ya mwisho chini-kulia
Cables hizi mbili zitasaidia kutoa voltage sahihi kwa Arduino.
Hatua ya 4. Unganisha waya mwekundu na mweusi kwenye pini za kulia na nyekundu za kulia kulia nyuma ya ubao wa mkate
Cable nyeusi inapaswa kuingizwa kwenye pini ya reli ya bluu kwenye pini 30. Cable nyekundu inapaswa kuingizwa kwenye pini nyekundu ya reli kwenye pini 30.
Hatua ya 5. Unganisha waya mweusi kutoka kwa pini ya GND kwenye Arduino kwa reli ya nyuma ya bluu
Unganisha kwenye pini 28 kwenye reli ya bluu.
Hatua ya 6. Unganisha waya mweusi kutoka reli ya nyuma ya bluu hadi reli ya mbele ya bluu kwenye pini 29 kwa kila moja
Usiunganishe reli nyekundu, kwani unaweza kuharibu Arduino.
Hatua ya 7. Unganisha waya mwekundu kutoka reli ya mbele nyekundu kwenye pini 30 hadi pini 5V kwenye Arduino
Hii itatoa nguvu kwa Arduino.
Hatua ya 8. Ingiza kitufe cha kushinikiza kwenye pengo kati ya safu kwenye pini 24-26
Kitufe hiki kitakuruhusu kuzima roboti bila kuachilia umeme.
Hatua ya 9. Unganisha waya nyekundu kutoka H24 hadi reli nyekundu kwenye pini inayofuata inayopatikana kulia kwa sensa
Hii itawezesha kifungo.
Hatua ya 10. Tumia kontena kuungana H26 na reli ya bluu
Unganisha kwenye pini moja kwa moja karibu na waya mweusi uliounganisha hatua chache zilizopita.
Hatua ya 11. Unganisha waya mweupe kutoka G26 kubandika 2 kwenye Arduino
Hii itaruhusu Arduino kusajili kitufe cha kushinikiza.
Sehemu ya 4 ya 6: Kusanikisha Programu ya Arduino
Hatua ya 1. Pakua na dondoa Arduino IDE
Hii ndio mazingira ya maendeleo ya Arduino na hukuruhusu kupanga maagizo ambayo unaweza kupakia kwa mdhibiti wako mdogo wa Arduino. Unaweza kuipakua bure kutoka arduino.cc/en/main/software. Unzip faili iliyopakuliwa kwa kubofya mara mbili na kusogeza folda ndani hadi mahali rahisi kufikia. Hautasakinisha programu hiyo. Badala yake, utaiendesha kutoka folda iliyoondolewa kwa kubofya mara mbili arduino.exe.
Hatua ya 2. Unganisha pakiti ya betri kwenye Arduino
Chomeka betri nyuma kwenye kontakt kwenye Arduino ili kuipa nguvu.
Hatua ya 3. Chomeka Arduino kwenye kompyuta yako kupitia USB
Windows labda haitatambua kifaa.
Hatua ya 4. Bonyeza
Shinda + R na chapa devmgmt.msc.
Hii itazindua Meneja wa Kifaa.
Hatua ya 5. Bonyeza kulia kwenye "Kifaa kisichojulikana" katika sehemu ya "Vifaa vingine" na uchague "Sasisha Programu ya Dereva
" Ikiwa hautaona chaguo hili, bonyeza "Mali" badala yake, chagua kichupo cha "Dereva", kisha bonyeza "Sasisha Dereva."
Hatua ya 6. Chagua "Vinjari kompyuta yangu kwa programu ya dereva
" Hii itakuruhusu kuchagua dereva aliyekuja na Arduino IDE.
Hatua ya 7. Bonyeza "Vinjari" kisha nenda kwenye kabrasha ulilotoa mapema
Utapata folda ya "madereva" ndani.
Hatua ya 8. Chagua folda ya "madereva" na ubonyeze "Sawa
" Thibitisha kuwa unataka kuendelea ikiwa umeonywa juu ya programu isiyojulikana.
Sehemu ya 5 ya 6: Kupanga Programu ya Robot
Hatua ya 1. Anzisha IDE ya Arduino kwa kubonyeza mara mbili faili ya arduino.exe kwenye folda ya IDE
Utasalimiwa na mradi tupu.
Hatua ya 2. Bandika nambari ifuatayo ili kufanya roboti yako iende sawa
Nambari iliyo hapa chini itafanya Arduino yako kuendelea kusonga mbele.
# pamoja na // hii inaongeza maktaba ya "Servo" kwenye programu // yafuatayo inaunda vitu viwili vya servo Servo leftMotor; Servo kuliaMotor; kuanzisha batili () {leftMotor.attach (12); // ikiwa kwa bahati mbaya umebadilisha nambari za siri kwa servos zako, unaweza kubadilisha namba hapa kuliaMotor.ambatanisha (13); } kitanzi batili () {leftMotor.write (180); // na mzunguko unaoendelea, 180 inaiambia servo isonge kwa kasi kamili "mbele." kuliaMotor. andika (0); // ikiwa hizi zote ziko 180, roboti itaenda kwenye duara kwa sababu servos zimepinduliwa. "0," inaiambia isonge kwa kasi kamili "nyuma." }
Hatua ya 3. Jenga na upakie programu
Bonyeza kitufe cha kulia kwenye kona ya juu kushoto ili kujenga na kupakia programu kwenye Arduino iliyounganishwa.
Unaweza kutaka kuinua roboti juu ya uso, kwani itaendelea tu kusonga mbele mara tu mpango utakapopakiwa
Hatua ya 4. Ongeza utendaji wa kubadili kuua
Ongeza nambari ifuatayo kwenye sehemu ya "batili kitanzi ()" ya nambari yako ili kuwezesha swichi ya kuua, juu ya kazi za "andika ()".
ikiwa (digitalRead (2) == HIGH) // hii inasajili wakati kitufe kinabanwa kwenye pini 2 ya Arduino {wakati (1) {leftMotor.write (90); // "90" ni msimamo wa upande wowote kwa servos, ambayo huwaambia waache kugeuka kuliaMotor.write (90); }}
Hatua ya 5. Pakia na ujaribu msimbo wako
Kwa nambari ya kubadili kuua imeongezwa, unaweza kupakia na kujaribu roboti. Inapaswa kuendelea kusonga mbele hadi ubonyeze swichi, wakati huo itaacha kusonga. Nambari kamili inapaswa kuonekana kama hii:
# pamoja na // ifuatayo inaunda vitu viwili vya servo Servo kushotoMotor; Servo kuliaMotor; kuanzisha batili () {leftMotor.attach (12); kuliaMotor.ambatanisha (13); } kitanzi batili () {if (digitalRead (2) == HIGH) {while (1) {leftMotor.write (90); kuliaMoto.andika (90); }} kushotoMotor.andika (180); kuliaMotor.write (0); }
Sehemu ya 6 ya 6: Mfano
Hatua ya 1. Fuata mfano
Nambari ifuatayo itatumia sensorer iliyoshikamana na roboti kuifanya igeuke kushoto wakati wowote inapokutana na kikwazo. Tazama maoni kwenye kificho kwa maelezo juu ya kila sehemu inafanya nini. Nambari hapa chini ni mpango mzima.
# pamoja na Servo kushotoMotor; Servo kuliaMotor; const int serialPeriod = 250; // hii inapunguza pato kwa kiweko kwa mara moja kila sekunde 1/4 isiyosainiwa muda mrefuSerialDelay = 0; const int loopPeriod = 20; // hii inaweka mara ngapi sensor inachukua usomaji hadi 20ms, ambayo ni masafa ya 50Hz isiyosainiwa muda mrefuLoopDelay = 0; // hii inapeana kazi za TRIG na ECHO kwa pini kwenye Arduino. Fanya marekebisho kwa nambari hapa ikiwa umeunganisha tofauti const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // hii inafafanua hali mbili zinazowezekana kwa roboti: kuendesha mbele au kuelekea kushoto #fafanua DRIVE_FORWARD 0 #fafanua TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = gari mbele (DEFAULT), 1 = pindisha usanidi batili kushoto () {Serial.begin (9600); // usanidi huu wa siri ya siri ya pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // hii inapeana motors kwa pini za Arduino kushotoMotor.ambatanisha (12); kuliaMotor.ambatanisha (13); } kitanzi batili () {if (digitalRead (2) == HIGH) // hii hugundua swichi ya kuua {wakati (1) {leftMotor.write (90); kuliaMoto.andika (90); }} Utatuaji wa Onyesho (); // hii inachapisha ujumbe wa utatuzi kwenye dashibodi ya serial ikiwa (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // hii inaamuru sensa kusoma na kuhifadhi umbali uliopimwa haliMachine (); timeLoopDelay = milimita (); }} batili stateMachine () {if (state == DRIVE_FORWARD) // ikiwa hakuna vizuizi vimegunduliwa {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // ikiwa hakuna kitu mbele ya roboti. UltrasonicDistance itakuwa hasi kwa baadhi ya ultrasonics ikiwa hakuna kikwazo {// drive forward rightMotor.write (180); kushotoMotor.write (0); } mwingine // ikiwa kuna kitu mbele yetu {state = TURN_LEFT; }} mwingine ikiwa (state == TURN_LEFT) // ikiwa kikwazo kimegunduliwa, pinda kushoto {unsigned long timeToTurnLeft = 500; // inachukua karibu sekunde.5 kugeuza digrii 90. Unaweza kuhitaji kurekebisha hii ikiwa magurudumu yako ni saizi tofauti na mfano uliowekwa saini kwa muda mrefuStartTime = millis (); // kuokoa wakati ambao tulianza kugeuza wakati ((millis () - turnStartTime) <timeToTurnLeft) // kukaa kwenye kitanzi hiki hadi wakatiToTurnLeft imekwisha {// pinduka kushoto, kumbuka kuwa wakati zote zimewekwa "180" itageuka. kuliaMoto.andika (180); kushotoMotor.andika (180); } hali = DRIVE_FORWARD; }} utupu kusomaUltrasonicSensors () {// hii ni ya ultrasonic 2. Unaweza kuhitaji kubadilisha amri hizi ikiwa unatumia sensorer tofauti. digitalWrite (ultrasonic2TrigPin, JUU); kuchelewesha Microsconds (10); // huweka pini ya trig juu kwa angalau microseconds 10 digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pigoIn (ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration / 2) / 29; } // ifuatayo ni kwa makosa ya utatuzi kwenye koni. batili debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonic2Distance); Serial.print ("cm"); Serial.println (); timeSerialDelay = milimita (); }}