Darasi na 27/31: Motar SunFounder Smart Car-5 tana bin Hannunka ta amfani da Arduino | Robojax
Gabatarwa
Shin ka taɓa son gina mutum-mutumi wanda ke amsa da hankali ga kasancewarka? Wannan aikin yana canza motar SunFounder Smart Car ta yau da kullun zuwa abin hawa mai sarrafa motsi wanda ke bin hannunka. Maimakon amfani da remote control ko manhajar wayar hannu, wannan motar tana amfani da haɗin ultrasonic da infrared sensors don gano wuri da nisan hannunka, yana ba ka damar jagorantar ta hagu, dama, ko gaba da motsi na halitta masu sauƙi.
Wannan aikin wani ɓangare ne na Robojax Arduino Course (Lesson 27/31) kuma an gina shi ta amfani da SunFounder 3-in-1 Arduino kit. Hanya ce mai kyau don koyon game da sensor fusion, inda sensors da yawa ke aiki tare don ƙirƙirar hali mai rikitarwa da amsawa. Ƙimar duniya ta gaske a nan ita ce fahimtar yadda ake haɗa nau'ikan shigarwa daban-daban don yanke shawara, ra'ayi na asali a cikin robotics da automation.
Ga wasu ra'ayoyi masu amfani da za ka iya ginawa a kan wannan dabara:
- Nunin Mu'amala: Ƙirƙiri ƙaramin nunin robotic wanda ke bin baƙi don jawo hankalinsu.
- Dandamali Mai Gujewa Cikas: Gyara lambar don motar ta kewaya ɗaki ta hanyar gujewa cikas maimakon bin hannu.
- Kayan Ilimi na Robotics: Yi amfani da wannan a matsayin aikin tushe don koya wa ɗalibai game da haɗin sensor, dabaru, da sarrafa mota.
- Motar Isar da Kaya Mai Wayo: A cikin yanayi mai sarrafawa, wannan dabara za a iya daidaita ta don ƙaramin trolley wanda ke bin mutum a cikin sito ko masana'anta.
Kayan aiki & Abubuwan Haɗi
Wannan aikin yana amfani da abubuwan da ke cikin SunFounder 3-in-1 Arduino kit. Abubuwan da za ka yi amfani da su sune:
- SunFounder Smart Car chassis: Dandalin jiki tare da ƙafafu da motors.
- Arduino board: "Kwakwalwar" motar da ke gudanar da lambar.
- Ultrasonic Sensor (HC-SR04): Ana amfani da shi don auna nisa zuwa abu (hannunka) a gaban motar.
- Biyu IR (Infrared) Obstacle Avoidance Sensors: An ɗora su a gefen hagu da dama don gano kasancewar hannunka a waɗancan gefuna.
- Motor Driver: Module (sau da yawa L298N ko makamancinsa) da ake amfani da shi don sarrafa saurin da alkiblar motors na motar bisa ga sigina daga Arduino.
- Madogarar Wuta: Batura don kunna Arduino da motors.
Jagorar Wayar
Kamar yadda aka ambata a cikin bidiyon, wayar wannan aikin daidai take da abin da aka bayyana a darussa na baya don motar gujewa cikas. Sensors da motors duk an haɗa su zuwa ga digital da analog pins na Arduino. Don nuni na gani, da fatan za a koma ga zanen wayar SunFounder Smart Car.
Lambar tana bayyana takamaiman pins da ake amfani da su ga kowane abu, waɗanda aka yi bayani dalla-dalla a sashe na gaba.
Bayanin Lambar
Wannan sashe yana mai da hankali kan sassan lambar da mai amfani zai iya daidaita waɗanda za ka so ka gyara don motarka. Cikakken shirin yana samuwa don saukewa a shafin albarkatun Robojax.
A saman sketch ɗin, za ka sami ma'anar pins. Waɗannan su ne layukan mafi mahimmanci don fahimta idan ka haɗa motarka daban da malamin.
const int A_1B = 5;
const int A_1A = 6;
const int B_1B = 9;
const int B_1A = 10;
const int rightIR=7;
const int leftIR=8;
const int trigPin = 3;
const int echoPin = 4;
Ga abin da kowane rukuni na pins yake yi:
- Motor Pins (A_1A, A_1B, B_1A, B_1B): Waɗannan su ne pins da aka haɗa zuwa motor driver don sarrafa motors biyu. Alamomin "A" da "B" yawanci suna nufin motors na hagu da dama, bi da bi. Dole ne ka canza waɗannan idan motor driver ɗinka an haɗa shi zuwa wasu pins na Arduino.
- IR Sensor Pins (rightIR, leftIR): Waɗannan digital input pins suna karanta sigina daga infrared sensors na hagu da dama. Ƙimar
0tana nufin an gano cikas (hannunka), yayin da1ke nufin hanya a buɗe take. - Ultrasonic Sensor Pins (trigPin, echoPin):
trigPinshine fitarwa wanda ke aika ɗan gajeren ultrasonic pulse, kumaechoPinshine shigarwa wanda ke karanta tsawon lokacin da aka nuna don lissafa nisa.
A cikin aikin loop(), za ka sami babban dabaru na hali. Akwai canji guda ɗaya da za ka iya son daidaitawa:
int speed = 150;
Wannan canjin speed yana sarrafa ƙarfin da aka aika zuwa motors yayin motsi. Yana iya kasancewa daga 0 (tsayawa) zuwa 255 (mafi girman sauri). Kana iya ƙara wannan ƙimar (misali, zuwa 200) don mota mai sauri ko rage ta (misali, zuwa 100) don motsi mafi sarrafawa, a hankali.
Lambar kuma tana ƙunshe da ayyuka kamar moveForward(), turnLeft(), da turnRight(). Waɗannan ayyuka ana amfani da su don sarrafa motsin motar kuma ana kiran su bisa ga karatun sensor. Ba ka buƙatar gyara su, amma kana iya amfani da su azaman tubalan gini don ƙirƙirar halayenka na musamman.
Yadda "Bin Hannunka" Dabara ke Aiki
Sihrin wannan aikin ya ta'allaka ne da yadda Arduino ke fassara bayanan daga na'urori guda uku. Dabaru a bayyane suke kuma ana aiwatar da su akai-akai a cikin aikin loop().
Da farko, motar tana auna nisa zuwa wani abu da ke gaban ta kai tsaye ta amfani da na'urar ultrasonic. Sa'an nan, tana duba na'urorin infrared guda biyu don ganin ko akwai wani abu a gefen hagu ko dama. Tsarin yanke shawara yana kamar haka:
- Motsa Gaba: Idan nisan da na'urar ultrasonic ta auna ya fi 5 cm girma amma bai kai 10 cm ba, motar tana motsawa gaba. Wannan yana haifar da yankin "wurin da ya dace" inda motar za ta bi hannunka.
- Juya Hagu: Idan nisan bai kasance a cikin wannan yankin ba, motar tana duba na'urorin IR. Idan na'urar hagu ta toshe (hannunka yana gefen hagu) kuma na'urar dama a bayyane take, motar tana juya hagu.
- Juya Dama: Akasin haka, idan na'urar dama ta toshe kuma na hagu a bayyane take, motar tana juya dama.
- Tsayawa: Idan babu ɗayan waɗannan sharuɗɗan da aka cika—alal misali, idan hannunka ya yi nisa sosai ko kuma ya yi kusa sosai—motar tana tsayawa.
Wannan tsari mai sauƙi na dokoki yana ba motar damar amsawa da sauri ga matsayin hannunka, yana haifar da halin bin sawu mai santsi da fahimta.
Nunin Aikin Kai Tsaye
A cikin nunin bidiyo, malamin yana nuna halin motar a lokaci guda. Ana amfani da serial monitor don nuna nisan da na'urar ultrasonic ta karanta. Lokacin da motar ke a kwance kuma hannunka ya yi nisa (misali, 36 cm), tana kasancewa a tsaye. Da zaran ka sanya hannunka a cikin yankin 5-10 cm a gaban motar, sai ta fara motsawa gaba.
Nunin kuma yana nuna dabaru na juya. Lokacin da ka sanya hannunka a gefen hagu na motar, na'urar IR ta hagu tana kunnawa, kuma motar tana juya hagu. Hakazalika, sanya hannunka a gefen dama yana sa motar ta juya dama. Motar za ta ci gaba da bin hannunka yayin da kake motsa shi, tana tsayawa kawai idan an cire hannunka daga kewayon na'urorinta ko kuma ya yi kusa sosai. Wannan yana tabbatar da cewa haɗakar na'urori da dabaru suna aiki yadda ya kamata, suna haifar da aiki mai amsawa da nishaɗi.
Babuka
- [00:00] Gabatarwa ga Motar Mai Bin Hannu
- [00:35] Game da Kwas da Kayan Robojax Arduino
- [01:41] Bayanin Aikin da Saitin Lambar
- [02:19] Bayanin Ma'anar Fil da Saiti
- [03:19] Dabaru na Lambar don Bin Hannunka
- [05:48] Nunin Kai Tsaye na Motar a Aiki
- [07:28] Nunin Ƙarshe da Bitar Aiki
/*
Lesson 27/31: Car-5 SunFounder Smart Car Follows Your Hand
Get this code and watch video Download and resource page https://robojax.com/RJT610
YouTube video https://www.youtube.com/watch?v=mcbJlE7-8ro
*/
const int A_1B = 5;
const int A_1A = 6;
const int B_1B = 9;
const int B_1A = 10;
const int rightIR=7;
const int leftIR=8;
const int trigPin = 3;
const int echoPin = 4;
void setup() {
Serial.begin(9600);
//motor
pinMode(A_1B, OUTPUT);
pinMode(A_1A, OUTPUT);
pinMode(B_1B, OUTPUT);
pinMode(B_1A, OUTPUT);
//IR obstacle
pinMode(leftIR,INPUT);
pinMode(rightIR,INPUT);
//ultrasonic
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
}
void loop() {
float distance = readSensorData();
int left = digitalRead(leftIR); // 0: Obstructed 1: Empty
int right = digitalRead(rightIR);
int speed = 150;
if (distance>5 && distance<10){
moveForward(speed);
}else if(!left&&right){
turnLeft(speed);
}else if(left&&!right){
turnRight(speed);
}else{
stopMove();
}
}
float readSensorData() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
float distance = pulseIn(echoPin, HIGH) / 58.00; //Equivalent to (340m/s*1us)/2
return distance;
}
void moveForward(int speed) {
analogWrite(A_1B, 0);
analogWrite(A_1A, speed);
analogWrite(B_1B, speed);
analogWrite(B_1A, 0);
}
void moveBackward(int speed) {
analogWrite(A_1B, speed);
analogWrite(A_1A, 0);
analogWrite(B_1B, 0);
analogWrite(B_1A, speed);
}
void turnRight(int speed) {
analogWrite(A_1B, speed);
analogWrite(A_1A, 0);
analogWrite(B_1B, speed);
analogWrite(B_1A, 0);
}
void turnLeft(int speed) {
analogWrite(A_1B, 0);
analogWrite(A_1A, speed);
analogWrite(B_1B, 0);
analogWrite(B_1A, speed);
}
void stopMove() {
analogWrite(A_1B, 0);
analogWrite(A_1A, 0);
analogWrite(B_1B, 0);
analogWrite(B_1A, 0);
}
Common Course Links
Common Course Files
Abin da zaka iya bukata
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
Albarkatun da kuma shafukan da za a duba
-
TakarduDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
WajePurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Fayiloli📁
Littattafan Arduino (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB