Koj puas xav kawm paub yuav tsim koj tus kheej li cas? Muaj ntau ntau yam sib txawv ntawm cov neeg hlau, uas koj tuaj yeem tsim koj tus kheej. Cov neeg feem coob xav pom cov neeg hlau ua txoj haujlwm yooj yim ntawm kev txav ntawm taw tes A mus rau B. Koj tuaj yeem tsim tus neeg hlau ua tiav los ntawm cov khoom sib piv lossis yuav cov khoom siv pib. Ua koj tus kheej lub neeg hlau yog txoj hauv kev zoo los kawm cov khoom siv hluav taws xob thiab khoos phis tawj.
Kauj ruam
Ntu 1 ntawm 5: Sib Sau Cov Neeg Hlau
Kauj Ruam 1. Sib sau ua ke koj cov khoom
Txhawm rau tsim cov neeg hlau yooj yim, koj yuav xav tau ob peb yam yooj yim. Koj tuaj yeem pom feem ntau lossis tag nrho cov khoom siv no ntawm koj lub khw muag khoom siv hluav taws xob hauv ib cheeb tsam, lossis ntawm qee lub khw muag khoom online. Qee cov khoom siv suav nrog tag nrho cov khoom no. Tus neeg hlau no tsis xav tau ib qho kev sib txuas:
- Arduino Uno (lossis lwm lub microcontroller)
- 2 servos 360 degree
- 2 lub log sib dhos servo
- 1 lub log dawb
- 1 lub rooj tsav xwm xeem ntawv (daim phiaj los yog phiaj xwm phiaj xwm) uas tsis tau muab muag (saib rau daim ntawv xeem uas muaj ob kab zoo thiab tsis zoo ntawm txhua sab)
- 1 sib thooj sensor (nrog plaub tus pin txuas cable)
- 1 laub khawm hloov
- 1 resistor 10kΩ
- 1 USB A rau B cable
- 1 teeb ntawm lub taub hau tawg
- 1 6 x AA lub roj teeb nrog 9V DC
- 1 pob ntawm 22. jumper cables lossis ib leeg cable
- Rwb thaiv tsev rov qab los (ob daim kab xev) lossis rab phom phom
Kauj Ruam 2. Tig lub roj teeb ntim kom nws lub tiaj tiaj rov qab tig
Koj yuav tsim lub cev neeg hlau siv lub roj teeb ua lub hauv paus.
Kauj Ruam 3. Npaj ob lub servos tig mus rau tib txoj kev taw qhia thaum kawg ntawm lub roj teeb
Qhov kawg no yog qhov kawg uas lub cable tawm ntawm lub roj teeb. Cov servos yuav tsum kov hauv qab, thiab kev sib hloov ntawm txhua qhov kev pabcuam yuav tsum tau tig los ntawm ob sab ntawm lub roj teeb. Nws yog ib qho tseem ceeb uas cov kev pabcuam no tau teeb tsa kom raug kom lub log ncaj. Cov kab hluav taws xob rau servo yuav tsum tawm los ntawm sab nraub qaum ntawm lub roj teeb.
Kauj Ruam 4. Kaw cov servos nrog koj cov rwb thaiv tsev lossis kua nplaum
Nco ntsoov tias lub servo tau khov kho txuas nrog lub roj teeb. Sab nraub qaum ntawm servo yuav tsum ua kom haum nrog sab nraub qaum ntawm lub roj teeb.
Tam sim no, cov neeg pabcuam yuav tsum siv sijhawm ib nrab ntawm qhov chaw nyob tom qab ntawm lub roj teeb
Kauj Ruam 5. Ua raws lub rooj sib tw ntsuas ntsuas sib npaug rau qhov chaw seem hauv lub roj teeb
Lub rooj tsav xwm xeem no yuav dai me ntsis ntawm xub ntiag ntawm lub roj teeb, thiab yuav nthuav mus rau ob sab. Nco ntsoov tias lub rooj tsavxwm nruj ua ntej mus. Kab "A" yuav tsum nyob ze rau qhov kev pabcuam.
Kauj Ruam 6. Txuas Arduino microcontroller rau sab saum toj ntawm servo
Yog tias koj xa cov servo kom raug, yuav tsum muaj qhov tiaj tus ntawm ob lub servos kov ib leeg. Ua raws li Arduino pawg thawj coj saib rau lub tiaj tiaj no kom USB thiab Arduino lub zog txuas txuas tau tig rov los (deb ntawm lub rooj tsav xwm xeem). Pem hauv ntej ntawm Arduino yuav sib tshooj nrog cov ntawv xeem.
Kauj Ruam 7. Nruab lub log rau ntawm servos
Nyuaj nias lub log mus rau qhov kev sib hloov servo mechanism. Qhov no yuav xav tau quab yuam ntau vim tias lub log tau tsim los kom muaj qhov uas haum raws cov duab ntawm cov lus qhia servo.
Kauj Ruam 8. Txhim kho lub log dawb rau hauv qab ntawm pawg thawj coj saib
Yog tias koj tig tus neeg hlau rov qab, koj yuav pom lub rooj sib tw me me dai ntawm lub roj teeb. Txuas lub log dawb rau ntawm qhov dai. Siv tus pas nrig yog xav tau. Lub log dawb ua haujlwm ua lub log pem hauv ntej uas tso cai rau tus neeg hlau tig mus rau txhua txoj kev yooj yim.
Yog tias koj yuav cov khoom siv, lub log pub dawb yuav muaj qee cov npoo uas koj tuaj yeem siv los xyuas kom meej tias lub log tsis pub kov hauv av
Ntu 2 ntawm 5: Txuas Tus Neeg Hlau
Kauj Ruam 1. Txiav ob lub taub hau 3-pin
Koj yuav siv qhov no los txuas cov servo rau lub rooj tsavxwm. Thawb cov pins nqes los ntawm lub taub hau, yog li lawv tawm los sib nrug deb ntawm ob sab.
Kauj Ruam 2. Ntxig ob lub taub hau rau hauv pins 1-3 thiab 6-8 hauv kab E ntawm daim ntawv xeem
Xyuas kom lawv muab tso rau hauv los yog khov kho.
Kauj Ruam 3. Txuas cov xov hlau servo nrog lub taub hau, nrog cov xaim dub nyob ntawm sab laug (tus pin 1 thiab 6)
Qhov no yuav txuas cov servo nrog cov ntawv xeem. Nco ntsoov tias sab laug servo txuas nrog rau lub taub hau sab laug, thiab txoj cai servo txuas nrog rau lub taub hau sab xis.
Kauj Ruam 4. Txuas tus liab jumper hlau los ntawm tus pin C2 thiab C7 rau tus pin tsheb nqaj hlau liab (zoo)
Nco ntsoov tias koj siv txoj kev tsheb ciav hlau liab nyob tom qab ntawm lub rooj tsav xwm xeem (ze dua rau ntawm lub cev neeg hlau).
Kauj Ruam 5. Txuas cov hlua hlau dub los ntawm tus pin B1 thiab B6 mus rau tus ciav hlau xiav (hauv av)
Nco ntsoov tias koj siv txoj kev tsheb ciav hlau xiav nyob tom qab ntawm lub rooj tsav xwm xeem. Tsis txhob txuas lub cable rau tus pin tsheb ciav hlau liab.
Kauj Ruam 6. Txuas cov xov hlau jumper dawb los ntawm tus pin 12 thiab 13 ntawm Arduino rau A3 thiab A8
Qhov no yuav tso cai rau Arduino los tswj cov servo thiab tig lub log.
Kauj Ruam 7. Txuas lub sensor mus rau ntawm lub hauv ntej ntawm pawg thawj coj saib
Lub ntsuas cua tsis tau teeb tsa rau sab nrauv lub tsheb ciav hlau ntawm lub rooj tsav xwm, tab sis rau thawj ob kab ntawm tus pin sau (J). Xyuas kom koj muab nws tso rau hauv nruab nrab nrog tus lej sib npaug ntawm tus pin khoob ntawm txhua sab.
Kauj Ruam 8. Txuas cov xaim jumper dub los ntawm tus pin I14 mus rau thawj txoj kab tsheb ciav hlau xiav ntawm sab laug ntawm lub ntsuas cua
Qhov no yuav ua rau lub sensor.
Kauj Ruam 9. Txuas tus liab jumper hlau los ntawm tus pin I17 mus rau tus thawj liab tsheb ciav hlau tus pin ntawm sab xis ntawm lub sensor
Qhov no yuav muab lub zog rau lub sensor.
Kauj Ruam 10. Txuas cov xov hlau jumper dawb los ntawm tus pin I15 rau tus pin 9 ntawm Arduino, thiab los ntawm I16 mus rau tus pin 8
Qhov no yuav muab cov ntaub ntawv los ntawm lub sensor mus rau lub microcontroller.
Ntu 3 ntawm 5: Txhim Kho Cov Hluav Taws Xob
Kauj Ruam 1. Tig tus neeg hlau hla kom koj tuaj yeem pom cov roj teeb hauv qab
Teem lub ntim roj teeb kom xaim tawm hauv qab sab laug.
Kauj Ruam 2. Txuas cov hlau liab nrog lub caij nplooj ntoo hlav thib ob los ntawm sab laug hauv qab
Xyuas kom tseeb tias lub roj teeb tau teeb tsa kom raug lossis tig mus rau qhov raug.
Kauj Ruam 3. Txuas cov xaim dub nrog lub caij nplooj ntoo hlav kawg ntawm sab xis hauv qab
Ob txoj xov hlau no yuav pab muab qhov hluav taws xob raug rau Arduino.
Kauj Ruam 4. Txuas cov xov hlau liab thiab dub txuas rau cov koob liab thiab xiav uas nyob ntawm sab xis ntawm sab nraum qab ntawm pawg ntawv xeem
Cov xaim dub yuav tsum mus rau txoj kab tsheb ciav hlau xiav ntawm tus pin 30. Cov hlau liab yuav tsum mus rau tus ciav hlau liab tus pin ntawm tus pin 30.
Kauj Ruam 5. Txuas cov xaim dub los ntawm GND tus pin ntawm Arduino mus rau tom qab ntawm txoj kev tsheb ciav hlau xiav
Txuas cov xaim mus rau tus pin 28 ntawm txoj kev tsheb ciav hlau xiav.
Kauj Ruam 6. Txuas cov xaim dub los ntawm sab nraum qab ntawm txoj kev tsheb ciav hlau xiav mus rau pem hauv ntej ntawm txoj kev tsheb ciav hlau xiav ntawm tus pin 29 rau ob txoj kab
Tsis txhob txuas txoj kev tsheb ciav hlau liab vim koj yuav ua rau Arduino puas.
Kauj Ruam 7. Txuas cov xaim liab los ntawm sab xub ntiag ntawm txoj kab liab ntawm tus pin 30 mus rau 5V tus pin ntawm Arduino
Qhov no yuav muab lub zog rau Arduino.
Kauj Ruam 8. Ntxig lub khawm hloov hauv qhov chaw nruab nrab ntawm tus pin 24-26
Qhov kev hloov no yuav tso cai rau koj tua lub neeg hlau tsis tas yuav tsum tau tua lub zog.
Kauj Ruam 9. Txuas cov xaim liab los ntawm H24 mus rau txoj kev tsheb ciav hlau liab ntawm tus pin khoob tom ntej mus rau sab xis ntawm lub ntsuas cua
Qhov no yuav muab lub zog rau khawm.
Kauj Ruam 10. Siv lub resistor txuas H26 mus rau txoj kev tsheb ciav hlau xiav
Txuas nws mus rau tus pin ncaj qha ib sab ntawm cov xaim dub koj nyuam qhuav txuas hauv cov kauj ruam dhau los.
Kauj Ruam 11. Txuas cov xaim dawb los ntawm G26 rau tus pin 2 ntawm Arduino
Qhov no yuav tso cai rau Arduino txhawm rau tshawb pom lub pob nyem.
Ntu 4 ntawm 5: Txhim Kho Arduino Software
Kauj Ruam 1. Rub tawm thiab rho tawm Arduino IDE
Nov yog qhov Arduino tau tsim thiab tso cai rau koj rau cov program qhia uas koj tuaj yeem xa mus rau koj li Arduino microcontroller. Koj tuaj yeem rub nws dawb los ntawm arduino.cc/en/main/software. Unzip cov ntawv rub tawm los ntawm ob npaug rau nyem rau ntawm cov ntawv thiab txav cov ntawv tais ceev tseg nws muaj rau qhov chaw nkag tau yooj yim. Koj yuav tsis tau teeb tsa qhov program, hloov chaw koj yuav tsuas yog khiav nws los ntawm daim nplaub tshev uas tau muab rho tawm los ntawm ob-nias ntawm arduino.exe.
Kauj Ruam 2. Txuas lub roj teeb rau hauv Arduino
Ntxig lub qhov ntsaws rov qab ntawm lub roj teeb rau hauv qhov txuas ntawm Arduino kom muaj zog rau nws.
Kauj Ruam 3. Ntxig Arduino rau hauv koj lub computer ntawm USB
Yuav muaj, Windows yuav tsis paub lub cuab yeej.
Kauj Ruam 4. Nias
Yeej+R thiab hom devmgmt.msc.
Cov lus txib no yuav qhib Tus Thawj Tswj Ntaus Ntawv.
Kauj Ruam 5. Txoj cai-nias ntawm Unknown ntaus ntawv hauv Lwm Cov khoom siv thiab xaiv Hloov Kho Cov Software
Yog tias koj tsis pom qhov kev xaiv no, nyem Properties, xaiv Driver tab, thiab tom qab ntawd nyem Update Driver.
Kauj Ruam 6. Xaiv Xauj kuv lub computer rau software tsav tsheb
Qhov no yuav tso cai rau koj xaiv cov tsav tsheb built-in uas tuaj nrog Arduino IDE.
Kauj Ruam 7. Nyem Xauj, tom qab ntawd qhib daim nplaub tshev uas koj tau rho tawm ua ntej
Koj yuav pom cov tsav tsheb nplaub tshev hauv nws.
Kauj Ruam 8. Xaiv daim nplaub tshev tsav tsheb thiab nyem OK
Paub meej tias koj xav txuas ntxiv yog tias koj tau ceeb toom txog software tsis paub.
Ntu 5 ntawm 5: Cov Txheej Txheem Neeg Hlau
Kauj Ruam 1. Qhib Arduino IDE los ntawm ob npaug rau nyem rau ntawm cov ntaub ntawv arduino.exe hauv daim IDE
Koj yuav tau txais tos nrog qhov project dawb paug.
Kauj Ruam 2. Muab tshuaj txhuam lossis muab tshuaj txhuam cov cai hauv qab no los ua kom koj cov neeg hlau zoo dua
Cov cai hauv qab no yuav khaws koj Arduino mus.
#include // qhov no ntxiv lub tsev qiv ntawv "Servo" rau qhov program // cov lus txib hauv qab no tsim ob qho khoom siv servo Servo leftMotor; Servo rightMotor; teeb tsa tsis muaj dabtsis () {leftMotor.attach (12); // yog koj yuam kev pauv tus lej tus lej rau koj lub servo, koj tuaj yeem pauv tus lej ntawm no rightMotor.attach (13); } tsis muaj dab tsi voj () {leftMotor.write (180); // nrog 360 degree kev sib hloov (kev sib hloov tas li), tus lej 180 qhia cov servo kom txav mus rau "pem hauv ntej" ntawm qhov nrawm. rightMotor.write (0); // yog tias ob qho tseem ceeb yog 180, tus neeg hlau yuav tig hauv lub voj voog vim tias qhov kev pabcuam rov qab. "0" qhia tus neeg hlau kom txav "rov qab" ntawm qhov nrawm. }
Kauj Ruam 3. Tsim thiab tso qhov program
Nyem rau khawm txoj cai xub nyob rau ntawm kaum sab laug saum toj kawg nkaus los tsim thiab xa cov program rau Arduino txuas nrog.
Tej zaum koj yuav xav nqa tus neeg hlau tawm ntawm qhov chaw vim tus neeg hlau yuav txuas ntxiv mus tom ntej tom qab qhov program tau rub tawm
Kauj Ruam 4. Ntxiv qhov kev hloov chaw nres (tua tua)
Ntxiv cov cai hauv qab no rau ntu "void loop ()" ntu ntawm koj cov cai txhawm rau ntxiv qhov kev hloov chaw nres tsheb nyob rau sab saum toj ntawm "sau ()" ua haujlwm.
yog (digitalRead (2) == HIGH) // cov lus txib no sau thaum lub pob nyem ntawm tus pin 2 Arduino {thaum (1) {leftMotor.write (90); // "90" yog txoj haujlwm nruab nrab rau servo, uas qhia rau servo kom nres tig txoj cai Motor.write (90); }}
Kauj Ruam 5. Rub tawm thiab txheeb xyuas koj cov cai
Nrog qhov hloov pauv tus lej twb tau ntxiv, koj tuaj yeem tso tus lej thiab sim tus neeg hlau. Tus neeg hlau yuav tsum txuas mus tom ntej kom txog thaum koj nias lub pob nyem hloov uas yuav ua rau neeg hlau nres. Tus lej tag nrho yuav zoo li no:
#include // cov lus txib hauv qab no tsim ob qho Servo leftMotor servo khoom; Servo rightMotor; teeb tsa tsis muaj dabtsis () {leftMotor.attach (12); rightMotor.attach (13); } void loop () {yog (digitalRead (2) == HIGH) {thaum (1) {leftMotor.write (90); rightMotor.write (90); }} leftMotor.write (180); rightMotor.write (0); }
Piv txwv
Cov cai hauv qab no yuav siv cov ntsuas ntsuas nruab rau ntawm tus neeg hlau ua kom nws tig sab laug thaum twg tus neeg hlau ntsib teeb meem. Saib cov lus hauv kab lus kom paub meej txog kev siv txhua feem. Cov cai hauv qab no yog tag nrho txoj haujlwm.
#suav nrog Servo leftMotor; Servo rightMotor; const int serialPeriod = 250; // cov cai no muab lub console tso tawm lub sij hawm lag kom txhua 1/4 thib ob (250 ms) tsis kos npe ntevSerialDelay = 0; const int loopPeriod = 20; // cov cai no teeb tsa lub ntsuas nyeem ntawv zaus mus rau 20 ms, uas yog 50 Hz tsis tau kos npe ntev ntevLoopDelay = 0; // txoj cai no tso cai rau TRIG thiab ECHO ua haujlwm rau tus pin ntawm Arduino. Kho cov lej ntawm no yog tias koj txuas lawv hauv lwm txoj hauv kev const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // txoj cai no piav qhia ob lub xeev neeg hlau ua tau: txuas ntxiv mus lossis tig sab laug #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = txuas ntxiv mus (DEFAULT), 1 = tig sab laug tsis muaj teeb tsa teeb tsa () {Serial.begin (9600); // qhov ntsuas no txiav txim siab tus pin teeb tsa pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // qhov no muab lub cev muaj zog rau Arduino pins leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // qhov chaws no pom tias '' nres '' {thaum (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // tus lej no luam tawm cov lus debug rau cov ntawv txuas yog (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // txoj cai no qhia tus ntsuas kom nyeem thiab khaws cov ntaub ntawv hais txog kev ntsuas ntsuas lub xeevMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // yog tias tsis muaj qhov khuam khuam pom {yog (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // yog tias tsis muaj dab tsi nyob ntawm xub ntiag ntawm neeg hlau. ultrasonicDistance yuav tsis zoo rau qee qhov ultrasonics yog tias tsis muaj teeb meem {// tsav mus rau sab xisMotor.write (180); leftMotor.write (0); } lwm yam // yog tias muaj cov khoom nyob rau hauv pem hauv ntej ntawm peb {xeev = TURN_LEFT; }} lwm qhov yog (xeev == TURN_LEFT) // yog tias muaj teeb meem pom, tig sab laug {tsis tau kos npe ntevToTurnLeft = 500; // siv sijhawm li 0.5 vib nas this tig 90 degrees. Koj yuav xav tau kho tus nqi no yog tias koj lub log sib txawv ntawm qhov loj me hauv qhov piv txwv tsis tau kos npe ntev turnStartTime = millis (); // khaws qhov xwm txheej thaum tus neeg hlau pib tig thaum ((millis ()-turnStartTime) <lub sijhawmToTurnLeft) // khaws lub voj voog no mus txog rau lub sijhawmToTurnLeft (500) tau dhau mus {// tig sab laug, nco ntsoov tias thaum ob leeg yog "180", tus neeg hlau yuav tig. rightMotor.write (180); leftMotor.write (180); } xeev = DRIVE_FORWARD; }} void readUltrasonicSensors () {// qhov no yog rau ultrasonic 2. Koj yuav xav tau hloov qhov lus txib no yog tias koj siv lub ntsuas sib txawv. digitalWrite (ultrasonic2TrigPin, HIGH); qeebMicroseconds (10); // rub tus pin TRIG siab rau tsawg kawg 10 microseconds digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = mem tesIn (ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration/2)/29; } // cov hauv qab no yog rau debugging yuam kev hauv lub console. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonic2Distance); Serial.print ("cm"); Serial.println (); timeSerialDelay = millis (); }}