Kaip padaryti protingą šiukšliadėžę naudojant „Arduino“?

Pasaulis juda greitai, kartu su juo juda ir technika elektronikos srityje. Viskas šioje šiuolaikinėje eroje tampa protinga. Kodėl nepadarome šiukšliadėžių protingų? Tai dažna problema, pastebima mūsų aplinkoje, kad dauguma šiukšliadėžių yra uždengtos iš viršaus. Žmonės jaučiasi nejaukiai palietę dangtį ir jį atidarydami, kad į jį įeitų bėrimas. Šią kai kurių žmonių problemą galime išspręsti automatizuodami šiukšliadėžės dangtį.



Išmanusis šiukšliadėžė

„Arduino“ ir ultragarso jutiklis kartu su servo varikliu gali būti integruoti, kad būtų sukurta išmani šiukšliadėžė. Jei šiukšliadėžė aptinka šiukšlių priešais save, ji automatiškai atidarys dangtį ir po kelių sekundžių uždarys dangtį.



Kaip automatiškai atidaryti ir uždaryti šiukšliadėžės dangtį naudojant „Arduino“?

Dabar, kai žinome projekto santrauką, eikime į priekį ir pradėkime rinkti daugiau informacijos apie komponentus, veikimą ir grandinės schemą, kad iškart pradėtume dirbti su projektu.



1 veiksmas: rinkite komponentus

Jei norite išvengti nepatogumų bet kurio projekto viduryje, geriausias būdas yra sudaryti išsamų visų komponentų, kuriuos ketiname naudoti, sąrašą. Antras žingsnis, prieš pradedant kurti grandinę, yra trumpas visų šių komponentų tyrimas. Visų komponentų, kurių mums reikia šiame projekte, sąrašas pateikiamas žemiau.



  • [„Amazon Link“ = „B07QTQ72GJ“ pavadinimas = „Arduino Nano“ /]
  • [„Amazon Link“ = „B07JJSGL5S“ pavadinimas = „Ultragarsinis jutiklis“ /]
  • [„Amazon Link“ = „B07D3L25H3“ pavadinimas = „Servo variklis“ /]
  • [„Amazon Link“ = „B07PPP185M“ pavadinimas = „Breadboard“ /]
  • [„Amazon Link“ = „B01D9ZM6LS“ pavadinimas = „Breadboard Jumper Wires“ /]
  • [„Amazon Link“ = „B07QNTF9G8 ″ title =“ 5 V maitinimo adapteris „Arduino“ /]

2 žingsnis: komponentų studijavimas

Dabar, kai turime išsamų visų komponentų sąrašą, eikime vienu žingsniu į priekį ir atlikime trumpą kiekvieno komponento veikimo tyrimą.

„Arduino Nano“ yra skydui tinkama 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. jei neturite „Arduino Nano“, taip pat galite naudoti „Arduino Uno“ arba „Arduino Maga“.

„Arduino Nano“



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.

Į Servo variklis yra sukamasis arba linijinis pavaras, kurį galima valdyti ir judėti tiksliai. Šie varikliai skiriasi nuo nuolatinės srovės variklių. Šie varikliai leidžia tiksliai valdyti kampinį arba sukamąjį judesį. Šis variklis yra sujungtas su jutikliu, kuris siunčia grįžtamąjį ryšį apie jo judėjimą.

Servo variklis

3 žingsnis: darbo supratimas

Gaminame šiukšliadėžę, kurios dangtis automatiškai atsidarys ir užsidarys ir nereikės jo fiziškai liesti. Mes tiesiog turėsime išnešti šiukšles priešais šiukšliadėžę. Ultragarso jutiklis automatiškai aptiks šiukšles ir servovariklio pagalba atidarys dangtį. Kai dangtis bus atidarytas, mesime šiukšles į šiukšliadėžę, o kai baigsime, dangtis bus uždarytas automatiškai po kelių sekundžių. Tai yra paprastas šio projekto darbo principas.

4 žingsnis: komponentų surinkimas

  1. Ant šiukšliadėžės šono pritvirtinkite duonos lentą. Į jį įdėkite „Arduino Nano“ plokštę.
  2. Priešais šiukšliadėžę pritvirtinkite ultragarso jutiklį. jutiklis turi būti nukreiptas šiek tiek į viršų, šiek tiek pakylant.
  3. Paimkite servo variklį ir užfiksuokite servo rankeną. Karštų klijų pagalba ant šiukšliadėžės ir dangtelio jungties pritvirtinkite servovariklį.
  4. Dabar atlikite visas jungtis per jungiamuosius laidus. Prijunkite „Vin“ ir variklio žemę bei ultragarso jutiklį prie „Arduino“ 5 V ir žemės. Prijunkite jutiklio paleidimo kaištį prie kaiščio2, o aido kaištį - prie „Arduino“ kaiščio3. Prijunkite servovariklio PWM kaištį prie „Arduino“ pin5.
  5. Dabar, kai visos grandinės jungtys yra padarytos, tai turėtų atrodyti taip:

    Grandinės schema

5 ž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“ iš išskleidžiamojo meniu.

    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. Norint parašyti kodą servovarikliams valdyti, mums reikia specialios bibliotekos, kuri padės mums parašyti keletą servovariklių funkcijų. Ši biblioteka kartu su kodu yra pridėta žemiau esančioje nuorodoje. Norėdami įtraukti biblioteką, spustelėkite Eskizas> Įtraukti biblioteką> Pridėti ZIP. Biblioteka.

    Įtraukti biblioteką

  7. 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

Norėdami atsisiųsti kodą, paspauskite čia.

6 veiksmas: supraskite kodą

Kodas yra gana gerai komentuojamas, bet vis tiek trumpai paaiškinamas toliau.

1. Pradžioje įtraukiama biblioteka, kad galėtume naudoti įmontuotas funkcijas servovarikliui valdyti. Taip pat inicializuoti du „Arduino Nano“ plokštės kaiščiai, kad juos būtų galima naudoti ultragarso jutiklio gaidukui ir aido kaiščiui. Objektas taip pat pagamintas taip, kad juo būtų galima nustatyti servovariklių vertes. Taip pat deklaruojami du kintamieji, kad būtų galima išsaugoti ultragarso signalo atstumo ir laiko vertę, tada panaudoti formulėje.

#include // Įtraukti servo variklio servo servo biblioteką; // Paskelbkite servo variklio objektą int const trigPin = 2; // Prijunkite „arduino“ PIN2 su ultragarso jutiklio trigeru int const echoPin = 3; // Prijunkite „arduino“ pin3 su ultragarso jutiklio echo int trukme, atstumu; Paskelbkite kintamuosius, kad išsaugotumėte ultragarso signalo atstumą ir tipą

2. negaliojanti sąranka () yra funkcija, kurios metu mes inicijuojame „Arduino“ plokštės kaiščius, kurie bus naudojami kaip įvestis arba išvestis. Trigerio kaištis bus naudojamas kaip išvestis, o echo kaištis - kaip įvestis. Mes naudojome objektą servo , prijunkite variklį prie „Arduino nano“ 5 kaiščio. „Pin5“ gali būti naudojamas PWM signalui siųsti. Šioje funkcijoje taip pat nustatytas perdavimo greitis. Siuntimo sparta yra bitų per sekundę greitis, kuriuo mikrovaldiklis bendrauja su išoriniais įrenginiais.

negaliojanti sąranka () {Serial.begin (9600); // mikrovaldiklio pinMode (trigPin, OUTPUT) perdavimo greičio nustatymas; // trig pin bus naudojamas kaip išvesties pinMode (echoPin, INPUT); // aido kaištis bus naudojamas kaip įvesties servo.attach (5); // Įtraukite servo variklį į „arduino“ pin5}

3. tuščia kilpa () yra funkcija, kuri veikia vėl ir vėl cikle. Šioje kilpoje ultragarso banga siunčiama į aplinką ir priimama atgal. Nuvažiuotas atstumas matuojamas naudojant signalui užtrukusį laiką palikti jutiklį ir grįžti prie jo. Tada atstumui atitinkamai taikoma sąlyga.

void loop () {digitalWrite (trigPin, HIGH); // ultragarso signalo siuntimas aplinkiniame delsoje (1); „digitalWrite“ (trigPin, LOW); // Išmatuokite impulso įvestį echo pin trukme = pulseIn (echoPin, HIGH); // Atstumas yra pusė trukmės, padalyta iš 29,1 (iš duomenų lapo) atstumas = (trukmė / 2) / 29,1; // jei atstumas mažesnis nei 0,5 metro ir didesnis nei 0 (0 arba mažiau reiškia diapazoną) if (atstumas = 0) {servo.write (50); vėlavimas (3000); } else {servo.write (160); }}

Dabar, kai žinome visus žingsnius, kuriuos reikia atlikti norint įgyvendinti šį nuostabų projektą, paskubėkite mėgautis savo išmaniosios šiukšliadėžės gamyba.