Maailmassa joka päivä robottipuhdistusaineiden suosio kasvaa. Tällaisten pienten auttajien ansiosta talosta tulee paljon puhtaampaa ja siivoukseen kuluu paljon vähemmän vaivaa. Roboteissa on paljon erilaisia modifikaatioita, ne kaikki eroavat toiminnallisuudestaan, koostaan ja muista parametreista.
Erityisesti tässä artikkelissa tarkastellaan esimerkkiä siitä, kuinka
tee se itse Voit tehdä yksinkertaisen robotin, joka itse imuroi huoneen tarvittaessa. Säädintä käytetään tässä "aivona"
Työläs.
Materiaalit ja työkalut robotin valmistukseen:- moottorin toimintaa ohjaava kortti (Arduino-moottorin suoja);
- Arduino-lauta;
- kaksi vaihdemoottoria (moottorit 3 voltilla ja pyörimisnopeudella noin 100 rpm);
- pyörät (voidaan valmistaa alumiinisista tölkeistä;
- jäähdytin tietokoneen virtalähteestä (mahdollista sekä 5 V että 12 V);
- 5 V: n virtalähde (akku);
- johdot ja levy radioelementtien asentamiseen;
- kotelon valmistamiseksi tarvitset muovisäiliön;
- Toinen pieni kontti jäteastian luomiseksi;
- kuuma liima;
- magneetit;
- pahvi.
Robotin valmistusprosessi:
Ensimmäinen askel. Ohjelmiston osa robotista ja luonnos:
Robotin sydän on Arduino-ohjain. Ohjelmoidaksesi tarvitset tietokoneen ja erityisen ohjelmiston.
Jotta voit ladata luonnoksen taululle, tarvitset Arduino IDE -ohjelman. Alla voit ottaa robotin ohjelmakoodin ja nähdä pääpiirin.
/*
Ohjelma robotin ohjaamiseksi kahdella moottorilla.
Robotti kääntyy, kun moottorit muuttavat nopeutta ja suuntaa.
Etupuskurit vasemmalla ja oikealla puolella havaitsevat esteet.
Ultraääniherätteet voidaan kytkeä analogiatuloihin (testattu LV-MaxSonar-EZ1):
- laita nastat maadoitettuihin nastatappeihin seuraavassa järjestyksessä: vasen, oikea, edessä, muut ..
esimerkkejä:
1. vain vasemman ja oikean poikit, jotka on kytketty nastoihin 2 ja 3: sonarPins [] = {2,3}
2. vasen, oikea ja edessä oleva ultraääni kytketty nastaihin 2, 3 ja 5: sonarPins [] = {2,3,5}
3. Ainoa etuluotain kytketty nastaan 5: sonarPins [] = {-1, -1.5}
4. vain vasen luotain kytketty napaan 2: sonarPins [] = {2}
5. Ainoa oikea luotain kytketty nastaihin 3: sonarPins [] = {-1,3}
6,5 nastat, jotka on kytketty tappeihin 1,2,3,4,5: sonarPins [] = {1,2,3,4,5}
Moottorin suojaa käytetään moottorien käyttämiseen.
*/
const int Baud = 9600; // UART-portin nopeus
// Kaikuominaisuudet
int sonarPins [] = {1, 2}; // Analogiset pin-numerot sonarianturin pin AN: lle
const pitkä MinLeftDistance = 20; // Pienin sallittu vasen etäisyys
const pitkä MinRightDistance = 20; // Pienin sallittu oikea etäisyys
const pitkä MinFrontDistance = 15; // Pienin sallittu etäisyys etäisyydestä
const int SamplesAmount = 15; // enemmän näytteitä - tasaisempi mittaus ja suurempi viive
const int SonarDisplayFrequency = 10; // näytä vain yksi näistä riveistä - ei kaikkia
int sonarDisplayFrequencyCount = 0;
const pitkä kerroin = 2,54 / 2;
pitkät näytteet [koko (sonarPins)] [SamplesAmount];
int sampleIndex [koko (sonarPins)];
// oikea puoli
const int pinRightMotorDirection = 4; // tämä voidaan merkitä moottorin suojaan merkinnällä "DIR A"
const int pinRightMotorSpeed = 3; // tämä voidaan merkitä moottorin suojaan merkinnällä "PWM A"
const int pinRightBumper = 2; // mihin oikea puskuri on kytketty
// vasen puoli
const int pinLeftMotorDirection = 7; // tämä voidaan merkitä moottorin suojaan merkinnällä "DIR B"
const int pinLeftMotorSpeed = 6; // tämä voidaan merkitä moottorin suojaan merkinnällä "PWM B"
const int pinLeftBumper = 8; // mihin oikea puskuri on kytketty
// kommentoi seuraavia 2 riviä, jos moottorin suojassa on taukoja
// const int pinRightMotorBreak = PUT_BREAK_PIN_HERE; // tämä voidaan merkitä moottorin suojaan merkinnällä "BREAKE A"
// const int pinLeftMotorBreak = PUT_BREAK_PIN_HERE; // tämä voidaan merkitä moottorin suojaan merkinnällä "BREAKE B"
// kentät
const int turnRightTimeout = 100;
const int turnLeftTimeout = 150;
// aseta laskuriin kuinka kauan moottori käy takaisin: N / 10 (millisekunnissa)
int countDownWhileMovingToRight;
int countDownWhileMovingToLeft;
// Alustus
tyhjä asennus () {
Serial.begin (Baud);
initPins ();
// kommentoi seuraavia 4 riviä, jos moottorisuojassa on taukoja
// pinMode (pinLeftMotorBreak, OUTPUT);
// pinMode (pinRightMotorBreak, OUTPUT);
// digitalWrite (pinLeftMotorBreak, LOW); // katkaise tauot
// digitalWrite (pinRightMotorBreak, LOW); // katkaise tauot
runRightMotorForward ();
runLeftMotorForward ();
startMotors ();
}
// Pääsilmukka
tyhjä silmukka () {
checkAndSetRightSide ();
checkAndSetLeftSide ();
processRightSide ();
processLeftSide ();
viive (10); // toista joka 10 millisekuntia
}
//---------------------------------------------------
tyhjät initPins () {
pinMode (pinRightMotorDirection, OUTPUT);
pinMode (pinRightMotorSpeed, OUTPUT);
pinMode (pinRightBumper, INPUT);
pinMode (pinLeftMotorDirection, OUTPUT);
pinMode (pinLeftMotorSpeed, OUTPUT);
pinMode (pinLeftBumper, INPUT);
varten (int i = 0; i pinMode (sonarPins [i], INPUT);
}
tyhjä käynnistysmoottori () {
setMotorSpeed (pinRightMotorSpeed, 255);
setMotorSpeed (pinLeftMotorSpeed, 255);
}
tyhjä odotusWhileAnyBumperIsPressed () {
kun taas (checkBumperIsNotPressed (pinRightBumper)
&& checkBumperIsNotPressed (pinLeftBumper)) {
viive (20); // tarkista joka 20 millisekuntia
}
}
void processRightSide () {
if (countDownWhileMovingToRight MinFrontDistance) // tarkistaa, onko vähimmäis sallittua etäisyyttä saavutettu
palata;
if (checkCounterIsNotSet (countDownWhileMovingToLeft)) // jos laskuria ei vielä lasketa
runLeftMotorBackward (); // aja oikea moottori taaksepäin
countDownWhileMovingToLeft = turnLeftTimeout; // aseta laskuri maksimiarvoon aloittaaksesi laskennan
}
bool checkCounterIsNotSet (int-laskuri) {
paluulaskuri = SamplesAmount)
sampleIndex [pinIndex] = 0;
näytteet [pinIndex] [sampleIndex [pinIndex]] = arvo;
palata totta;
}
pitkä laskeAvarageDistance (int pinIndex) {
pitkä keskiarvo = 0;
varten (int i = 0; i keskiarvo + = näytteet [pinIndex] [i];
tuottokeskiarvo / SamplesAmount;
}
Vaihe toinen Robotin peruselementtien valmistelu
Pahvia käytetään pohjana kaikkien robotin komponenttien kiinnittämiseen, mukaan lukien akku, ohjauskortit ja moottorit.
Turbiini on liimattava kunnolla tai muuten kiinnitettävä pieneen muovisäiliöön, johon on tehtävä reikä lian imeytymistä varten. Myöhemmin tämä malli liimataan pahvipohjaan. Lisäksi säiliössä on oltava lisäreikä, jonka läpi ilma poistuu. Pitäisi olla suodatin, kirjoittaja päätti käyttää synteettistä kangasta näihin tarkoituksiin.
Seuraavassa vaiheessa jäähdytin on liimattava servoilla, ja sitten tämä malli asennetaan pahvipohjaan.
Vaihe kolme Teemme robotille pyöriä
Pyörien valmistamiseksi sinun on otettava alumiinitölkit ja leikattava ylä- ja alaosa niistä. Sitten nämä elementit liimataan yhteen. Nyt jää vain kiinnittää pyörät kunnolla servomoottoreihin kuumasulaliimalla. On tärkeää ymmärtää, että pyörät on kiinnitettävä selvästi servojen akselien keskelle. muuten robotti ajaa vinosti ja kuluttaa energiaa.
Vaihe neljä Viimeinen robotin kokoonpanoprosessi
Kun akku on asennettu ja kaikki robotin elementit on kytketty, rakenne on asetettava kestävään koteloon. Suuri muovisäiliö on hieno näihin tarkoituksiin. Ensinnäkin robotti rungon nenään on tehtävä reikiä, joiden läpi ulostulossa olevat kosketimet antavat signaalin elektroniikka kun robotti törmää esteeseen.
Kotelon poistamiseksi nopeasti ja helposti, kiinnitetään magneetteja, tässä tapauksessa niitä on kahdeksan. Magneetit liimataan pölynimurin sisäosaan ja itse säiliöön, 4 kpl kutakin.
Siinä kaikki. Nyt robotti on koottu ja sitä voidaan kokeilla käytännössä. Huolimatta siitä, että robotti ei pysty latautumaan yksinään ja sillä on melko rajallinen navigointikyky, puoli tuntia se pystyy puhdistamaan roskat keittiössä tai pienessä huoneessa. Robotin etuna on, että kaikki komponentit löytyvät helposti ja ne eivät ole kovin kalliita. Ei epäilystäkään kotitekoinen Voit tarkentaa lisäämällä uusia antureita ja muita elementtejä.