Sisällysluettelo:

UCL Embedded - B0B Linefollower: 9 vaihetta
UCL Embedded - B0B Linefollower: 9 vaihetta

Video: UCL Embedded - B0B Linefollower: 9 vaihetta

Video: UCL Embedded - B0B Linefollower: 9 vaihetta
Video: Human vs Robot | Artificial Intelligence 2024, Heinäkuu
Anonim
UCL Embedded - B0B Linefollower
UCL Embedded - B0B Linefollower

Tämä on B0B.*

B0B on yleinen radio-ohjattu auto, joka palvelee tilapäisesti linjanseurantarobotin perusta.

Kuten monet edelliset linjaseurantarobotit, hän tekee parhaansa pysyäkseen linjalla, jonka aiheuttaa lattian ja kontrastimateriaalin, meidän tapauksemme teipin, siirtyminen.

Toisin kuin monet muut linjaseurantarobotit, B0B myös kerää tietoja ja lähettää ne WiFi-yhteyden kautta.

Harrasteprojekti on täysin liioiteltu, mutta se sisältää useita aiheita, jotka saattavat kiinnostaa sinua. Tämä opas kuvaa hänen syntymänsä, hänen tehtävänsä ja kuinka voit tehdä sellaisen kuin hän.

Siihen kuuluu myös vihaisuus erilaisille elektroniikkalaitteille, koska ne eivät toimineet haluamallamme tavalla, ja toimenpiteet näiden vaikeuksien voittamiseksi (katselen sinua ESP 8266-01).

On 2 koodia, joiden avulla projekti toimii. Ensimmäinen koodi on ESP8266 -moduulille, jota käytämme Arduinoa ohjelmoijana, ja toinen koodi suoritetaan Arduinolla.

Vaihe 1: Komponentit

Tätä projektia varten tarvitset:

Laitteisto:

• 1x autoradio, (ESC ja ohjaus servo).

Käytimme enimmäkseen varastossa olevaa Traxxas 1/16 E-Revo VXL -laitetta, lähinnä siksi, että meillä oli sellainen, ja olimme melko varmoja, että pystymme hallitsemaan sitä Arduinolla. Myös siksi, että se kantaa vähäisen määrän ylimääräistä laitteistoa, olimme varmoja, että tämä ei olisi ongelma 1/16 E-Revolle.

Kuitenkin useimpia radio -ohjattavia autoja (jotka voidaan helposti purkaa) voitaisiin todennäköisesti käyttää sen sijaan, ja prosessi on hyvin samanlainen.

• tonni teippiä.

Värin tulee olla mahdollisimman kontrastinen lattian kanssa. Testiympäristössä käytimme valkoista teippiä tummalla lattialla.

• 1x Arduino Mega 2560.

Pienemmät Arduinot ovat luultavasti myös hyviä, mutta sinua painetaan nastat.

• 1x iso leipälauta.

Yksi riittää, mutta meillä oli myös pienempi erottaaksesi muut jännitejohdot, jotta käyttäjävirheiden riski pienenisi.

• 1x analoginen TCRT5000 IR -anturi (käytetään törmäysten välttämiseen).

Tarkalla merkillä/mallilla ei ole väliä, onko se Arduino -yhteensopiva ja mittaa etäisyyden. Hae avainsanoja, kuten "Etäisyys", "esteanturi". Teknisesti digitaalinen anturi toimisi myös pienillä koodimuutoksilla, mutta käytämme analogista.

• 1 tai 2x painovoima: analoginen harmaasävyanturi v2

Yksi on linjan seuraajan välttämättömyys. Tarkalla mallilla ei ole väliä, kunhan se tarkastelee heijastuneen valon voimakkuutta ja antaa analogisen signaalin. Toinen "huone" -tunnistusta varten ei toiminut odotetulla tavalla, ja se voidaan jättää pois, tai vaihtoehto, kuten RGB -värianturi, löytyy, oletettavasti paremman vaikutuksen saamiseksi. Tätä on vielä testattava.

• 1 x ESP 8266-01.

ESP 8266 -versioita on saatavana paljon. Meillä on vain kokemusta 8266-01: stä, emmekä voi taata, että ESP-koodi toimii eri version kanssa.

• 1 x ESP8266-01 Wi-Fi-suoja.

Teknisesti valinnainen, mutta jos et käytä tätä, kaikki Wi-Fi-moduuliin liittyvä muuttuu paljon monimutkaisemmaksi. Opas kuitenkin olettaa, että sinulla on tämä (jos ei, etsi ohjeet Internetistä ESP-01: n kytkemiseksi oikein Arduinoon), koska virheellinen tekeminen voi ja todennäköisesti vahingoittaa moduulia.

• Akut ajoneuvolle ja akut lisäelektroniikan virransyöttöön.

Käytimme paria 2,2 AH: n kapasiteettia, 7,4 V: n Lipo -akkuja rinnakkain kaiken virran saamiseksi. Sinun pitäisi pystyä käyttämään mitä tahansa paristoja, joita normaalisti käytät valitsemassasi ajoneuvossa. Jos olet yli 5 V mutta alle 20 V, kapasiteetti on nimellisjännitettä tärkeämpi.

• Paljon hyppyjohtoja.

Olen luopunut näiden tarkan määrän laskemisesta. Jos luulet, että sinulla on tarpeeksi, luultavasti et.

• Lopuksi, jos haluat kiinnittää kaiken, sinun on asennettava Arduino, anturit, leipälevy (t) ja Wi-Fi-moduuli valitsemaasi ajoneuvoon. Tuloksesi vaihtelee sen mukaan, mitä käytät pohjana ja mitä materiaaleja on saatavilla.

Me käytimme:

• Vetoketjut.

• Jotkut superliimat.

• Meillä oli pieniä paperiromua/hartsiputkia, joiden halkaisija oli sopiva.

• Vanha Masonite -taustalevy kuvakehyksestä, leikattu kokoon.

• Hieman lisää teippiä.

• Kaikki tarvittavat työkalut valitsemasi radio-ohjattavan auton parissa työskentelyyn.

Käytimme enimmäkseen pientä ruuvimeisselisarjaa, jossa oli useita bittejä, mutta jouduttiin toisinaan vetämään auton mukana toimitettu varastosarja.

Ohjelmisto:

• Solmu-punainen

Tärkeä osa tiedonkeruuta.

• MQTT -palvelin.

Keskimmäinen mies ajoneuvomme ja solmunpunaisen välillä. Aluksi käytimme testaukseen test.mosquitto.org

Myöhemmin käytimme:

• CloudMQTT.com

Tämä oli paljon luotettavampi, ja se korvasi hieman monimutkaisemman asennuksen.

• WampServer.

Tiedonkeruun viimeinen osa. Käytämme erityisesti sen SQL -tietokantaa kerättyjen tietojen tallentamiseen.

Vaihe 2: Sähkökaavio

Sähkökaavio
Sähkökaavio

Vaihe 3: Fyysinen rakentaminen

Fyysinen rakentaminen
Fyysinen rakentaminen
Fyysinen rakentaminen
Fyysinen rakentaminen
Fyysinen rakentaminen
Fyysinen rakentaminen

Ratkaisullamme on suora lähestymistapa fyysiseen kokoonpanoon.

Alkuperäinen vastaanotin ja sen vedenpitävä kotelo poistettiin RC -autosta, koska sitä ei tarvita.

Havaitsimme, että etupyörien välissä oli yksi sopiva paikka linjaseuranta -anturillemme, joten pidimme sen paikallaan silmukkaamalla vetoketjun etulevyn yläpuolelle.

Anturi, jota käytämme törmäyksenestossa, on eräänlainen kiilautunut etupuskurin taakse. Se on edelleen suojattu iskuilta ja sen kitkasovitus. Se päätyy odottamaan eteenpäin aina niin pienessä yläkulmassa. Tämä on täydellinen.

Masonite -levyn (taustalevy vanhasta kuvakehyksestä) päällä on pieniä paperi-/hartsiputken osia, jotka on leikattu kokoon ja liimattu pohjaan. Nämä ovat linjassa koripylväiden kiinnikkeiden kanssa ja istuvat yksinkertaisesti päällä pitäen kaikkea tukevasti. Olettaen, että liima kiinnittää putken levyyn ja se ei kallistu liikaa, tämä pysyy paikallaan. On myös syytä huomata, että levy on pyörien ja puskureiden suojapallon sisällä. Arduino Mega ja kaksi leipälautaa on kiinnitetty levyyn joko kaksipuolisella teipillä tai liimattuna teippilenkillä.

WiFi-moduulin suojaamiseen ei ole tehty erityistoimenpiteitä. Se ei ole meidän, joten sen liimaamista tai teippaamista pidettiin tarpeettomana, koska se on niin kevyt, että se ei liiku paljon, ja johdot riittävät pitämään sen paikallaan.

Lopuksi meillä on anturi "huoneiden" havaitsemiseksi, jonka yksi takapyöristä kiinnitti jousituksen osiin. Käytön aikana sen on oltava kaukana viivasta, jota ajoneuvo käyttää navigointiin.

Vaihe 4: ESP8266 -moduuli

ESP8266 -moduuli
ESP8266 -moduuli
ESP8266 -moduuli
ESP8266 -moduuli

WiFi -moduuli, ESP8266, vaatii kaksi erilaista pin -asetusta. Yksi asetus on käytettävä, kun moduuli vilkkuu uudella ohjelmalla ja käytetään Arduino Mega 2560: ta ohjelmoijana. Toinen asetus on moduulille, kun se on käytössä ja lähettää tietoja MQTT Brokerille.

Kun käytät Arduino IDE: tä koodin lataamiseen ESP8266 -moduuliin, sinun on asennettava taulunhallinta ja lisälevyhallinta

Asenna aluksen hallinnan alle esp8266 -kortinhallinta. Se löytyy helposti etsimällä "esp". On tärkeää asentaa versio 2.5.0, ei vanhempi, ei uudempi.

Kopioi muiden taulujen hallinnan URL -osoitteiden asetusten alla olevaan riviin:

arduino.esp8266.com/stable/package_esp8266c…

Jotta voit ladata mitään ESP8266 -moduuliin, sinun on käytettävä tiettyä pin -asetusta, jotta voit flash -moduulin. Tämä on tehtävä joka kerta, kun haluat muuttaa moduulin nykyistä koodia. Muista valita oikea ESP8266 -moduuli kortinhallinnasta ennen moduulin vilkkumista. Tässä projektissa valitsimme yleisen ESP8266 -levyn. Moduulin vilkuttamista varten tarkoitetut nastat löytyvät tämän segmentin ensimmäisestä kuvasta.

ESP8266 -moduulin vilkkumisen jälkeen sinun on vaihdettava nastan asetuksia. Voit myös käyttää sovitinta helpottaaksesi asennusta. Tässä projektissa valitsimme sovittimen aina, kun moduuli oli käynnissä. Tapin asennus sovittimella on tämän segmentin toisessa kuvassa.

ESP8266 -moduuliin lähetettävä koodi muodostaa yhteyden WiFi -verkkoon ja MQTT -välittäjään, tässä tapauksessa käyttäjätunnuksella ja salasanalla, mutta se voidaan tehdä ilman, jos teet tarvittavat muutokset, jotka on kuvattu koodin kommenteissa. Tätä projektia varten välittäjämme vaati käyttäjätunnuksen ja salasanan toimiakseen. Moduuli lukee saapuvat viestit sarjaportista, johon se on liitetty. Se lukee kaikki Arduino -koodin luomat uudet rivit, tulkitsee viestin ja luo viestin uudelleen. Sen jälkeen se lähettää viestin MQTT Brokerille, joka on määritetty koodissa. ESP8266 -moduulin koodi:

Vaihe 5: Arduino

