Sisällysluettelo:

Projekti 3: SonarDuino: 9 vaihetta
Projekti 3: SonarDuino: 9 vaihetta

Video: Projekti 3: SonarDuino: 9 vaihetta

Video: Projekti 3: SonarDuino: 9 vaihetta
Video: ТАКОГО ЕЩЕ НИКТО НЕ ВИДЕЛ! Узнав это СЕКРЕТ, ты никогда не выбросишь пластиковую бутылку! 2024, Marraskuu
Anonim
Image
Image

Hyvä harrastuskaveri, Tässä projektissa tutkimme mahdollisuutta saada 360 asteen tutkajärjestelmä esineiden havaitsemiseksi. Kun tämä moduuli on asetettu erikseen, liikkumisrobotti voi havaita ympäristönsä rajat. Se voi toimia myös navigointityökaluna pimeällä, mutta vain silloin, kun kävelet tarpeeksi hitaasti; s

Vaihe 1: Mitä tarvitset

Valmistele ultraäänianturin tuki
Valmistele ultraäänianturin tuki

Tämän rakenteen tekemiseksi sinun on ostettava seuraavat:

Arduino Nano: https://www.ebay.com/itm/USB-Nano-V3-0-ATmega328-16M-5V-Micro-controller-CH340G-board-For-Arduino/201601613488?hash=item2ef0647eb0:g:DkoAAOSwvYZZpOl: rk: 2: pf: 0

Prototyyppikortit: https://www.ebay.com/itm/20pcs-set-4Size-Double-Side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board/192076517108?epid=506557101&hash=item4cos:8 ~ Zbl232: rk: 13: pf: 0

Servomoottorit: https://www.ebay.com/itm/5kpl-POP-9G-SG90-Micro-Servo-motor-RC-Robot-Helicopter-Airplane-Control-Car-Boat/142931003420?hash=item21475a081c:rk: 16: pf: 0 & var

Ultrasonic-anturit ~ IAAOSw-xbD5Fp: rk: 2: pf: 0

Vaihe 2: Dokumentointi

Kuten jotkut teistä saattavat jo tietää tämän, tämä projekti on saanut inspiraationsa toisesta avoimen lähdekoodin projektista nimeltä "Arduino Radar Project", jonka Dejan on tehnyt How to Mechatronics -palvelusta @ seuraavan linkin kautta: https://howtomechatronics.com/projects/arduino -radar-projekti/

Toinen asiakirja edellyttävä asia on ladata seuraavat kaksi kirjastoa kehitysympäristöön:

Adafruit-GFX-kirjasto:

Adafruit_SSD1306:

Näin ollen C -koodin ymmärtämiseksi sinun on tehtävä dokumentaatio molemmista yllä olevista kirjastoista. Muuten koodissani käyttämilläni toiminnoilla on nimet, jotka kertovat siitä, mitä he tekevät.

Vaihe 3: Valmistele ultraäänianturin tuki

Valmistele ultraäänianturin tuki
Valmistele ultraäänianturin tuki
Valmistele ultraäänianturin tuki
Valmistele ultraäänianturin tuki
Valmistele ultraäänianturin tuki
Valmistele ultraäänianturin tuki

Ota pahvi ja leikkaa se anturiin kiinnitettyjen liitäntäkaapeleiden mittojen mukaan, kuten ensimmäisessä kuvassa. Taita tämän jälkeen viimeinen ja liimaa se servomoottorin tukeen. Kun tämä on tehty, liimaa kaksi ultraäänianturia viimeisen kuvan mukaisesti. Huomaa, että anturien pää on juotettava siten, että kaapelit menevät ulospäin anturin eteen. Näin anturikaapelit eivät saa häiritä toisiaan, kun 360 asteen kierto toteutetaan.

Vaihe 4: Asenna kaikki prototyyppikortille

Asenna kaikki prototyyppikortille
Asenna kaikki prototyyppikortille
Asenna kaikki prototyyppikortille
Asenna kaikki prototyyppikortille
Asenna kaikki prototyyppikortille
Asenna kaikki prototyyppikortille

Tässä vaiheessa aloitat asentamalla edellisessä vaiheessa valmistetun otsikon vastaavaan servomoottoriin. Kun servomoottori on tottunut huolellisesti, asennat kaiken yhteen prototyyppikortiksi. Aloita juottamalla Arduino Nano ja liimaamalla servo sen viereen. Lopuksi juotat pienen OLED -näytön levyn toisessa reunassa.

Vaihe 5: Viimeisten liitosten tekeminen

Viimeisten liitosten tekeminen
Viimeisten liitosten tekeminen
Viimeisten liitosten tekeminen
Viimeisten liitosten tekeminen
Viimeisten liitosten tekeminen
Viimeisten liitosten tekeminen

Tämä vaihe päättää projektin laitteistopuolen. Sinun on noudatettava annettuja kaavioita kaikkien tarvittavien yhteyksien luomiseksi.

Vaihe 6: Ohjelman käynnistäminen

Ohjelman käynnistäminen
Ohjelman käynnistäminen

On kaksi koodia, jotka sinun on käynnistettävä

Arduino (C):

Käsittely (java):

Kun käytät koodia, sinulla on kaksi vaihtoehtoa:

Vaihtoehto 1: Käytä OLED -näyttöä varten C -koodin muuttujan MODE arvoksi 0.

Vaihtoehto 2: Näytön käyttäminen, sinun on asetettava muuttujan MODE C -koodissa arvoksi 1. Lisäksi sinun on ladattava ja asennettava Processing -kehitysympäristö ja ladattava tutkafontti tästä linkistä: https:// github.com/lastralab/ArduinoRadar/blob/ma…

Ja lisää tämä tiedosto käsittelykooditiedostoosi, jotta java -koodisi tunnistaa fontin, kun sitä kutsutaan.

Vaihe 7: C -koodin ymmärtäminen

C -koodin ymmärtäminen
C -koodin ymmärtäminen

Koodi koostuu pääasiassa kahdesta "for" -silmukasta. Toinen korreloi eteenpäin, kun taas toinen taaksepäin. Molempien sisällä päätoimintoa draw_scanner (), joka piirtää tutkan viivat näytölle, kutsutaan monta kertaa. Useiden kokoonpanojen testaamisen jälkeen tulin siihen johtopäätökseen, että meidän on korvattava valkoiset tutkalinjat hetkellä t samoilla tutkalinjoilla mustalla hetkellä t+1 niiden poistamiseksi. Muussa tapauksessa välkkyminen tapahtuu aina, kun puhdistat näytön toiminnolla”clearDisplay ()”, ennen kuin painat uutta pikseliruudukkoa. Kun olin tekemässä 7 riviä- suunnittelutarkoituksia varten- minun piti säästää ja välittää seitsemän elementin kokonaislukutaulukko, jossa jokainen elementti edustaa tutkan keskipisteen ja havaitun kohteen välistä sädettä. Tässä mielessä muun koodin pitäisi olla suoraan ymmärrettävää.

Vaihe 8: Java -koodin ymmärtäminen

Käsittelyssä minun oli ohitettava serialEvent () -toiminnon kutsu, joka toimii vain COM -sarjaporttien kanssa. Kun työskentelin Macilla, sarjaporttini saivat toisen nimen. Sanoin kuitenkin, että purin tämän toiminnon päätoiminnoksi käsittelemällä "draw ()". Kaiken muun osalta olen päivittänyt sovelluksen täyttämään koko vallankumouksen. Lopuksi päivitin kaikki piirretyt muodot ja tekstit näytön leveyden suhteen siten, että lopputuote sopii erilaisiin näytön resoluutioihin. Olen itse testannut sekä 1000X1000 että 500X500 resoluutioita, ja se toimi hyvin:).

Vaihe 9: Johtopäätös

Tämä työ voidaan päivittää siten, että siinä on 3 ultraääni -anturia, joista jokainen kattaa 120 katselukulmaa, tai jopa 4 anturia (90 astetta*4) -> nopeampi 360 astetta. skannata.

Voit myös laajentaa tutkan kantamaa 40 cm: stä 60 cm: iin tai jopa 80 cm: iin. Olen itse testannut pulseIn -toimintoa ja säätänyt TIMEOUT -muuttujaa 40 cm: n suhteen. Tämä muuttuja riippuu monista tekijöistä, mukaan lukien pulssilähetyksen pituus ja kohteen pinta, jossa pulssi heijastuu.

Lopuksi, kuten edellä todettiin, seuraava askel on sisällyttää radarDuino ja liikkuva robotti ympäröivän kehän skannaamiseen.

Suositeltava: