Jinsi ya Kutengeneza Robot Nyumbani (na Picha)

Orodha ya maudhui:

Jinsi ya Kutengeneza Robot Nyumbani (na Picha)
Jinsi ya Kutengeneza Robot Nyumbani (na Picha)

Video: Jinsi ya Kutengeneza Robot Nyumbani (na Picha)

Video: Jinsi ya Kutengeneza Robot Nyumbani (na Picha)
Video: РЕАЛЬНЫЙ МАЙНКРАФТ! Выбраться из ловушки! КРИПЕРКА в ОПАСНОСТИ! Челлендж! 2024, Mei
Anonim

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

1123333 1
1123333 1

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
1123333 2
1123333 2

Hatua ya 2. Geuza chumba cha betri ili nyuma yake tambarare iangalie juu

Utaunda mwili wa roboti ukitumia chumba cha betri kama msingi.

1123333 3
1123333 3

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.

1123333 4
1123333 4

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

1123333 5
1123333 5

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.

1123333 6
1123333 6

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.

1123333 7
1123333 7

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.

1123333 8
1123333 8

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

1123333 9
1123333 9

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.

1123333 10
1123333 10

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.

1123333 11
1123333 11

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.

1123333 12
1123333 12

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).

1123333 13
1123333 13

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.

1123333 14
1123333 14

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.

1123333 15
1123333 15

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.

1123333 16
1123333 16

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.

1123333 17
1123333 17

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.

1123333 18
1123333 18

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

1123333 19
1123333 19

Hatua ya 1. Geuza roboti ili uweze kuona chumba cha betri ndani

Panga chumba cha betri ili kebo itoke kupitia kushoto chini.

1123333 20
1123333 20

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.

1123333 21
1123333 21

Hatua ya 3. Unganisha waya mweusi na chemchemi ya mwisho chini kulia

Waya hizi mbili zitasaidia kutoa voltage sahihi kwa Arduino.

1123333 22
1123333 22

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.

1123333 23
1123333 23

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.

1123333 24
1123333 24

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.

1123333 25
1123333 25

Hatua ya 7. Unganisha waya nyekundu kutoka mbele ya reli nyekundu kwenye pini 30 hadi pini 5V kwenye Arduino

Hii itatoa nguvu kwa Arduino.

1123333 26
1123333 26

Hatua ya 8. Ingiza kitufe cha kushinikiza katika nafasi kati ya pini 24-26

Kitufe hiki kitakuruhusu kuzima roboti bila kuzima umeme.

1123333 27
1123333 27

Hatua ya 9. Unganisha waya nyekundu kutoka H24 hadi kwenye reli nyekundu kwenye pini tupu inayofuata kulia kwa sensa

Hii itatoa nguvu kwa kifungo.

1123333 28
1123333 28

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.

1123333 29
1123333 29

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

1123333 30
1123333 30

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.

1123333 31
1123333 31

Hatua ya 2. Unganisha chumba cha betri na Arduino

Ingiza soketi ya nyuma ya betri kwenye kontakt kwenye Arduino ili kuitia nguvu.

1123333 32
1123333 32

Hatua ya 3. Ingiza Arduino kwenye kompyuta yako kupitia USB

Nafasi ni, Windows haitatambua kifaa.

1123333 33
1123333 33

Hatua ya 4. Bonyeza

Shinda + R na chapa devmgmt.msc.

Amri hii itafungua Meneja wa Kifaa.

1123333 34
1123333 34

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.

1123333 35
1123333 35

Hatua ya 6. Chagua Vinjari kompyuta yangu kwa programu ya dereva

Hii itakuruhusu kuchagua dereva zilizojengwa ambazo zilikuja na Arduino IDE.

1123333 36
1123333 36

Hatua ya 7. Bonyeza Vinjari, kisha ufungue folda uliyoitoa mapema

Utapata folda ya madereva ndani yake.

1123333 37
1123333 37

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

1123333 38
1123333 38

Hatua ya 1. Fungua Arduino IDE kwa kubonyeza mara mbili kwenye faili ya arduino.exe kwenye folda ya IDE

Utapokelewa na mradi tupu.

1123333 39
1123333 39

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. }

1123333 40
1123333 40

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

1123333 41
1123333 41

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); }}

1123333 42
1123333 42

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 (); }}

Ilipendekeza: