Raadi Koodka

Cashar 26/31: Gaariga Casriga ah Qaybta 4: Ka Fogaanshaha Caqabadda iyadoo la isticmaalayo Sensor-ka Ultrasonic | SunFounder Robojax

Cashar 26/31: Gaariga Casriga ah Qaybta 4: Ka Fogaanshaha Caqabadda iyadoo la isticmaalayo Sensor-ka Ultrasonic | SunFounder Robojax

Cashiggan, waxaan ku soo kordhinaynaa gaarigaaga caqliga leh awood uu ku arko oo ku falceliyo deegaankiisa isagoo isticmaalaya dareeme ultrasonic ah. Adigoo cabbiraya masaafada u jirta walxaha ku hor yaalla, gaarigu wuxuu samayn karaa go'aanno caqli gal ah: wuxuu hore u socon doonaa marka waddadu cad dahay, wuxuu istaagi doonaa marka shay uu ku jiro aagga digtoonaanta, wuxuuna dib u gurti doonaa marka caqabaddu aad ugu dhowaato. Mashruucani wuxuu ku dhisanyahay aasaaska xakamaynta matoorka iyo dareemayaasha ee aad horey u baratay, taasoo keenaysa gaari si dhab ah iskii u shaqeeya.

26-SunFounder-Car-4-Ultrasonic.mp4_snapshot_00.09.009

Kani ma aha ciyaar kaliya; waa tillaabo aasaasi ah oo loo qaaday dhismaha mashruucyada robotics-ka ee ka sii adag. Macquulka aad halkan ku hirgelin doonto—dareen, fakar, fal—waxa uu la mid yahay kan loo isticmaalo wax kasta oo ka bilaabma nadiifiyeyaasha vacuum-ka ee robotic-ka ah ilaa otomaatiga warshadaha. Halkan waxaa ah dhawr fikradood oo kugu dhiirigelin kara inaad dhismato kuwaaga gaarka ah:

  • Rover Iskii Shaqeeya: Abuur robot ka sahamin kara qol ama haad isagoon ku dhicin gidaarrada ama alaabta.
  • Nidaamka Qaylada U Dhaw: Ku rakib dareemaha ultrasonic-ka servo si uu u baaro aag oo uu kiciyo qaylada ama iftiinka marka soo galootigu uu soo galo aag la go'aamiyay.
  • Kaaliyaha Baarkinka Caqliga Leh: Dhis nidaam isticmaala akhrinta masaafada si uu ugu hago gaariga meel cidhiidhi ah, isagoo bixinaya jawaab celin muuqaal ah ama maqal ah.

Hagahani wuxuu ku salaysanyahay SunFounder 3-in-1 Arduino kit iyo mashruuciisa "Play with Ultrasonic Module". Waxaan ku dhex mari doonaa fiilada, sharaxnaa koodka go'aan qaadashada, waxaanan ku tusi doonaa gaariga shaqadiisa.

26-SunFounder-Car-4-Ultrasonic.mp4_snapshot_02.26.146

Sida Macquulka Ka Fogaanshaha Caqabadaha Uu U Shaqeeyo

Xudunta mashruucani waa geed go'aan qaadasho oo fudud, laakiin awood badan. Dareemaha ultrasonic-ku wuxuu si joogto ah u cabbiraa masaafada u jirta shayga ku hor yaalla. Qiimahan masaafada ayaa markaas loo isticmaalaa in lagu xakameeyo matoorada gaariga, sida ku cad jaantuska hoose.

  • Haddii masaafadu > 25 cm: Waddadu waa cad dahay, marka gaarigu wuu hore u socdaa.
  • Haddii 10 cm < masaafadu <= 25 cm: Shay ayaa lagu ogaaday "aagga digtoonaanta," marka gaarigu wuu istaagaa si uu uga fogaado shil.
  • Haddii 2 cm < masaafadu <= 10 cm: Shay ayaa si khatar ah ugu dhow. Gaarigu wuu dib u gurtaa si uu u helo meel dheeri ah.
  • Haddii masaafadu <= 2 cm: Akhrintu waxay u badan tahay qalad (aad ugu dhow in si sax ah loo cabbiro), marka gaarigu wuu istaagaa si uu u ilaaliyo badbaadada.

Qaybaha Qalabka

Si aad u dhisto mashruucan, waxaad u baahan doontaa qaybaha soo socda, kuwaas oo dhammaantood ku jira SunFounder 3-in-1 kit.

  • 1x Arduino Uno (ama board la jaan qaadi karo)
  • 1x Jirka gaariga caqliga leh oo leh laba matoor oo gear ah
  • 1x L298N Motor Driver Module
  • 1x HC-SR04 Ultrasonic Distance Sensor
  • 1x Breadboard
  • Fiilooyin jumper ah
  • Koronto siin gaariga (tusaale, baakad baytari ah)
26-SunFounder-Car-4-Ultrasonic.mp4_snapshot_00.00.000

Hagaha Fiilada

Fiiladu waxay isku xiraysaa darawalka matoorka, dareemaha ultrasonic-ka, iyo Arduino-ga. Darawalka matoorku wuxuu xakameeyaa taayirada gaariga, halka dareemaha ultrasonic-ku uu u shaqeeyo sidii "indhihiisa."

Waa kuwan jaantuska isku xirka ee ka yimid dukumeentiga SunFounder:

Aynu kala furfurno isku xirka. Marka hore, sii koronto raallada togan iyo taban ee breadboard-ka ee ka imanaya Arduino-ga 5V iyo GND. Dareemaha ultrasonic-ka ayaa markaas sida soo socota loogu xiraa:

  • VCC (Koronto): Waxaa lagu xiraa raalka togan ee breadboard-ka.
  • GND (Dhul): Waxaa lagu xiraa raalka taban ee breadboard-ka.
  • Trig (Kiciye): Waxaa lagu xiraa pin-ka dhijitaalka ah ee 3 ee Arduino-ga. Pin-kani wuxuu diraa garaaca ultrasonic-ka.
  • Echo (Helitaan): Waxaa lagu xiraa pin-ka dhijitaalka ah ee 4 ee Arduino-ga. Pin-kani wuxuu helaa garaaca dib u soo noqday.

Isku xirka darawalka matoorka wuxuu la mid yahay kii casharadii hore. Afarta pin ee xakamaynta (IN1, IN2, IN3, IN4) waxay ku xiran yihiin pin-yada dhijitaalka ah ee Arduino-ga ee 5, 6, 9, iyo 10. Pin-yadani waxay xakameeyaan xawaaraha iyo jihada labada matoor. Hubi in korontada darawalka matoorka iyo dhulkiisu si sax ah ugu xiran yihiin baakadda baytariga iyo dhulka Arduino-ga. (fiidiyowga 02:24)

Sharaxaadda Koodka

Koodka mashruucani wuxuu xakameeyaa habdhaqanka gaariga iyadoo lagu salaynayo akhrinta masaafada ee dareemaha ultrasonic-ka. Macquulku waa toos oo waa sahlan tahay in la habeeyo. Aynu eegno qaybaha muhiimka ah ee isticmaaluhu beddeli karo.

1. Qeexida Pin-yada

Xagga sare ee qoraalka, pin-yada matoorada iyo dareemaha ultrasonic-ka ayaa la qeexay. Waxaad beddeli kartaa kuwan haddii aad qaybaha ku xirtay pin-yo Arduino oo kala duwan.

const int A_1B = 5;
  const int A_1A = 6;
  const int B_1B = 9;
  const int B_1A = 10;
  
  const int trigPin = 3;
  const int echoPin = 4;

Halkan, A_1A, A_1B, B_1A, iyo B_1B waxay xakameeyaan matoorada bidix iyo midig iyadoo loo marayo darawalka L298N. trigPin iyo echoPin waxay u yihiin dareemaha ultrasonic-ka.

