Darasi na 29/31: Mota-7 Sarrafa Motar SunFounder Smart ta amfani da Remote Controller | Robojax
A wannan darasin, za mu canza motar SunFounder mai wayo zuwa motar da ake sarrafa ta daga nesa ta amfani da infrared (IR) remote. Maimakon dogaro da haɗin waya ko manhajar wayar hannu, za ku koyi yadda ake tsara maɓallan kan daidaitaccen IR remote don sarrafa motsin motar—gaba, baya, juyawa, har ma da motsin diagonal—da kuma daidaita saurinta a kan tafiya. Wannan aikin shine mataki na gaba mai kyau bayan koyon tushen sarrafa motar da sadarwar IR, domin yana haɗa duka biyun cikin tsari guda mai mu'amala.
Ƙimar gaske a nan tana cikin fahimtar yadda ake ƙirƙirar ingantaccen tsarin sarrafawa mai sauƙin amfani ga dandalin robotics. Ƙa'idodin da za ku koya suna aiki kai tsaye ga fannoni da yawa na ayyuka, kamar:
- Gina robot mai sarrafa nesa don ayyukan sarrafa gida, kamar ƙaramin motar isar da kaya.
- Ƙirƙirar motar da za a iya tsarawa don gasar robotics ta ilimi.
- Haɓaka remote na musamman don faifan kyamara ko na'urar juyawa.
- Ƙirƙirar samfurin mu'amalar mai amfani don babban tsarin sarrafawa mai rikitarwa.
Kayan aiki da Abubuwan Haɗi
Wannan aikin ya ginu a kan SunFounder 3-in-1 Arduino kit. Don ci gaba, za ku buƙaci abubuwan da aka jera a ƙasa. Haɗin waya yana da sauƙi, yana ƙara daga darussan da suka gabata a cikin kwas ɗin.
- SunFounder 3-in-1 Arduino Kit: Wannan ya haɗa da chassis na motar wayo, allon sarrafa motar, da allon Arduino.
- Infrared Remote Control: Remote ɗin daidaitaccen da ke zuwa tare da kit ɗin.
- IR Receiver Module: Na'urar da za ta fassara siginonin daga remote.
- LED da 330-ohm Resistor: Ana amfani da su azaman alamar gani don tabbatar da an danna maɓalli. (a cikin bidiyo a 04:08)
- Jumper Wires: Don yin haɗin da ake buƙata a kan breadboard.
Jagorar Haɗin Waya
Kafin mu shiga cikin lambar, bari mu tabbatar da cewa kayan aiki an haɗa su daidai. Haɗin waya na IR receiver da na sarrafa motar ya yi daidai da darussan da suka gabata a cikin wannan jerin. Don ƙara mu'amala ga aikin, za mu kuma haɗa LED na waje zuwa pin 13 azaman alamar amsawa ta gani.
Ga jagora mataki-mataki na haɗin:
- IR Receiver: IR receiver yana da pins uku. Pin mai kyau yana haɗawa zuwa layin 5V akan breadboard. Pin na ƙasa yana haɗawa zuwa layin GND. Pin na sigina, wanda shine pin na ƙarshe, yana haɗawa zuwa dijital pin 11 akan allon Arduino ɗin ku. (a cikin bidiyo a 05:29)
- LED na Waje: Haɗa ƙafa ɗaya na 330-ohm resistor zuwa dijital pin 13 akan Arduino. Haɗa ɗayan ƙafar resistor zuwa ƙafar (anode) mai tsawo na LED. Ƙafar (cathode) gajeriyar LED ɗin ya kamata a haɗa zuwa layin GND akan breadboard. (a cikin bidiyo a 04:08)
- Sarrafa Motar: Pins huɗu na sarrafa motar (A_1B, A_1A, B_1B, B_1A) an haɗa su zuwa pins 5, 6, 9, da 10 akan Arduino, bi da bi. Wannan saitin an riga an yi bayaninsa a darussan da suka gabata. (a cikin bidiyo a 06:44)
Don samun misalin gani na waɗannan haɗin, da fatan za ku koma ga zanen haɗin waya a ƙasa.
Bayanin Lambar
Lambar wannan aikin an tsara ta don zama mai sauƙin fahimta. Tana amfani da ɗakin karatu na IRremote don sarrafa aikin rikitarwa na fassara siginonin IR. Bari mu raba sassan da mai amfani zai iya daidaitawa waɗanda kuke iya son canzawa don ayyukanku.
A saman sketch ɗin, za ku sami ma'anar pins. Waɗannan su ne abubuwan farko da ya kamata ku duba idan kun haɗa abubuwan ku zuwa pins daban-daban fiye da waɗanda aka yi amfani da su a wannan misalin.
const int IR_RECEIVE_PIN = 12; // Ayyana lambar pin don IR Sensor
const int A_1B = 5;
const int A_1A = 6;
const int B_1B = 9;
const int B_1A = 10;
IR_RECEIVE_PIN: Wannan ma'anar tana ayyana dijital pin da aka haɗa zuwa pin na sigina na IR receiver ɗin ku. Idan kun haɗa shi zuwa wani pin daban, za ku canza lambar a nan.A_1B,A_1A,B_1B,B_1A: Waɗannan ma'anoni suna nuna pins huɗu na sarrafawa akan sarrafa motar ku. Suna sarrafa saurin da alkiblar motocin hagu da dama.
Na gaba, za ku sami muhimmin ma'auni wanda ke sarrafa halayen motar.
int speed = 150;
speed: Wannan ma'auni yana saita saurin farko na motar. Ƙimar na iya kasancewa daga 0 zuwa 255. A cikin wannan aikin, za ku iya canza shi ta amfani da maɓallan "+" da "-" akan remote. Lambar kuma ta haɗa da dabaru don hana saurin wuce 255 ko faɗuwa ƙasa da 0. (a cikin bidiyo a 09:22)
Muhimmin dabaru na sarrafa nesa ana sarrafa shi a cikin aikin loop(). Lokacin da aka danna maɓalli, aikin decodeKeyValue() yana fassara lambar IR ɗin zuwa saƙo mai sauƙi kamar "2" don gaba ko "+" don ƙara sauri. Wannan yana sa bayanan if da ke biye su zama masu sauƙin karantawa da canzawa. (a cikin bidiyo a 07:58)
moveForward(), turnRight(), da moveLeft() sune inda sarrafa motar ke faruwa. Kowane aiki yana ɗaukar speed na yanzu a matsayin hujja. Misali, moveForward(speed) zai tuka duka motoci biyu gaba a ƙayyadadden saurin. Babban bambanci tsakanin "juyawa" da "motsawa" shine cewa juyawa yana juya ƙafafun biyu a kwatance dabam-dabam, yana sa motar ta zagaya a wuri, yayin da motsawa ke juya ƙafa ɗaya kawai, yana sa motar ta yi baka a kusa da ƙafar da ba ta motsa ba. (a bidiyo a 10:14)
Nunin Aikin Kai Tsaye
Tare da ɗora code ɗin kuma motar tana kunne, remote control ɗin ya zama babbar hanyar sadarwarka. Nunin a cikin bidiyon yana nuna wasu muhimman halaye:
- Sarrafa Saurin: Danna maɓallin "+" yana ƙara saurin da 50, yayin da maɓallin "-" ke rage shi. Saurin yana da iyaka a 255 kuma yana ƙasa a 0 don kare motocin. (a bidiyo a 11:56)
- Motsi na ɗan lokaci: Lokacin da ka danna maɓallin jagora kamar "2" (gaba) ko "8" (baya), motar za ta motsa na daƙiƙa ɗaya sannan ta tsaya kai tsaye. Wannan fasalin tsaro ne da aka gina a cikin code ɗin. (a bidiyo a 13:09)
- Juyawa da Gudanarwa: Maɓallan da aka tsara a tsarin giciye akan remote ɗin suna aiki kamar joystick. Danna "4" ko "6" zai juya motar hagu ko dama a wuri. Danna maɓallan diagonal, kamar "1" ko "3", zai yi "motsi hagu" ko "motsi dama," wanda shine juyi mai kaifi inda ƙafa ɗaya ke tsaye. (a bidiyo a 16:42)
Abu ɗaya da za ka iya lura shine motar ba koyaushe take tafiya a layi madaidaici ba. Wannan sau da yawa saboda ƙananan bambance-bambance a cikin motocin ko ƙarfin haɗin motar, wanda al'ada ce ta gama gari kuma ta al'ada na waɗannan kayan. (a bidiyo a 15:14)
Babuka
- [00:00] Gabatarwa ga Sarrafa Remote IR don Motar Smart
- [01:15] Abubuwan Da Ake Bukata da Darussan Da Suka Gabata
- [01:56] Bayanin Takardun Aikin
- [02:29] Fahimtar Ayyukan Maɓallan Remote Control
- [03:29] Jagorar Haɗin Kayan Aiki Mataki-mataki don IR Receiver da LED
- [05:51] Buɗe da Loda Code ɗin Aikin
- [07:41] Bayanin Code: Loop, Ƙaddara Maɓalli, da Ayyuka
- [09:22] Ƙayyade Saurin da Fasalin Tsaro a cikin Code
- [10:08] Bayanin Ayyukan Motsi na Motar
- [11:49] Nunin Kai Tsaye: Gwada Sarrafa Saurin da LED Blink
- [13:27] Nunin Kai Tsaye: Gaba, Baya, da Juyawa
- [14:31] Cikakken Nunin Mota tare da Ƙarfi da Motsi
/*
Lesson 29/31: Car-7 Controlling SunFounder Smart Car using Remote Controller
Get this code and watch video Download and resource page https://robojax.com/RJT612
*/
#include <IRremote.h>
const int IR_RECEIVE_PIN = 12; // Define the pin number for the IR Sensor
const int A_1B = 5;
const int A_1A = 6;
const int B_1B = 9;
const int B_1A = 10;
int speed = 150;
void setup() {
Serial.begin(9600);
//motor
pinMode(A_1B, OUTPUT);
pinMode(A_1A, OUTPUT);
pinMode(B_1B, OUTPUT);
pinMode(B_1A, OUTPUT);
//IR remote
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK); // Start the IR receiver // Start the receiver
Serial.println("REMOTE CONTROL START");
}
void loop() {
if (IrReceiver.decode()) {
// Serial.println(results.value,HEX);
String key = decodeKeyValue(IrReceiver.decodedIRData.command);
if (key != "ERROR") {
Serial.println(key);
if (key == "+") {
speed += 50;
} else if (key == "-") {
speed -= 50;
} else if (key == "2") {
moveForward(speed);
delay(1000);
} else if (key == "1") {
moveLeft(speed);
} else if (key == "3") {
moveRight(speed);
} else if (key == "4") {
turnLeft(speed);
} else if (key == "6") {
turnRight(speed);
} else if (key == "7") {
backLeft(speed);
} else if (key == "9") {
backRight(speed);
} else if (key == "8") {
moveBackward(speed);
delay(1000);
}
if (speed >= 255) {
speed = 255;
}
if (speed <= 0) {
speed = 0;
}
delay(500);
stopMove();
}
IrReceiver.resume(); // Enable receiving of the next value
}
}
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 moveLeft(int speed) {
analogWrite(A_1B, 0);
analogWrite(A_1A, speed);
analogWrite(B_1B, 0);
analogWrite(B_1A, 0);
}
void moveRight(int speed) {
analogWrite(A_1B, 0);
analogWrite(A_1A, 0);
analogWrite(B_1B, speed);
analogWrite(B_1A, 0);
}
void backLeft(int speed) {
analogWrite(A_1B, speed);
analogWrite(A_1A, 0);
analogWrite(B_1B, 0);
analogWrite(B_1A, 0);
}
void backRight(int speed) {
analogWrite(A_1B, 0);
analogWrite(A_1A, 0);
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);
}
String decodeKeyValue(long result)
{
switch(result){
case 0x16:
return "0";
case 0xC:
return "1";
case 0x18:
return "2";
case 0x5E:
return "3";
case 0x8:
return "4";
case 0x1C:
return "5";
case 0x5A:
return "6";
case 0x42:
return "7";
case 0x52:
return "8";
case 0x4A:
return "9";
case 0x9:
return "+";
case 0x15:
return "-";
case 0x7:
return "EQ";
case 0xD:
return "U/SD";
case 0x19:
return "CYCLE";
case 0x44:
return "PLAY/PAUSE";
case 0x43:
return "FORWARD";
case 0x40:
return "BACKWARD";
case 0x45:
return "POWER";
case 0x47:
return "MUTE";
case 0x46:
return "MODE";
case 0x0:
return "ERROR";
default :
return "ERROR";
}
}
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
-
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