- Vaadittu komponentti:
- Lattianpuhdistusrobotin kokoonpano:
- Johdotus ja liitännät:
- Ohjelmoinnin selitys:
Automaattiset lattianpuhdistusaineet eivät ole mitään uutta, mutta niillä kaikilla on yhteinen ongelma. Ne kaikki ovat liian kalliita tekemiselleen. Tänään teemme automaattisen kodinpuhdistusrobotin, joka maksaa vain pienen osan markkinoilla olevista. Tämä robotti pystyy havaitsemaan edessään olevat esteet ja esineet ja voi liikkua esteitä välttäen, kunnes koko huone on puhdistettu. Siihen on kiinnitetty pieni harja lattian puhdistamiseksi.
Tarkista myös älykäs imurobottimme Arduinolla
Vaadittu komponentti:
- Arduino UNO R3.
- Ultraäänianturi.
- Arduino Motor Driver -suoja.
- Nelivetoinen robotti-alusta.
- Tietokone ohjelmoimaan Arduino.
- Moottoreiden akku.
- Virtapankki Arduinon virran saamiseksi
- Kenkäharja.
- Scotch Brite Scrub Pad.
Huomaa: Paristojen käyttämisen sijaan voit käyttää myös pitkää 4-säikeistä johtoa kuten teimme. Vaikka tämä ei ole kovin tyylikäs tai käytännöllinen ratkaisu, voit tehdä sen, jos et aio käyttää sitä reaalimaailmassa joka päivä. Varmista, että kaapelin pituudet ovat riittävät.
Ennen kuin pääset yksityiskohtiin, keskustellaan ensin ultraäänestä.
HC-SR04-ultraäänianturi:
Ultraäänianturia käytetään mittaamaan etäisyys suurella tarkkuudella ja vakailla lukemilla. Se voi mitata etäisyyden 2 cm - 400 cm tai 1 tuumasta 13 jalkaan. Se lähettää ultraääniaallon taajuudella 40KHz ilmassa ja jos esine tulee tielle, se palautuu takaisin anturiin. Käyttämällä aikaa, joka kuluu kohteen lyömiseen ja paluuseen, voit laskea etäisyyden.
Ultraäänianturi käyttää tekniikkaa nimeltä "ECHO". ”ECHO” on yksinkertaisesti heijastunut ääniaalto. Sinulla on ECHO, kun ääni heijastuu takaisin umpikujaan pääsyn jälkeen.
HCSR04-moduuli tuottaa äänen värähtelyn ultraäänialueella, kun teemme 'Trigger' -nastan korkeaksi noin 10us: lle, mikä lähettää 8-syklisen äänipurskeen äänen nopeudella ja kun esine on osunut, Echo-nasta vastaanottaa sen. Äänen värähtelyn paluuaikaan riippuen se tarjoaa sopivan pulssilähdön. Jos kohde on kaukana, ECHO: n kuuleminen vie enemmän aikaa ja lähtöimpulssin leveys on suuri. Ja jos este on lähellä, ECHO kuuluu nopeammin ja lähtöimpulssin leveys on pienempi.
Voimme laskea kohteen etäisyyden sen ajan perusteella, jonka ultraääniaalto palaa takaisin anturiin. Koska äänen aika ja nopeus tunnetaan, voimme laskea etäisyyden seuraavilla kaavoilla.
Etäisyys = (aika x äänen nopeus ilmassa (343 m / s)) / 2.
Arvo jaetaan kahdella, koska aalto kulkee eteenpäin ja taaksepäin samalla etäisyydellä. Esteen saavuttamiseen kuluva aika on siis vain puolet kokonaisajasta
Joten etäisyys senttimetreinä = 17150 * T
Olemme aiemmin tehneet monia hyödyllisiä projekteja käyttämällä tätä ultraäänianturia ja Arduinoa, tarkista ne alla:
- Arduino-pohjainen etäisyyden mittaus ultraäänianturilla
- Ovihälytys Arduino- ja ultraäänianturilla
- IOT-pohjainen kaatopaikkaseuranta Arduinolla
Lattianpuhdistusrobotin kokoonpano:
Asenna Arduino alustaan. Varmista, että et oikosulje mitään, jos runko on metallia. On hyvä hankkia laatikko Arduinolle ja moottorin ohjainsuojalle. Kiinnitä moottorit pyörillä ja alustalla ruuveilla. Alustallasi pitäisi olla vaihtoehtoja tehdä tämä tehtaalta, mutta jos se ei onnistu, voit improvisoida toisen ratkaisun. Epoksi ei ole huono idea. Asenna kenkäharja rungon etuosaan. Tähän käytimme M-Seal-epoksin ja porattujen ruuvien yhdistelmää, vaikka voit käyttää mitä tahansa muuta sinulle helpompaa ratkaisua. Asenna Scotch Brite -pesutyyny harjan taakse. Käytimme rungon poikki kulkevaa akselia, joka pitää sen pelissä, vaikka tämä on myös improvisoitavaa. Sen mukana voidaan käyttää jousikuormitettua akselia. Asenna paristot (tai kaapelit rungon takaosaan).Epoksi tai paristopidike ovat hyviä tapoja tehdä tämä. Kuuma liima ei myöskään ole huono.
Johdotus ja liitännät:
Tämän automaattisen kodinpuhdistusrobotin piiri on hyvin yksinkertainen. Kytke ultraäänianturi Arduinoon alla mainitulla tavalla ja aseta moottorin kuljettajan suojus Arduinoon kuten muutkin suojat.
Ultrasonicin Trig-nasta on kytketty Arduinon 12. nastaan, Echo-nasta on kytketty 13. nastaan, jännitetappi 5 V: n nastaan ja maadoitettu tappi maahan. Echo-nasta ja Trig-tappi antavat Arduinon kommunikoida anturin kanssa. Virta toimitetaan anturiin jännite- ja maadoitusnastojen kautta, ja Trig- ja Echo-nastojen avulla se voi lähettää ja vastaanottaa tietoja Arduinon kanssa. Lisätietoja ultraäänianturin ja Arduinon liittämisestä täältä.
Moottorinsuojuksessa on oltava vähintään 2 lähtöä, ja ne on kytkettävä kahteen moottoriin. Normaalisti nämä lähdöt on merkitty "M1" ja "M2" tai "Motor 1" ja "Motor 2". Johdot akut ja virtapankki moottorinsuojukseen ja Arduinoon. Älä kytke niitä ristiin. Moottorinsuojuksessa tulisi olla tulokanava. Jos käytät johtoja, liitä ne verkkolaitteisiin.
Ohjelmoinnin selitys:
Avaa Arduino IDE. Liitä koko tämän opetusohjelman lopussa annettu Arduino-koodi IDE: hen. Liitä Arduino tietokoneeseen. Valitse portti Työkalut / Portti-kohdasta. Napsauta lähetyspainiketta.
Testaa robotti. Jos se kääntyy liian vähän tai liian paljon, kokeile viivästyksiä täydelliseksi.
Ennen koodiin perehtymistä meidän on asennettava Adafruit Motor Shield Library -kirjasto DC-moottoreiden käyttämiseksi. Koska käytämme L293D-moottorin ohjainsuojaa, meidän on ladattava AFmotor-kirjasto täältä. Lisää se sitten Arduino IDE -kirjastokansioon. Nimeä se uudelleen AFMotoriksi . Lisätietoja tämän kirjaston asentamisesta.
Koodi on helppo ja ymmärrettävä helposti, mutta tässä olemme selittäneet muutamia osia siitä:
Koodin alapuolella robotti asetetaan. Ensin olemme sisällyttäneet Adafruit-kirjaston moottorien kuljettamiseen moottorin kuljettajan suojalla. Sen jälkeen määriteltiin Trig-nasta ja Echo-tappi. Se asettaa myös moottorit. Se asettaa Trig-nastan tulostettavaksi ja Echo-nastan syötettäväksi.
#include #define trigPin 12 #define echoPin 13 AF_DCMoottorimoottori1 (1, MOTOR12_64KHZ); AF_DCMoottorimoottori2 (2, MOTOR12_8KHZ); void setup () {pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); }
Koodin alapuolella Arduino käskee luomaan seuraavat komennot. Sen jälkeen se käyttää anturia ultraäänen lähettämiseen ja vastaanottamiseen. Se laskee etäisyyden kohteesta, kun ultraääniaallot palautuvat takaisin, ja huomattuaan, että kohde on asetetulla etäisyydellä, se kehottaa Arduinoa pyörittämään moottoreita vastaavasti.
void loop () {pitkä kesto, etäisyys; digitalWrite (trigPin, LOW); viive mikrosekuntia (2); digitalWrite (trigPin, HIGH); viive mikrosekuntia (10); digitalWrite (trigPin, LOW); kesto = pulssi (echoPin, HIGH); etäisyys = (kesto / 2) / 29,1; if (etäisyys <20) {motor1.setSpeed (255); motor2.setSpeed (0); motor1.run (TAKAISIN); motor2.run (TAKAISIN); viive (2000); // MUUTA TÄTÄ ROBOTIN KÄYTTÖÖN.
Tämä saa robotin kääntymään pyörittämällä yhtä moottoria ja pitämällä toisen paikallaan.
Koodin alapuolella robotti kääntää molemmat moottorit samaan suuntaan saadakseen sen liikkumaan eteenpäin, kunnes se havaitsee kohteen edellä mainitulla rajalla.
else {moottori1.setSpeed (160); // MUUTA TÄTÄ MITEN NOPEASTI ROBOTIN PITÄISI SIITÄ. motor2.setSpeed (160); // MUUTA TÄTÄ SAMAAN ARVOON, KUN ASETAT YLÖS. motor1.run (Eteenpäin); moottori 2. juoksu (Eteenpäin); }