2. Doorsoomayaasha Habdhaqanka iyo Macquulka

Habdhaqanka ugu weyn waxaa lagu xakameeyaa gudaha shaqada loop(). Halkan waxaad ku hagaajin kartaa "shakhsiyadda" gaariga.

void loop() {
    float distance = readSensorData();
    if (distance > 25) {
      moveForward(200);
    }
    else if (distance < 10 && distance > 2) {
      moveBackward(200);
    } else {
      stopMove();
    }
  }

Waa sida loo habeeyo:

  • Heerarka Fogaanta: Tirooyinka 25 iyo 10 waxay qeexayaan aagagga "badbaadada" iyo "khatarta" sentimitir. Kordhi 25 si gaarigu u joogsado goor hore, ama hoos u dhig si loogu oggolaado inuu ku soo dhawaado caqabadaha. 2 waa xad badbaado si loo iska indhatiro akhrinta khaldan ee walxaha aad u dhow.
  • Xawaaraha Matoorrada: 200 ee loo gudbiyay moveForward() iyo moveBackward() waxay dejinaysaa xawaaraha gaariga. Qiimahan wuxuu u dhexeeyaa 0 ilaa 255. Qiimo hoose, sida 150, wuxuu ka dhigi doonaa gaarigu inuu si tartiib ah oo taxaddar leh u socdo.

Inta kale ee koodku waxay ka kooban tahay shaqada readSensorData(), taas oo maamusha waqtiga sensor-ka ultrasonic si ay u xisaabiso fogaanta, iyo shaqooyinka moveForward(), moveBackward(), iyo stopMove(), kuwaas oo xakameeya darawalka matoorka si ay u fuliyaan ficilka la doonayo.

Wax ka qabashada Khalad Guud

Waxaa laga yaabaa inaad la kulanto khalad sida 'moveForward' was not declared in this scope. Tani waxay dhacdaa sababtoo ah Arduino IDE waxay akhridaa koodka kor ilaa hoos. Markay gaadho shaqada loop(), ma oga shaqooyinka hoos ku qeexan. Si tan loo xaliyo, waa inaad ku darsataa "prototypes-ka shaqada" ka hor shaqada setup(). Kuwani waa si fudud qeexitaanno magaca shaqada iyo nooca soo celinta, oo ku dhammaanaya semicolon.

void moveForward(int speed);
  void moveBackward(int speed);
  void stopMove();
  float readSensorData();

Ku darista sadarkan waxay u sheegaysaa compiler-ka, "Shaqooyinkani waa jiraan waxaana lagu qeexi doonaa goor dambe," taas oo xallisa khaladka. (fiidiyowga 09:21)

Hagaajinta Xasilloonida Sensor-ka

Inta lagu jiro tijaabinta, waxaa laga yaabaa inaad ogaato in gaarigu joogsado ama xanaaqo xitaa marka dariiqa cad yahay. Tan badanaa waxay u dhacdaa sababtoo ah loop-ku wuxuu si aad u degdeg ah u shaqeeyaa, sensor-ka ultrasonic-na uma haysto waqti ku filan si uu u helo calaamadda dhawaqa (echo), taasoo keenta akhrin 0 cm. Si tan loo xaliyo, ku dar dib u dhac yar dhamaadka shaqada loop() si sensor-ka loo siiyo waqti uu shaqeeyo.

void loop() {
    float distance = readSensorData();
    if (distance > 25) {
      moveForward(200);
    }
    else if (distance < 10 && distance > 2) {
      moveBackward(200);
    } else {
      stopMove();
    }
    delay(100); // Ku dar 100ms dib u dhac si akhrin deggan
  }

Dib u dhac 100 milliseken ah badanaa waa ku filan yahay si loo helo akhrin fogaanta oo deggan oo joogto ah. (fiidiyowga 10:56)

Muuujinta Mashruuca Tooska ah

Marka koodka la soo geliyo, fur Serial Monitor. Waxaad arki doontaa qoraal muujinaya xaaladda gaariga, sida "Forward", "Reverse", ama "Stop".

Muuujinta, gaariga waxaa la dhigayaa isagoo u jeeda caqabad. Marka caqabaddu ka fog tahay 25 cm, gaarigu wuu hor socdaa. Markaad gacantaada ku soo dhaqaajiso, gaarigu wuu joogsadaa marka fogaantu hoos u dhacdo 25 cm. Haddii aad gacantaada aad u soo dhaqaajiso, gudaha 10 cm, gaarigu wuu dib u noqon doonaa. Dhaqankan ayaa si cad uga muuqda fiidiyowga waxaana uu xaqiijinayaa in caqliga ka fogaanshaha caqabadaha si sax ah u shaqeynayo. (fiidiyowga 11:53)

Gunaanad

Hambalyo! Waxaad si guul leh u dhistay gaari caqli-gal ah oo awood u leh inuu ku socdo deegaankiisa oo ka fogaado caqabadaha. Mashruucani wuxuu isku daray gelinta sensor-ka, caqliga go'aan qaadashada, iyo xakamaynta matoorka hal nidaam oo shaqeynaya. Ma aad ogaan oo keliya sida loo isticmaalo sensor-ka ultrasonic, laakiin waxaad kaloo baratay sida loo hirgeliyo algorithm xakamayneed oo fudud kaas oo ah aasaaska robots-ka isku dhisan oo aad u kakan.

Cutubyada

  • [00:00] Hordhaca Ka Fogaanshaha Caqabadaha
  • [01:16] Dulmarka Mashruuca iyo Shuruudaha Hordhaca ah
  • [02:24] Ku Xiridda Sensor-ka Ultrasonic iyo Darawalka Matoorka
  • [04:56] Furitaanka Koodka Mashruuca
  • [05:12] Sharaxaadda Koodka: Caqliga iyo Shaqooyinka
  • [08:34] Soo Gelinta Koodka iyo Tijaabada Bilowga ah
  • [09:21] Cawaaqib Xalinta: Prototypes-ka Shaqada
  • [10:56] Cawaaqib Xalinta: Ku Daridda Dib u Dhac Xasillooni
  • [11:53] Muujin Toos ah oo Ka Fogaanshaha Caqabadaha

Sawirro

27 SunFounder Car 5 follow hand
27 SunFounder Car 5 follow hand
26 SunFounder Car 4 ultrasonic video snapshot 00.09.009
26 SunFounder Car 4 ultrasonic video snapshot 00.09.009
26 SunFounder Car 4 ultrasonic video snapshot 02.26.146
26 SunFounder Car 4 ultrasonic video snapshot 02.26.146
26 SunFounder Car 4 ultrasonic video snapshot 00.00.000
26 SunFounder Car 4 ultrasonic video snapshot 00.00.000
899-Lesson 26/31: Avoiding Obstacle Using Ultrasonic Sensor
Luqadda: C++
/*
Lesson 26/31: Avoiding Obstacle Using Ultrasonic Sensor 
Get this code and watch video Download and resource page https://robojax.com/RJT609
YouTube video https://www.youtube.com/watch?v=uLBmRvaemxA

*/
const int A_1B = 5;
const int A_1A = 6;
const int B_1B = 9;
const int B_1A = 10;

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

  //ultrasonic
  pinMode(echoPin, INPUT);
  pinMode(trigPin, OUTPUT);
}

void loop() {
  float distance = readSensorData();
  if (distance > 25) {
    moveForward(200);
  }
  else if (distance < 10 && distance > 2) {
    moveBackward(200);
  } 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 stopMove() {
  analogWrite(A_1B, 0);
  analogWrite(A_1A, 0);
  analogWrite(B_1B, 0);
  analogWrite(B_1A, 0);
}

Kheyraadka & Tixraacyada

Faylasha📁

Arduino Libraries (zip)