Kaip pagaminti grindų valymo robotą naudojant ultragarso jutiklį?

Automatinis grindų valymo robotas nėra nauja koncepcija. Tačiau šie robotai turi pagrindinę problemą. Jie labai brangūs. Ką daryti, jei mes galime pagaminti nebrangų grindų valymo robotą, kuris būtų toks pat efektyvus kaip rinkoje esantis robotas. Šis robotas naudos ultragarso jutiklį ir išvengs jokių kliūčių. Tokiu būdu jis išvalys visą kambarį.



(Šis paveikslėlis paimtas iš „Circuit Digest“)

Kaip naudoti ultragarso jutiklį automatiniam grindų valymo robotui gaminti?

Kaip mes dabar žinome savo projekto santrauką. Surinkime daugiau informacijos, kad galėtume pradėti dirbti.



1 veiksmas: rinkite komponentus

Geriausias būdas pradėti bet kokį projektą yra sudaryti visų komponentų sąrašą pradžioje ir atlikti trumpą kiekvieno komponento tyrimą. Tai mums padeda išvengti nepatogumų projekto viduryje. Išsamus visų šiame projekte naudojamų komponentų sąrašas pateiktas žemiau.



  • Automobilių ratų važiuoklė
  • Baterija
  • Rodyti šepetėlį

2 žingsnis: komponentų studijavimas

Dabar, kai turime išsamų visų komponentų sąrašą, paženkime žingsnį į priekį ir trumpai išstudijuokime kiekvieno komponento veikimą.



„Arduino nano“ yra mikrovaldiklio plokštė, naudojama skirtingoms grandinės užduotims valdyti ar vykdyti. Mes deginame a C kodas „Arduino Nano“ mikrokontrolerio valdybai pasakyti, kaip ir kokias operacijas atlikti. „Arduino Nano“ turi lygiai tokią pačią funkciją kaip „Arduino Uno“, tačiau yra gana mažo dydžio. „Arduino Nano“ plokštės mikrovaldiklis yra ATmega328p.

„Arduino Nano“

L298N yra didelės srovės ir aukštos įtampos integruotas grandynas. Tai dvigubas viso tilto tiltas, suprojektuotas priimti standartinę TTL logiką. Jame yra du įgalinimo įėjimai, leidžiantys prietaisui veikti savarankiškai. Vienu metu galima sujungti ir valdyti du variklius. Variklių greitis keičiamas per PWM kaiščius.



L298N variklio tvarkyklė

HC-SR04 plokštė yra ultragarso jutiklis, naudojamas atstumui tarp dviejų objektų nustatyti. Jis susideda iš siųstuvo ir imtuvo. Siųstuvas paverčia elektrinį signalą ultragarso signalu, o imtuvas ultragarso signalą vėl paverčia elektriniu signalu. Kai siųstuvas siunčia ultragarso bangą, ji atsispindi susidūrus su tam tikru objektu. Atstumas apskaičiuojamas naudojant laiką, kurį ultragarsinis signalas eina iš siųstuvo ir grįžta į imtuvą.

Ultragarsinis jutiklis

3 žingsnis: komponentų surinkimas

Kadangi dabar žinome, kaip veikia visi komponentai, surenkime visus komponentus ir pradėkime gaminti robotą.

Paimkite automobilio ratų važiuoklę ir priešais važiuokles pritvirtinkite parodomąjį šepetį. Montuokite „Scotch Brite“ po robotu. Įsitikinkite, kad jis yra tiesiai už batų šepetėlio. Dabar pritvirtinkite nedidelę duonos lentą ant važiuoklės viršaus ir už jos, pritvirtinkite variklio tvarkyklę. Tinkamai sujungite variklius su variklio tvarkykle ir atsargiai prijunkite variklio vairuotojo kaiščius prie „Arduino“. Uždėkite bateriją už važiuoklės. Baterija įjungs variklio vairuotoją, kuris maitins variklius. „Arduino“ taip pat perims energiją iš „Motor“ vairuotojo. Vcc kaištis ir ultragarso jutiklio žemė bus prijungta prie „Arduino“ 5 V ir žemės.

Grandinės schema

4 žingsnis: darbo pradžia naudojant „Arduino“

Jei dar nesate susipažinę su „Arduino IDE“, nesijaudinkite, nes žingsnis po žingsnio procedūra, kaip nustatyti ir naudoti „Arduino IDE“ su mikrovaldiklio plokšte, paaiškinta toliau.

  1. Atsisiųskite naujausią „Arduino IDE“ versiją iš Arduino.
  2. Prijunkite „Arduino Nano“ plokštę prie nešiojamojo kompiuterio ir atidarykite valdymo skydą. valdymo skydelyje spustelėkite Aparatūra ir garsas . Dabar spustelėkite Prietaisai ir spausdintuvai. Čia raskite prievadą, prie kurio prijungta jūsų mikrovaldiklio plokštė. Mano atveju taip yra COM14 bet skirtinguose kompiuteriuose yra kitaip.

    Rasti uostą

  3. Spustelėkite meniu Įrankis ir nustatykite lentą į „Arduino Nano“.

    Nustatymo lenta

  4. Tame pačiame meniu Įrankis nustatykite prievadą į prievado numerį, kurį anksčiau pastebėjote Prietaisai ir spausdintuvai .

    Uosto nustatymas

  5. Tame pačiame meniu Įrankis nustatykite procesorių į „ATmega328P“ (senas įkrovos įrankis).

    Procesorius

  6. Atsisiųskite žemiau pridėtą kodą ir įklijuokite jį į „Arduino IDE“. Spustelėkite įkelti mygtuką, kad įrašytumėte kodą savo mikrovaldiklio plokštėje.

    Įkelti

Spustelėkite čia atsisiųsti kodą.

5 žingsnis: supraskite kodą

Kodas gana gerai komentuojamas ir savaime suprantamas. Bet vis tiek trumpai paaiškinta toliau.

1. Pradžioje inicijuojami visi „Arduino“ kaiščiai, kuriuos ketiname naudoti.

int enable1pin = 8; // Pirmojo variklio int varikliai1pin1 = 2; int variklis1pin2 = 3; int enable2pin = 9; // Antrojo variklio kaiščiai varikliui2pin1 = 4; int variklis2pin2 = 5; const int trigPin = 11; // Ultragarsinio jutiklio kaiščiai const int echoPin = 10; const int buzzPin = 6; ilga trukmė; // Ultragarsinio jutiklio plūduriuojančio atstumo kintamieji;

2. negaliojanti sąranka () yra funkcija, kurioje mes nustatome visus kaiščius, kurie bus naudojami kaip INPUT arba OUTPUT. Šioje funkcijoje taip pat nustatytas perdavimo greitis. Siuntimo dažnis yra greitis, kuriuo mikrovaldiklio plokštė bendrauja su pritvirtintais jutikliais.

negaliojanti sąranka () {Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); „pinMode“ („buzzPin“, OUTPUT); pinMode (enable1pin, OUTPUT); pinMode (enable2pin, OUTPUT); pinMode (motor1pin1, OUTPUT); pinMode (motor1pin2, OUTPUT); pinMode (motor2pin1, OUTPUT); pinMode (motor2pin2, OUTPUT); }

3. tuščia kilpa () yra funkcija, kuri nuolat veikia cikle. Šioje kilpoje mikrovaldikliui pasakėme, kada judėti pirmyn, jei 50 cm nerandama kliūčių. Radęs kliūtį robotas staigiai pasuks dešiniuoju.

void loop () {digitalWrite (trigPin, LOW); vėlavimasMikrosekundės (2); „digitalWrite“ (trigPin, HIGH); vėlavimasMikrosekundės (10); „digitalWrite“ (trigPin, LOW); trukmė = pulseIn (echoPin, HIGH); atstumas = 0,034 * (trukmė / 2); if (atstumas> 50) // Judėti pirmyn, jei nerasta kliūties {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); „digitalWrite“ (motor1pin1, HIGH); „digitalWrite“ (motor1pin2, LOW); „digitalWrite“ (motor2pin1, HIGH); „digitalWrite“ (motor2pin2, LOW); } dar jei (atstumas<50) // Sharp Right Turn if an obstacle found { digitalWrite(enable1pin, HIGH); digitalWrite(enable2pin, HIGH); digitalWrite(motor1pin1, HIGH); digitalWrite(motor1pin2, LOW); digitalWrite(motor2pin1, LOW); digitalWrite(motor2pin2, LOW); } delay(300); // delay }

Dabar, kai mes aptarėme viską, ko reikia norint pagaminti automatinį grindų valymo robotą, mėgaukitės savo pačių pigiausių ir efektyvių grindų valymo robotų kūrimu.