WiFi -moduulin konfiguroinnin jälkeen katsomme ohjelmaa, jota käytetään RC -auton moottorin ja servon ohjaamiseen. Auto reagoi harmaasävyisten tietojen mukaan keskusanturilta, joka tunnetaan tässä projektissa myös "linjatunnistimena". Yksinkertaisesti sen tavoitteena on pitää linjatunnistimen tiedot lähellä esiasetettua arvoa, joka vastaa vaalean ja pimeän tai tässä projektissa, valkoisen ja mustan, välillä tallennettuja tietoja. Jos arvo eroaa liian paljon, vastaava servon ulostulo ohjaa auton lähelle linjan esiasetettua arvoa.

Ohjelmassa on kaksi painiketta, jotka toimivat RC -auton käynnistys- ja pysäytyspainikkeena. Teknisesti "pysäytys" -painike on "viritys" -painike, joka vastaa termillä PWM -arvoa, joka lähetetään moottorille ja joka saa RC -auton pysähtymään. Käynnistyspainike lähettää PWM -arvon, joka vastaa RC -autoa tuskin eteenpäin, koska se ajaa liian nopeasti, jos se saa liikaa vauhtia.

RC-auton etuosaan on lisätty törmäysten välttämisen ilmaisin, joka havaitsee, onko tie eteenpäin avoin vai estetty. Jos se on tukossa, RC -auto pysähtyy, kunnes este on poistunut/poistettu. Ilmaisimen analogista signaalia käytetään määrittämään, estääkö jokin tietä, ja siitä tehdään kriteeri, jolla voidaan edetä ja pysähtyä.

Toissijaista harmaasävyanturia "Room Detector" käytetään tunnistamaan, mihin huoneeseen RC -auto on tullut. Se toimii samalla periaatteella kuin linjatunnistin, mutta se ei etsi valon ja pimeyden välistä muutosta, vaan arvot tietyllä alueella, joka vastaa eri huoneita huonetunnistimen näkemän arvon mukaan.

Lopuksi ohjelma luo anturista tietorivin WiFi -moduulille luettavaksi ja sen jälkeen lähetettäväksi MQTT Brokerille. Tietorivi luodaan merkkijonona ja kirjoitetaan vastaavaan sarjaan, johon WiFi -moduuli on kytketty. On tärkeää, että sarjaan kirjoittaminen tapahtuu vain niin usein kuin WiFi -moduuli voi lukea saapuvan viestin, mutta muista olla käyttämättä viivettä tässä koodissa, koska se häiritsee RC -auton kykyä seurata linjaa. Käytä sen sijaan "milliä", koska se sallii ohjelman ajaa viipymättä, mutta sen jälkeen, kun Arduinon käynnistämisen jälkeen on kulunut tietty määrä millisekunteja, kirjoittaa viestin sarjaan estämättä koodia samalla tavalla kuin viive.

Arduino Mega 2560: n koodi:

Vaihe 6: MySQL -tietokanta

WampServer on Windows -verkkokehitysympäristö, jonka avulla voimme luoda sovelluksia PHP: llä ja MySQL -tietokannalla. PhpMyAdminin avulla voimme hallita tietokantojamme helposti.

Aloita siirtymällä osoitteeseen:

Tässä projektissa käytämme versiota 3.17 x64 bittiä Windowsille. Varmista asennuksen jälkeen, että kaikki palvelut ovat käynnissä, mikä tarkoittaa sitä, että pieni kuvake muuttuu vihreäksi punaisen tai oranssin sijaan. Jos kuvake on vihreä, voit käyttää PhpMyAdminia MySQL -tietokannan hallintaan.

Avaa MySQL PhpMyAdminin avulla ja luo uusi tietokanta. Nimeä se sopivaksi, jonka muistat, tässä projektissa sitä kutsuttiin "line_follow_log". Tietokannan luomisen jälkeen sinun on luotava taulukko tietokantaan. Varmista, että sarakkeiden määrä sopii. Projektissa käytämme 4 saraketta. Yksi sarake on aikaleima ja kolme viimeistä käytetään ajoneuvon tietojen tallentamiseen. Käytä oikeaa tietotyyppiä jokaiselle sarakkeelle. Käytimme aikaleima -sarakkeessa "longtext" ja loput "mediumtext".

Tämä on kaikki mitä sinun tarvitsee tehdä PhpMyAdminissa ja MySQL: ssä. Muista tietokantasi ja taulukko solmua punaisesta.

Vaihe 7: Solmu-punainen

Tietojen keräämisen käsittelemiseksi käytämme melko yksinkertaista solmupunaista kulkua. Se muodostaa yhteyden MQTT -palvelimeemme ja kirjoittaa MYSQL -tietokantaamme.

Tätä varten tarvitsemme muutaman paletin eri toimintojen toimimiseksi, ja tarvitsemme jonkin todellisen koodin sen suorittamiseksi.

Ensimmäiset asiat ensin. Tarvitsemme seuraavia lavoja.

Node-red-contrib-mqtt-broker: Tämä on yhteys MQTT-välittäjämme.

Node-red-dashboard: Dashboard, jota tarvitaan kerättyjen tietojen esittämiseen visuaalisesti.

Node-red-node-mysql: Yhteytemme SQL-tietokantaan.

Tämän ei ole tarkoitus olla täysin opas solmupunaiselle, mutta selitän, mitä solmunpunainen virtaus tekee.

Varhain meillä oli ongelmia valitsemassamme MQTT -palvelimessa, joka kuoli/katkaistiin, näennäisesti satunnaisesti, mikä teki muutosten tekemisestä turhauttavan yrityksen, koska oli epäselvää, oliko muutoksista ollut hyötyä vai ei, kun emme voineet nähdä tulosta. Joten painike 'Kuoli palvelin?' pistää 'Ei' seuraava lohko ruiskuttaa sen MQTT -palvelimellemme. Jos se ei ole kuollut, virheenkorjausikkunaan ilmestyy Ei. Tämä ei ole vain testattava, vaan pakottaa solmupunaisen yrittämään muodostaa uudelleen yhteyden MQTT-palvelimeen.

'Testimerkkijono' lähettää puku -merkkijonon MQTT -välittäjälle. Muotoilimme tämän merkkijonon samanlaiseksi kuin mitä saisimme Arduinolta. Tämä helpotti viestien dekoodausverkon määrittämistä ilman projektin käynnistämistä ja tietojen keräämistä.

Työtilan viimeinen kulku voidaan jakaa kahteen segmenttiin. Alempi haara lukee saapuvat viestit, lähettää ne virheenkorjausikkunaan ja tallentaa ne SQL -palvelimelle.

Suuri kytkettyjen kytkimien verkko, joka seuraa toiminnallista solmua, jos todellinen "taikuus" tapahtuu.

Jatkotoiminto lukee saapuvan merkkijonon, jakaa sen jokaisen puolipisteen kanssa ja välittää osat jokaiselle lähdölle. Seuraavat kytkimet etsivät yhtä kahdesta erilaisesta saapuvasta tiedosta. Yksi tietty tieto siirretään aina yhden lähdön kautta, toinen vaihtoehto lähtee toisen lähdön kautta. Tämän jälkeen on toinen kytkinlohkojen ryhmä. Ne aktivoituvat vain yhdellä erityisellä tulolla ja tuottavat jotain muuta.

Esimerkki "este", kuten kaikki muutkin, ovat binäärinen valinta, ajaminen on joko selvää tai ei. Joten se vastaanottaa 0 tai 1. A 0 lähetetään "tyhjentävään" haaraan, 1 lähetetään "Estettyyn" haaraan. 'Tyhjennä', 'Estetty' -kytkimet, jos ne on aktivoitu, tuottavat jotain erityistä, Tyhjennä tai estettyä. Vihreät etenemislohkot julkaistaan virheenkorjausikkunassa, sininen kirjoittaa kojelautaan.

Tila- ja sijaintihaara toimivat täsmälleen samalla tavalla.

Vaihe 8: MQTT Broker

Välittäjä on palvelin, joka reitittää viestejä asiakkailta sopiville kohdeasiakkaille. MQTT -välittäjä on sellainen, jossa asiakkaat käyttävät MQTT -kirjastoa muodostaakseen yhteyden välittäjään verkon kautta.

Tätä projektia varten loimme MQTT -välittäjän käyttämällä CloudMQTT -palvelua ilmaisella "Cute Cat" -version tilauksella. Sillä on rajoituksensa, mutta emme ylitä niitä tässä hankkeessa. WiFi -moduuli voi muodostaa yhteyden välittäjään ja välittäjä sitten reitittää viestit sopivalle kohdeasiakkaalle. Tässä tapauksessa asiakas on solmupunainen. CloudMQTT -palvelu määrittää käyttäjänimen ja salasanan palvelimelleen, joten meillä on parempi turvallisuus. Pohjimmiltaan tarkoittaa, että vain käyttäjät, joilla on käyttäjätunnus ja salasana, voivat käyttää tätä CloudMQTT -palvelua. Käyttäjätunnus ja salasana ovat ratkaisevia, kun muodostat yhteyden ESP8266-koodiin sekä solmu-punaiseen.

Välittäjän saamien viestien tilastot ovat miellyttävä ominaisuus, jonka avulla voidaan nähdä, kuinka hyvin tilaussuunnitelmasi käsittelee reitittämänsä tiedot.

Mukava ominaisuus on mahdollisuus lähettää viestejä välittäjältä WiFi -moduuliin, mutta emme käyttäneet niitä tässä projektissa.

Vaihe 9: Harrastuselektroniikka

Ennen kuin aloitimme, tiesimme aiemmasta projektista, että varastonohjausservoa voitaisiin ohjata Arduinolta PWM -signaalilla, jolla on samanlainen johdotus ja joka kytketään eri kanaviin samalla varastovastaanottimella, oletimme elektronista nopeudensäädintä (ESC from nyt päällä), joka ohjaa moottoria, voitaisiin samalla tavalla ohjata Arduinon PWM: n kautta.

Tämän teorian testaamiseksi käytämme pientä Arduino -luonnosta. Luonnos lukee analogisen tulon potentiometristä, muuttaa arvon 0, 1024 arvoon 0, 255 ja antaa tuloksena olevan arvon PWM -nastaan käyttäen analogWrite (): tä, kun R/C -auto oli pienessä laatikossa ja pyörät poistettu.

Kun pyyhkäisimme potin mittarin alueen läpi, ESC näytti "heräävän" ja voisimme kuristaa sitä ylös ja alas, ja myös pyysimme Arduinoa tulostamaan arvot sarjaliitäntään, jotta voimme seurata niitä.

ESC ei näyttänyt pitävän arvoista, jotka ovat tietyn kynnyksen alapuolella, tässä tapauksessa 128. Se näki signaalin 191 neutraalina kaasuna ja 255 oli maksimikaasu.

Meidän ei tarvinnut muuttaa ajoneuvon nopeutta ja saimme sen täydellisesti hitaimmalla nopeudella, joka saisi sen liikkumaan. 192 oli pienin arvo, joka kääntäisi moottorin, mutta meidän on vielä koottava kaikki ja emme ole varmoja siitä, riittäisikö tämä teho siirtämään ajoneuvoa lopullisen kokoonpanon jälkeen, mutta hieman suuremman arvon syöttäminen olisi vähäpätöistä.

Potentiometrin kiertäminen ja kiinteän arvon asettaminen koodiin ei kuitenkaan toiminut. Varasto ESC yksinkertaisesti vilkkui eikä pyöritä moottoria, säädä kaasuläpän käyttöohjeen mukaan.

Raivostunut vianetsintä, erilaisten arvojen heittäminen, eri johtojen käyttäminen ja jopa kokeileminen Arduinon käyttämän PWM -taajuuden muuttamisesta johtivat enemmän outoon.

Se näytti olevan ajoittainen ongelma, joskus se juoksi, toisinaan se kieltäytyi tekemästä mitään. Se vain jatkoi vilkkumista. Testi alkuperäisellä ohjaimella ja vastaanottimella vahvisti, että ESC toimi edelleen täsmälleen suunnitellulla tavalla, mikä teki ongelmista vieläkin vieraampia. Korkeammat arvot, se jätti huomiotta ja vilkkui jatkuvasti, pienemmät arvot ESC palasi palaamaan onnellisen vihreänä, mutta ei silti kääntynyt.

Mikä oli erilaista kuin potentiometrin tai varastolähettimen ja -vastaanottimen asetukset ja kiinteät arvot sisältävä versio?

Joskus työskentely suunnitellulla tavalla ja odotetulla tavalla eivät ole päällekkäisiä Venn -kaavion kanssa. Tässä tapauksessa, koska kyseessä on lelu, ei pitäisi olla mitään mahdollisuutta, että malli yksinkertaisesti ottaa pois tai murtaa sormensa tai tarttuu hiuksiin pyörien tai voimansiirron kanssa, kun malli käynnistyy, vaikka lähettimen pitäminen kummallisesti pitää kaasua mikä tahansa muu asento kuin neutraali.

'Säädä kaasuläpän säätöä', se tarkoittaa juuri sitä. ESC odottaa neutraalia signaalia, kun se käynnistyy, ennen kuin se saa mitään. Normaalisti lähetin olisi aina vapaa -asennossa, kun ESC kytketään päälle ja sieltä ajaa onnellisesti. Jos näin ei ole, se on todennäköisesti jälleen neutraalilla ainakin kerran, kun malli on tukevasti maassa ja kuljettaja tuntee olevansa valmis kilpailemaan.

Käyttäessämme potentiometriä "lakaisimme" alueiden läpi, ja sitten se alkoi toimia. Se yksinkertaisesti aseistui, kun potentiometri pyyhkäisi neutraalin asennon ohi, ja sitten se toimi.

Alhaisemmat vaihteluvälit näyttivät kuitenkin edelleen epämiellyttäviltä. Tämä on PWM -käyttöjaksojen tuote.

Joko suunnitellusti tai teknisestä syystä sekä ohjausservo että ESC jättävät huomiotta alle 50%: n toimintajaksot. Tämä voi tapahtua siinä tapauksessa, että vastaanotin/lähetin lakkaa toimimasta tai virta loppuu, malli palaa vapaa -asentoon eikä nouse kauemmas täydellä peruutuskaasulla. Samoin servo pyörii vain 180 astetta eikä tarvitse koko kantamaa.

Tämän uuden tiedon avulla luotiin uusi Arduino -luonnos. Alkuperäinen versio hyväksyy sarjamonitoriin syötetyt merkkijonot, muuntaa sen kokonaislukuksi ja siirtää sen PWM -nastaan servokirjaston avulla ja kirjoittaa ()*. Jos sarjamonitoriin syötetään uusi arvo, kirjoitusarvo () päivitetään.

Testauksen aikana Traxxas ESC -kanta korvattiin Mtroniks G2 Micro -laitteella, mutta niiden pitäisi toimia samalla tavalla, vaikka tarkat arvot voivat olla hieman erilaisia.

Tämä kirjasto käsittelee ESC: tä servona, tämä on ilmeisesti hyvä. Kirjoitus () -funktio Servo.h -kirjastosta vaihtelee välillä 0 - 180, odotetun virityssignaalin odotetaan olevan keskellä.

G2 Micro asettuu kirjoitusalueelle () lähellä 90: n arvoa, mutta sitä oli vaikea määrittää, koska se näyttää muistavan olevan aseistettu.

Traxxas VXL-s3: n odotetaan asettuvan kirjoitusarvoon () 91.

Kytkentäsignaalin jälkeen joko ESC hyväksyi onnellisesti PWM -signaalit riippumatta siitä, mitä Arduino -toimintoja kutsuttiin generoimaan ne, ja ohjaa moottoria sen mukaisesti.

Funktioista puheen ollen; Servo.h -kirjaston vakiomallisia analogWrite () -, sekä write () - ja writeMicroseconds () -merkintöjä voidaan käyttää keskenään, muista vain, mitä se tekee, eikä lopulta muuta kuin käyttöjakso. WriteMicroseconds () voitaisiin käyttää, jos vaaditaan suurempaa rakeisuutta, muista vain, että alue on 1000-2000, virityksen tai neutraalin oletetaan olevan 1500. Vakio analogWrite (): n käyttöalueen odotetaan olevan on 128–255 ja noin 191 on neutraali.

Suositeltava: