Sisällysluettelo:

Yksinkertainen tutkajärjestelmä Magicbitista: 6 vaihetta
Yksinkertainen tutkajärjestelmä Magicbitista: 6 vaihetta

Video: Yksinkertainen tutkajärjestelmä Magicbitista: 6 vaihetta

Video: Yksinkertainen tutkajärjestelmä Magicbitista: 6 vaihetta
Video: Etelämanner, elämää jäätyneissä aavikoissa 2024, Heinäkuu
Anonim

Tämä opetusohjelma näyttää kuinka tehdä yksinkertainen tutkajärjestelmä käyttämällä HC-SR04-anturia ja Microbit-kehityskorttia, jossa on käsittely ja Arduino IDE: t.

Tarvikkeet:

  • SG90 Mikroservomoottori
  • Hyppyjohdot (yleinen)
  • Breadboard (yleinen)
  • Magicbit
  • USB-A-Micro-USB-kaapeli
  • Ultraäänianturi - HC -SR04 (yleinen)

Vaihe 1: Tarina

Tässä opetusohjelmassa opimme tekemään yksinkertaisen tutkajärjestelmän Magicbit -ydinkortilla. Tätä tarkoitusta varten käytämme HC-SR04-ultraäänianturia ja tietojen näyttämiseen käsittelyympäristöä. Aloitetaan.

Vaihe 2: Teoria ja metodologia

Keskustellaan ensin siitä, miten tämä toimii. Periaate on erittäin helppo. Käännämme anturia jatkuvasti pystyakselin ympäri 180 asteen alueella jatkuvasti. Tämän liikkeen aikana otamme tiedot etäisyydestä lähimpään kohteeseen ultraäänianturista joka kulmasta. Tässä prosessissa käytämme Magicbit -ydinlevyä. Sen jälkeen meidän on muodostettava yhteys käsittelyympäristöön tietojen näyttämiseksi. Siksi käytämme sarjaliikenneprotokollaa sopivalla tiedonsiirtonopeudella. Suunnittelemme sitten tutkajärjestelmän käyttöliittymän käsittelyn IDE: n avulla. Tässä IDE: ssä määritämme sarjaliikenneviestimme niin, että se saa reaaliaikaista tietoa sarjaliikenteen kautta. Joten teemme reaaliaikaista viestintää Magicbitin kanssa ja näytämme tiedot, jotka lähetetään Magicbitista käsittely IDE: hen.

Vaihe 3: Laitteiston asennus

Laitteiston asennus
Laitteiston asennus
Laitteiston asennus
Laitteiston asennus

Tässä projektissa käytimme pääasiassa kolmea laitteistokomponenttia. Ne ovat Magicbit, servomoottori ja ultraäänianturi. Kaikkien näiden osien välinen yhteys on esitetty yllä olevassa kuvassa.

Ultraäänianturia käytettiin 3,3 V: n virran kytkemiseen. Siksi käytimme Magicbit -levyn oikeaa alaporttia yhdistämään ultraäänianturi Magicbitiin. Mutta servomoottoria käytetään 5 V: n toimintaan, joten käytimme vasenta alempaa porttia servomoottorin liittämiseen Magicbitiin. Tässä tapauksessa käytämme Magic -bitin servoliitäntämoduulia. Mutta jos sinulla ei ole kyseistä moduulia, voit yhdistää kolme hyppyjohtoa 5V: n 5V: n, Gnd: n (Gnd) ja signaalitapin (26 pin) liitäntään magicbitilla.

Piirin rakentamisen jälkeen meillä on pieni mekaaninen osa rakennettavaksi. aseta yksipuolinen servoliitin servomoottoriin pienellä mutterilla. Kiinnitä sitten anturi kyseiseen liittimeen L -muotoisella kiinnikkeellä tai oikealla tavalla. Koko järjestelmän jälkeen kiinnitimme leipälevylle. Mutta voit käyttää muuta pintaa servon ja Magicbitin asentamiseen.

Vaihe 4: Ohjelmiston asennus

Ohjelmiston asennus
Ohjelmiston asennus
Ohjelmiston asennus
Ohjelmiston asennus

Ohjelmistopuoli on vähän monimutkainen. Jotta ymmärrät asian oikein, voit viitata seuraaviin linkkeihin ennen kuin siirryt seuraavaan osaan.

magicbit-arduino.readthedocs.io/en/latest/

hello.processing.org/editor/

Katsotaanpa Arduinon IDE -koodia ja kuinka koodi toimii.

Servo -ohjaukseen käytämme ESP32 -servokirjastoa. Tämä kirjasto on melkein mukana Arduino IDE: n magic bit board -hallinnassa. Ultraäänianturin käsittelyyn käytämme newPing -kirjastoa. Tämän voi ladata alla olevasta linkistä.

bitbucket.org/teckel12/arduino-new-ping/do…

Lataa zip -tiedosto ja siirry työkaluihin> sisälly kirjastoon> lisää Zip -kirjasto Arduinoon. valitse nyt ladattu zip -tiedosto uudesta pin -kirjastosta. Käsittelyyn kommunikointiin käytimme sarjaliikennettä 115200 baudin nopeudella. Tämä on sopivin taajuus ESP32: lle. Lähetämme tietomme tietokoneeseen joka kulmasta tämän protokollan avulla. Etäisyys lähimpään etukohteeseen anturista, pyörimissuunta ja kiertokulma sisältyvät näihin tietoihin. Käyttämällä kahta silmukoille pyöritämme servoa kahteen suuntaan. Yhden asteen kierros lähetti sarjatietoja 4 kertaa. Syy siihen ymmärrät osien selitysten käsittelyssä.

Nyt on aika tarkastella käsittelyympäristöä. Tämä on java -pohjainen ohjelmointiohjelmisto. Voimme kirjoittaa luonnoksen ohjelmastamme tähän luonnokseen IDE: n käsittelyssä. Voimme myös luoda visuaalista tulosta ohjelmamme suorittamisesta. Voit myös ottaa tuloksen 2D- ja 3D -objekteina. Ei vain sitä, sitä voidaan käyttää kuvankäsittelyyn ja moniin muihin asioihin.

Käsittelyluonnoksessa suunnittelemme ensin datanäyttöliittymän yksinkertaisten graafisten toimintojen avulla. Koodin alussa muodostamme sarjaviestinnän sisällyttämällä sarjakirjastot. Asetustoiminnossa sinun on tehtävä joitakin muutoksia sen mukaan, minkä USB -portin avulla Magicbit yhdistettiin tietokoneeseen. Voit tarkistaa porttisi Arduino IDE: n avulla, kun asetat Arduino IDE: n lataamaan koodin. Vaihda sitten portin nimi asetusosassa luonnoksen käsittelyssä. kun sarjatiedot ovat saatavilla, Serialevent -toiminto käynnistyy automaattisesti. Siksi koodin päälogiikka on sisällyttää sarjatapahtumaan kulmien ja tietojen puuttumisen estämiseksi. Kun uutta tietoa on saatavana, piirrämme ruudulle viivan kulmamme mukaan. silloin, kun objektin havaitsemista ei ole, koko viiva on vihreä. Jos ei, niin osa viivasta on punainen anturin ja kohteen välisen etäisyyden mukaan. Myös pyörimissuunnan mukaan piirrämme vielä 200 viivaa lähelle tätä viivaa, jolloin vihreä väri vähenee. jokaisen pääosan välillä on 0,25 asteen ero. Siksi saamme Magicbitistä 4 lukemaa kerrallaan jokaisessa asteen kiertossa. Siksi voimme luoda kauniita etsiviä käsi ruudulla.

Kun olet ladannut koodin onnistumisen täysin taikuuteen ja asettanut laitteisto -osan, avaa prosessointitunnus ja suorita koodi napsauttamalla Suorita -painiketta. Nyt sinulla on hyvin yksinkertainen tutkajärjestelmä.

Voit muokata koodeja haluamallasi tavalla.

Vaihe 5: Vianetsintä

Luonnoksen käsittely ei ole käynnissä.

  • Odota hetki. Käynnistymisajan takia riippuu tietokoneesi ja grafiikkasuorittimen suorituskyvystä.
  • Tarkista, että sarjaportin numero on oikea luonnoksen käsittelyssä.
  • Tarkista, että USB -liitäntä on kiinnitetty oikein.
  • Tarkista yhteys ultraääni -anturin ja Magicbitin välillä.
  • Avaa sarjamonitori ja tarkista, että tiedot tulevat Arduinosta. Jos ei, ongelma on Arduino -koodissasi tai USB -liitännässäsi.

Servo ei toimi.

  • Tarkista, että USB -liitäntä on kiinnitetty oikein.
  • Tarkista johdotus.
  • Tarkista, että servo on hyvässä kunnossa.

Vaihe 6: Arduino -koodi

#sisältää

#define TRIGGER_PIN 21 #define ECHO_PIN 22 #define MAX_DISTANCE 200 NewPing -kaikuluotain (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #include // sisällyttää servokirjasto int distance; ServotutkaServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // Määrittää, mihin nastaan servomoottorin kiinnitetty viive (3000); } void loop () {// kiertää servomoottoria 15 - 165 astetta (int i = 0; i <= 180; i ++) {RadarServo.write (i); viive (50); distance = sonar.ping_cm (); // Kutsuu funktion, joka laskee ultraäänianturin mittaaman etäisyyden kullekin asteelle (int j = 0; j0) {break; } Sarjajälki (i); // Lähettää nykyisen asteen sarjaporttiin Serial.print (","); // Lähettää lisämerkin aivan edellisen arvon viereen, jota tarvitaan myöhemmin Processing IDE: ssä Serial.print (j) -indeksointia varten; // Lähettää nykyisen asteen sarjaporttiin Serial.print ("*"); Sarjanjälki (1); // Lähettää etäisyysarvon sarjaporttiin Serial.print ("/"); // Lähettää lisämerkin aivan edellisen arvon viereen, jota tarvitaan myöhemmin Processing IDE: ssä Serial.print (etäisyys) -indeksointia varten; // Lähettää etäisyysarvon sarjaporttiin Serial.print ("."); // Lähettää lisämerkin edellisen arvon viereen, jota tarvitaan myöhemmin IDE: n indeksointiin}} // // Toistaa edelliset rivit 165: stä 15 asteeseen kohteelle (int i = 180; i> = 0; i-) {RadarServo.kirjoita (i); viive (50); etäisyys = kaikuluotain.ping_cm (); (int j = 75; j> = 0; j- = 25) {jos (i == 180 && (j == 75 || j == 50 || j == 25)) {jatka; } Sarjajälki (i); // Lähettää nykyisen asteen sarjaporttiin Serial.print (","); // Lähettää lisämerkin aivan edellisen arvon viereen, jota tarvitaan myöhemmin Processing IDE: ssä Serial.print (j) -indeksointia varten; // Lähettää nykyisen asteen sarjaporttiin Serial.print ("*"); Sarjanjälki (-1); // Lähettää etäisyysarvon sarjaporttiin Serial.print ("/"); // Lähettää lisämerkin aivan edellisen arvon viereen, jota tarvitaan myöhemmin Processing IDE: ssä Serial.print (etäisyys) -indeksointia varten; // Lähettää etäisyysarvon sarjaporttiin Serial.print ("."); // Lähettää lisämerkin edellisen arvon viereen, jota tarvitaan myöhemmin IDE: n indeksointiin}}

}

Suositeltava: