Je! Unataka kujifunza jinsi ya kutengeneza robot yako mwenyewe? Kuna aina nyingi za roboti, ambazo unaweza kujiunda. Watu wengi wanataka kuona roboti inafanya kazi rahisi ya kusonga kutoka hatua A hadi B. Unaweza kujenga roboti kabisa kutoka kwa vifaa vya analog au kununua kitita cha kuanza. Kutengeneza robot yako mwenyewe ni njia nzuri ya kujifunza programu za elektroniki na kompyuta.
Hatua
Sehemu ya 1 ya 5: Kukusanya Robot
Hatua ya 1. Kusanya vifaa vyako
Ili kujenga robot msingi, utahitaji vifaa vichache rahisi. Unaweza kupata zaidi au vifaa hivi kwenye duka lako la vifaa vya elektroniki vya kupendeza, au kwa wauzaji wengine mkondoni. Vifaa vingine vinajumuisha vifaa hivi vyote. Roboti hii haiitaji kutengenezea:
- Arduino Uno (au mdhibiti mwingine mdogo)
- 2 servos digrii 360
- Magurudumu 2 yanayofanana na servo
- Gurudumu 1 la bure
- Bodi 1 ya mtihani (ubao wa mkate au bodi ya mradi) ambayo haijauzwa (tafuta bodi ya jaribio ambayo ina safu mbili chanya na hasi kila upande)
- Sensorer ya ukaribu 1 (na kebo ya kiunganishi cha pini nne)
- 1 kubadili kitufe cha kushinikiza
- Kipinga 1 10kΩ
- Cable 1 USB A hadi B
- Seti 1 ya vichwa vinavyovunjika
- 1 6 x AA mmiliki wa betri na 9V DC. Tundu la umeme
- Pakiti 1 ya nyaya za jumper au kebo moja
- Insulation nyuma na nje (mkanda mara mbili) au bunduki ya gundi
Hatua ya 2. Geuza chumba cha betri ili nyuma yake tambarare iangalie juu
Utaunda mwili wa roboti ukitumia chumba cha betri kama msingi.
Hatua ya 3. Panga servos mbili zinazokabiliwa na mwelekeo sawa mwisho wa bay bay
Mwisho huu ni mwisho ambapo kebo hutoka kwenye betri. Servos inapaswa kugusa chini, na utaratibu wa kuzungusha wa kila servo inapaswa kutazama kutoka pande za chumba cha betri. Ni muhimu kwamba servos hizi zimepangwa kwa usahihi ili magurudumu iwe sawa. Cables za servo lazima zitoke nyuma ya sehemu ya betri.
Hatua ya 4. Gundi servos na insulation yako au gundi
Hakikisha kwamba servo imeshikamana kabisa na chumba cha betri. Nyuma ya servo lazima iwe iliyokaa na nyuma ya sehemu ya betri.
Sasa, servos inapaswa kuchukua nusu ya nafasi nyuma ya bay ya betri
Hatua ya 5. Zingatia bodi ya jaribio kulingana na nafasi iliyobaki kwenye chumba cha betri
Bodi hii ya majaribio itaning'inia kidogo mbele ya chumba cha betri, na itaenea kwa pande zote mbili. Hakikisha kuwa bodi ya jaribio iko ngumu kabla ya kuendelea. Mstari wa "A" unapaswa kuwa karibu zaidi na servo.
Hatua ya 6. Ambatisha microcontroller ya Arduino juu ya servo
Ikiwa unaambatisha servo kwa usahihi, inapaswa kuwe na sehemu gorofa ya servos mbili zinazogusana. Unganisha bodi ya Arduino kwenye eneo hili tambarare ili viunganishi vya umeme vya USB na Arduino viangalie chini (mbali na bodi ya majaribio). Mbele ya Arduino itaingiliana na bodi ya mtihani.
Hatua ya 7. Sakinisha magurudumu kwenye servos
Bonyeza kwa nguvu magurudumu kwenye mfumo wa servo inayozunguka. Hii inaweza kuhitaji nguvu kubwa kwani magurudumu yameundwa kuwa na mashimo yanayofanana kabisa na umbo la ncha ya servo.
Hatua ya 8. Sakinisha gurudumu la bure chini ya ubao wa majaribio
Ukigeuza roboti kichwa chini, utaona bodi ndogo ya majaribio ikining'inia kwenye chumba cha betri. Ambatisha gurudumu la bure kwenye sehemu hii ya kunyongwa. Tumia kabari ikiwa inahitajika. Gurudumu la bure hutumika kama gurudumu la mbele ambalo linaruhusu roboti kugeukia mwelekeo wowote kwa urahisi.
Ikiwa umenunua kit, gurudumu la bure linaweza kuwa na kabari kadhaa ambazo unaweza kutumia kuhakikisha kuwa gurudumu ni huru kugusa ardhi
Sehemu ya 2 ya 5: Wiring Robot
Hatua ya 1. Kata vichwa viwili vya pini 3
Utatumia hii kuunganisha servo kwenye bodi ya mtihani. Pushisha pini chini kupitia vichwa, ili zitoke umbali sawa kwa pande zote mbili.
Hatua ya 2. Ingiza vichwa viwili ndani ya pini 1-3 na 6-8 mfululizo E kwenye ubao wa majaribio
Hakikisha zimeingizwa kwa uthabiti au thabiti.
Hatua ya 3. Unganisha waya za servo na kichwa, na waya mweusi upande wa kushoto (pini 1 na 6)
Hii itaunganisha servo na bodi ya mtihani. Hakikisha servo ya kushoto imeunganishwa na kichwa cha kushoto, na servo ya kulia imeunganishwa na kichwa cha kulia.
Hatua ya 4. Unganisha waya ya jumper nyekundu kutoka kwa pini C2 na C7 kwenye pini nyekundu ya reli (chanya)
Hakikisha unatumia reli nyekundu nyuma ya ubao wa majaribio (karibu na mwili wote wa roboti).
Hatua ya 5. Unganisha waya nyeusi ya kuruka kutoka kwa pini B1 na B6 hadi pini ya reli ya bluu (ardhi)
Hakikisha unatumia reli ya bluu nyuma ya ubao wa majaribio. Usiunganishe kebo kwenye pini nyekundu ya 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 servo na kugeuza gurudumu.
Hatua ya 7. Ambatisha sensorer mbele ya bodi ya majaribio
Sensor haijawekwa kwa reli ya nguvu ya nje kwenye bodi ya majaribio, lakini kwa safu mbili za kwanza za pini zilizochapishwa (J). Hakikisha umeiweka katikati na idadi sawa ya pini tupu kila upande.
Hatua ya 8. Unganisha waya nyeusi ya kuruka kutoka kwa pini I14 hadi kwenye siri ya kwanza ya reli ya bluu upande wa kushoto wa sensa
Hii itashusha sensor.
Hatua ya 9. Unganisha waya ya jumper nyekundu kutoka kwa pini I17 hadi kwenye pini nyekundu ya kwanza nyekundu upande wa kulia wa sensa
Hii itatoa nguvu kwa sensor.
Hatua ya 10. Unganisha waya nyeupe za kuruka kutoka pini I15 hadi 9 kwenye Arduino, na kutoka I16 hadi 8
Hii itatoa habari kutoka kwa sensorer kwa mdhibiti mdogo.
Sehemu ya 3 kati ya 5: Kufunga Cable ya Nguvu
Hatua ya 1. Geuza roboti ili uweze kuona chumba cha betri ndani
Panga chumba cha betri ili kebo itoke kupitia kushoto chini.
Hatua ya 2. Unganisha waya nyekundu na chemchemi ya pili kutoka kushoto chini
Hakikisha kuwa sehemu ya betri imewekwa vizuri au inakabiliwa na mwelekeo sahihi.
Hatua ya 3. Unganisha waya mweusi na chemchemi ya mwisho chini kulia
Waya hizi mbili zitasaidia kutoa voltage sahihi kwa Arduino.
Hatua ya 4. Unganisha waya nyekundu na nyeusi kwenye pini nyekundu na bluu zilizo upande wa kulia nyuma ya ubao wa majaribio
Waya mweusi unapaswa kwenda kwenye pini ya reli ya samawati kwenye pini 30. Waya nyekundu inapaswa kwenda kwenye pini nyekundu ya reli kwenye pini 30.
Hatua ya 5. Unganisha waya mweusi kutoka kwa pini ya GND kwenye Arduino nyuma ya reli ya bluu
Unganisha waya ili kubandika 28 kwenye reli ya bluu.
Hatua ya 6. Unganisha waya mweusi kutoka nyuma ya reli ya bluu mbele ya reli ya bluu kwenye pini 29 kwa reli zote mbili
Usiunganishe reli nyekundu kwani unaweza kuharibu Arduino.
Hatua ya 7. Unganisha waya nyekundu kutoka mbele ya reli nyekundu kwenye pini 30 hadi pini 5V kwenye Arduino
Hii itatoa nguvu kwa Arduino.
Hatua ya 8. Ingiza kitufe cha kushinikiza katika nafasi kati ya pini 24-26
Kitufe hiki kitakuruhusu kuzima roboti bila kuzima umeme.
Hatua ya 9. Unganisha waya nyekundu kutoka H24 hadi kwenye reli nyekundu kwenye pini tupu inayofuata kulia kwa sensa
Hii itatoa nguvu kwa kifungo.
Hatua ya 10. Tumia kontena kuungana H26 na reli ya bluu
Unganisha kwenye pini moja kwa moja karibu na waya mweusi uliounganisha tu katika hatua zilizopita.
Hatua ya 11. Unganisha waya mweupe kutoka G26 kubandika 2 kwenye Arduino
Hii itaruhusu Arduino kugundua vifungo vya kushinikiza.
Sehemu ya 4 kati ya 5: Kusanikisha Programu ya Arduino
Hatua ya 1. Pakua na dondoa Arduino IDE
Hapa ndipo Arduino inakua 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 kwenye faili na kusogeza folda iliyo na mahali rahisi kufikia. Kwa kweli hautasakinisha programu, badala yake utaiendesha kutoka kwa folda ambayo ilitolewa kwa kubonyeza mara mbili kwenye arduino.exe.
Hatua ya 2. Unganisha chumba cha betri na Arduino
Ingiza soketi ya nyuma ya betri kwenye kontakt kwenye Arduino ili kuitia nguvu.
Hatua ya 3. Ingiza Arduino kwenye kompyuta yako kupitia USB
Nafasi ni, Windows haitatambua kifaa.
Hatua ya 4. Bonyeza
Shinda + R na chapa devmgmt.msc.
Amri hii itafungua Meneja wa Kifaa.
Hatua ya 5. Bonyeza kulia kwenye kifaa kisichojulikana chini ya vifaa vingine na uchague Sasisha Programu ya Dereva
Ikiwa hautaona chaguo hili, bonyeza Mali, chagua kichupo cha Dereva, na kisha bonyeza Sasisha Dereva.
Hatua ya 6. Chagua Vinjari kompyuta yangu kwa programu ya dereva
Hii itakuruhusu kuchagua dereva zilizojengwa ambazo zilikuja na Arduino IDE.
Hatua ya 7. Bonyeza Vinjari, kisha ufungue folda uliyoitoa mapema
Utapata folda ya madereva ndani yake.
Hatua ya 8. Chagua folda ya madereva na bonyeza OK
Thibitisha kuwa unataka kuendelea ikiwa umeonywa juu ya programu isiyojulikana.
Sehemu ya 5 ya 5: Programu za Roboti
Hatua ya 1. Fungua Arduino IDE kwa kubonyeza mara mbili kwenye faili ya arduino.exe kwenye folda ya IDE
Utapokelewa na mradi tupu.
Hatua ya 2. Bandika au ubandike nambari ifuatayo ili kufanya roboti yako iwe ya hali ya juu
Nambari hapa chini itafanya Arduino yako iendelee.
# pamoja na // hii inaongeza maktaba ya "Servo" kwenye programu // amri ifuatayo inaunda vitu viwili vya servo Servo leftMotor; Servo kuliaMotor; kuanzisha batili () {leftMotor.attach (12); // ikiwa kwa bahati mbaya ulibadilisha nambari za siri kwa servo yako, unaweza kubadilisha namba hapa kuliaMotor.ambatanisha (13); } kitanzi batili () {leftMotor.write (180); // na mzunguko wa digrii 360 (mzunguko unaendelea), nambari 180 inaelekeza servo kusonga "mbele" kwa kasi kamili. kuliaMotor.write (0); // ikiwa maadili yote ni 180, roboti itazunguka kwenye duara kwa sababu servo imegeuzwa. "0" inamwambia roboti aende "nyuma" kwa kasi kamili. }
Hatua ya 3. Unda na upakie programu
Bonyeza kitufe cha kulia kwenye kona ya juu kushoto ili kuunda na kupakia programu kwenye Arduino iliyounganishwa.
Unaweza kutaka kuinua roboti juu ya uso kwani roboti itaendelea kutembea mbele baada ya programu kupakiwa
Hatua ya 4. Ongeza kazi ya kubadili kubadili (kuua swichi)
Ongeza nambari ifuatayo kwenye sehemu ya "batili kitanzi ()" ya nambari yako ili kuongeza kazi ya kubadili juu ya kazi ya "kuandika ()".
ikiwa (digitalRead (2) == HIGH) // amri hii inaendesha wakati kitufe kinabanwa kwenye pini 2 Arduino {wakati (1) {leftMotor.write (90); // "90" ni msimamo wa upande wowote kwa servo, ambayo inaiambia servo iache kugeuka kuliaMotor.write (90); }}
Hatua ya 5. Pakia na uangalie nambari yako
Na nambari ya kubadili ya kuacha tayari imeongezwa, unaweza kupakia nambari hiyo na ujaribu roboti. Roboti inapaswa kuendelea mbele hadi ubonyeze kitufe cha kusimama ambacho kitasababisha roboti kusimama. Nambari kamili itaonekana kama hii:
# pamoja na // amri ifuatayo inaunda vitu viwili vya Servo leftMotor servo; 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); kuliaMoto.andika (0); }
Mfano
Nambari ifuatayo itatumia sensorer zilizowekwa kwenye roboti ili kuifanya iwe kushoto wakati wowote robot inakabiliwa na kikwazo. Angalia maoni kwenye kificho kwa maelezo juu ya jinsi ya kutumia kila sehemu. Nambari hapa chini ni mpango mzima.
# pamoja na Servo kushotoMotor; Servo kuliaMotor; const int serialPeriod = 250; // nambari hii inatoa muda wa pato la koni kuwa kila sekunde 1/4 (250 ms) muda usiosainiwaSerialDelay = 0; const int loopPeriod = 20; // nambari hii inaweka mzunguko wa kusoma kwa sensa kwa ms 20, ambayo ni 50 Hz isiyosainiwa muda mrefuLoopDelay = 0; // nambari hii inapeana kazi za TRIG na ECHO kwa pini kwenye Arduino. Rekebisha nambari hapa ikiwa utaziunganisha kwa njia tofauti const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // nambari hii inafafanua hali mbili zinazowezekana za roboti: endelea mbele au pinda kushoto #fafanua DRIVE_FORWARD 0 #fafanua TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = endelea mbele (DEFAULT), 1 = pindisha usanidi batili kushoto () {Serial.begin (9600); // sensor hii huamua pinMode ya usanidi wa pini (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // hii inapeana motor kwa pini za Arduino kushotoMotor.ambatanisha (12); kuliaMotor.ambatanisha (13); } kitanzi batili () {if (digitalRead (2) == HIGH) // nambari hii inagundua '' stop '' {wakati (1) {leftMotor.write (90); kuliaMoto.andika (90); }} Utatuaji wa Onyesho (); // nambari hii inachapisha ujumbe wa utatuzi kwa serial console ikiwa (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // nambari hii inaamuru sensa kusoma na kuhifadhi data juu ya umbali wa kipimoMachine (); timeLoopDelay = milimita (); }} batili stateMachine () {if (state == DRIVE_FORWARD) // ikiwa hakuna kikwazo kinachopatikana {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // ikiwa hakuna kitu mbele ya roboti. UltrasonicDistance itakuwa hasi kwa baadhi ya ultrasonics ikiwa hakuna vikwazo {// endelea mbele 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 sekunde 0.5 kugeuza digrii 90. Unaweza kuhitaji kurekebisha thamani hii ikiwa magurudumu yako yanatofautiana kwa saizi na saizi katika mfano wa muda mrefu uliowekwa sainiStartTime = millis (); // weka hali wakati roboti inapoanza kugeuka wakati ((millis () - turnStartTime) <timeToTurnLeft) // weka mzunguko huu hadi wakatiToTurnLeft (500) imepita {// pinduka kushoto, kumbuka kuwa wakati zote ziko "180", roboti itageuka. kuliaMoto.andika (180); kushotoMotor.andika (180); } hali = DRIVE_FORWARD; }} utupu kusomaUltrasonicSensors () {// hii ni ya ultrasonic 2. Unaweza kuhitaji kubadilisha amri hii ikiwa unatumia sensare tofauti. digitalWrite (ultrasonic2TrigPin, JUU); kuchelewesha Microsconds (10); // vuta 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 (); }}