Inhoudsopgave:

UCL Embedded - B0B the Linefollower - Ajarnpa
UCL Embedded - B0B the Linefollower - Ajarnpa

Video: UCL Embedded - B0B the Linefollower - Ajarnpa

Video: UCL Embedded - B0B the Linefollower - Ajarnpa
Video: Automationsteknologstuderende fortæller om linjefølgerrobot 2024, November
Anonim
UCL Embedded - B0B de lijnvolger
UCL Embedded - B0B de lijnvolger

Dit is B0B.*

B0B is een generieke radiografisch bestuurbare auto die tijdelijk de basis dient van een lijnvolgende robot.

Zoals zoveel lijnvolgende robots voor hem, zal hij zijn uiterste best doen om op een lijn te blijven die wordt veroorzaakt door een overgang tussen de vloer en een contrasterend materiaal, in ons geval ducttape.

In tegenstelling tot zoveel andere lijnvolgende robots verzamelt B0B ook data en verstuurt deze via wifi.

Geheel overkill voor een hobbyproject, er komen wel een aantal onderwerpen bij kijken die je misschien interessant vindt. Deze gids beschrijft zijn geboorte, zijn functies en hoe je er een kunt maken zoals hij.

Het houdt ook in dat we boos zijn op verschillende elektronica omdat ze niet werken zoals we wilden, en de stappen die we hebben genomen om die problemen te overwinnen (ik kijk naar jou ESP 8266-01).

Er zijn 2 codes om het project te laten werken. De eerste code is voor de ESP8266-module waarbij we de Arduino als programmeur gebruiken, en de tweede code gaat op de Arduino draaien.

Stap 1: Componenten

Voor dit project heb je nodig:

Hardware:

• 1x radiocontroller auto, (moet ESC en stuurservo hebben).

We gebruikten een grotendeels standaard Traxxas 1/16 E-Revo VXL, vooral omdat we dat hadden, en waren er vrij zeker van dat we het met een Arduino zouden kunnen besturen. Ook omdat het uiteindelijk een niet onbelangrijke hoeveelheid extra hardware zal bevatten, waren we ervan overtuigd dat dit geen probleem zou zijn voor de 1/16 E-Revo.

De meeste radiografisch bestuurbare auto's (die gemakkelijk uit elkaar kunnen worden gehaald) kunnen echter waarschijnlijk in plaats daarvan worden gebruikt, en het proces zal erg op elkaar lijken.

• Een ton ducttape.

De kleur moet zoveel mogelijk contrasteren met de vloer. In onze testomgeving gebruikten we witte tape op een donkere vloer.

• 1x Arduino Mega 2560.

Kleinere Arduino's zijn waarschijnlijk ook goed, maar je zult op pinnen worden gedrukt.

• 1x grote broodplank.

Eén is genoeg, maar we hadden ook een kleinere om de andere spanningslijnen te scheiden om het risico op gebruikersfouten te verminderen.

• 1x TCRT5000 IR analoge sensor (gebruikt om botsingen te vermijden).

Het exacte merk/model maakt niet uit of het Arduino-compatibel is en de afstand meet. Zoek naar trefwoorden zoals "Afstand", "obstakel" sensor. Technisch gezien zou een digitale sensor ook werken met kleine codewijzigingen, maar we gebruiken een analoge.

• 1x of 2x zwaartekracht: analoge grijswaardensensor v2

Een daarvan is een noodzaak voor de lijnvolger. Het exacte model maakt niet uit, zolang het maar kijkt naar de intensiteit van gereflecteerd licht en een analoog signaal afgeeft. De tweede voor ‘kamer’-detectie werkte niet zo goed als verwacht en kan worden weggelaten, of een alternatief, zoals een RGB-kleurensensor kan worden gevonden, vermoedelijk voor een beter effect. Dit moeten we nog testen.

• 1x ESP 8266-01.

Er zijn veel versies van de ESP 8266 beschikbaar. We hebben alleen ervaring met de 8266-01 en kunnen niet garanderen dat de ESP-code werkt met een andere versie.

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

Technisch optioneel, maar als je dit niet gebruikt, wordt alles wat met de wifi-module te maken heeft een stuk ingewikkelder. De gids gaat er echter van uit dat je dit hebt (zo niet, zoek dan de handleidingen online voor het correct aansluiten van de ESP-01 op de Arduino), omdat dit verkeerd doen de module kan en waarschijnlijk zal beschadigen.

• Accu's voor het voertuig zelf en accu's om de extra elektronica van stroom te voorzien.

We gebruikten een paar 2,2 AH-capaciteit, 7,4V Lipo-batterijen parallel om alles van stroom te voorzien. U moet alle batterijen kunnen gebruiken die u normaal gesproken zou gebruiken met uw voertuig naar keuze. Als u boven 5V maar onder 20V zit, is capaciteit belangrijker dan nominale spanning.

• Veel startkabels.

Ik heb het tellen van het exacte aantal opgegeven. Als je denkt dat je genoeg hebt, heb je dat waarschijnlijk niet.

• Ten slotte, om alles te bevestigen, moet u de Arduino, de sensoren, de breadboard(s) en de Wi-Fi-module op het voertuig van uw keuze monteren. Uw resultaat is afhankelijk van wat u als basis gebruikt en welke materialen beschikbaar zijn.

We gebruikten:

• Ritssluitingen.

• Wat superlijm.

• Kleine stukjes kladpapier/harsbuis die we hadden met een geschikte diameter.

• Een oude Masonite achterplaat uit een fotolijst, op maat gesneden.

• Een beetje meer ducttape.

• Alle gereedschappen die nodig zijn om aan uw radiografisch bestuurbare auto naar keuze te werken.

We gebruikten meestal een kleine schroevendraaierset met meerdere bits, maar moesten af en toe de standaard gereedschapset eruit halen die bij de auto was geleverd.

Software:

• Knooppunt-rood

Een belangrijk onderdeel van het verzamelen van gegevens.

• Een MQTT-server.

De tussenpersoon tussen ons voertuig en Node-red. Aanvankelijk gebruikten we voor het testen test.mosquitto.org

Later gebruikten we:

• CloudMQTT.com

Dit was een stuk betrouwbaarder, wat meer dan goed maakte dat het iets gecompliceerder was om in te stellen.

• Wamp-server.

Het laatste deel van de gegevensverzameling. In het bijzonder zullen we de SQL-database gebruiken voor het opslaan van onze verzamelde gegevens.

Stap 2: Elektrisch schema

Elektrisch schema
Elektrisch schema

Stap 3: Fysieke constructie

Fysieke constructie
Fysieke constructie
Fysieke constructie
Fysieke constructie
Fysieke constructie
Fysieke constructie

Onze oplossing heeft een ongecompliceerde benadering van fysieke assemblage.

De originele ontvanger en de waterdichte behuizing zijn uit de RC-auto verwijderd, omdat dit niet nodig is.

We ontdekten dat er één geschikte locatie tussen de voorwielen was voor onze lijnvolgsensor, dus we hielden deze op zijn plaats door een ritssluiting boven de voorste skidplate te lussen.

De sensor die we gebruiken voor antibotsing zit als het ware ingeklemd achter de voorbumper. Het wordt nog steeds beschermd tegen schokken en de wrijvingspasvorm. Het eindigt met vooruitkijken in een altijd zo kleine opwaartse hoek. Dit is perfect.

De masonite plaat, (achterplaat van oude fotolijst), heeft bovenaan kleine stukjes papier/hars pijp op maat gesneden en aan de onderkant gelijmd. Deze zijn uitgelijnd met de bevestigingen voor de carrosserieposten en zitten gewoon bovenop en houden alles stevig vast. Ervan uitgaande dat de lijm waarmee de buis aan de plaat is bevestigd, standhoudt en niet te veel kantelt, blijft deze op zijn plaats. Het is ook vermeldenswaard dat de plaat zich binnen de beschermende sfeer van de wielen en de bumpers bevindt. De Arduino Mega en de twee breadboards zijn op de plaat bevestigd met dubbelzijdig plakband, of met een lus van ducttape eromheen, uitgelijmd.

Er zijn geen speciale maatregelen genomen om de WiFi-module te beveiligen. Het is niet van ons, dus lijmen of vastplakken werd als onnodig beschouwd omdat het zo licht is dat het niet veel kan bewegen, en de draden zijn voldoende om het op zijn plaats te houden.

Ten slotte hebben we een sensor voor het detecteren van 'kamers', deze werd met een van de achterwielen aan de ophangingscomponenten vastgemaakt. Tijdens bedrijf moet dit uit de buurt zijn van de lijn die het voertuig gebruikt om te navigeren.

Stap 4: ESP8266-module

ESP8266-module
ESP8266-module
ESP8266-module
ESP8266-module

De WiFi-module, ESP8266, vereist twee verschillende pinconfiguraties. Een setup is om te gebruiken bij het flashen van de module met een nieuw programma en het gebruik van de Arduino Mega 2560 als programmeur. De andere instelling is voor de module wanneer deze in gebruik is en informatie naar de MQTT-makelaar stuurt.

Als je Arduino IDE gebruikt om code naar de ESP8266-module te uploaden, moet je een boardmanager en een extra boardmanager installeren

Installeer onder boardmanager de esp8266 boardmanager. Het zal gemakkelijk worden gevonden door te zoeken op "esp". Het is van cruciaal belang dat u versie 2.5.0 installeert, niet ouder, niet nieuwer.

Kopieer onder instellingen in aanvullende forumbeheerder-URL's in deze regel:

arduino.esp8266.com/stable/package_esp8266c…

Om iets naar de ESP8266-module te kunnen uploaden, moet u een specifieke pinconfiguratie gebruiken, zodat u de module kunt flashen. Dit moet elke keer worden gedaan als u een wijziging wilt aanbrengen in de huidige code die op de module wordt uitgevoerd. Vergeet niet de juiste ESP8266-module te selecteren in de boardmanager voordat u de module gaat flashen. In dit project hebben we het generieke ESP8266-bord gekozen. De pinconfiguratie voor het flashen van de module is te vinden op de eerste afbeelding in dit segment.

Na het flashen van de ESP8266 module moet je de pin setup omschakelen. U kunt er ook voor kiezen om een adapter te gebruiken om de installatie voor u gemakkelijker te maken. In dit project hebben we ervoor gekozen om een adapter te hebben wanneer de module actief was. De pin setup met adapter vind je op de tweede foto in dit segment.

De code die op de ESP8266-module moet worden geflitst, stelt de verbinding in met een WiFi en een MQTT-makelaar, in dit geval met een gebruikersnaam en wachtwoord, maar kan zonder als u de nodige wijzigingen aanbrengt die worden beschreven in de opmerkingen van de code. Voor dit project had onze makelaar een gebruikersnaam en wachtwoord nodig om te kunnen werken. De module leest inkomende berichten van de seriële poort waarop hij is aangesloten. Het zal elke nieuwe regel lezen die door de Arduino-code is gemaakt, het bericht ontcijferen en het bericht opnieuw maken. Daarna stuurt het het bericht naar de MQTT-makelaar die in de code is gespecificeerd. De code voor de ESP8266-module:

Stap 5: Arduino

Nadat we de WiFi-module hebben geconfigureerd, kijken we naar het programma dat zal worden gebruikt voor het aansturen van de motor en servo op de RC-auto. De auto gaat reageren volgens een grijsschaalinformatie van de centrale sensor, in dit project ook wel de "Lijndetector" genoemd. Het is duidelijk bedoeld om de informatie van de lijndetector in de buurt van een vooraf ingestelde waarde te houden die gelijk is aan de informatie die wordt geregistreerd bij de verandering tussen licht en donker of in dit project, wit en zwart. Dus als de waarde te veel afwijkt, zal de corresponderende output naar de servo de auto in de buurt van de vooraf ingestelde waarde van de lijn sturen.

Het programma heeft twee knoppen die fungeren als start- en stopknop voor de RC-auto. Technisch gezien is de "stop"-knop een "inschakel"-knop die in termen gelijk is aan een PWM-waarde die naar de motor wordt gestuurd en die ervoor zorgt dat de RC-auto stopt. De startknop stuurt een PWM-waarde die gelijk is aan de RC-auto die nauwelijks vooruit gaat, omdat deze te snel zal rijden als deze te veel vaart krijgt.

Aan de voorkant van de RC-auto is een botsingsvermijdingsdetector toegevoegd om te detecteren of de weg vooruit vrij of geblokkeerd is. Als deze is geblokkeerd, stopt de RC-auto totdat het obstakel is verdwenen/verwijderd. Het analoge signaal van de detector wordt gebruikt om te bepalen of iets de weg blokkeert of niet en wordt een criterium gemaakt om zowel vooruit te kunnen gaan als te stoppen.

Een secundaire grijsschaalsensor, "Room Detector", wordt gebruikt om te detecteren in welke kamer de RC-auto is binnengekomen. Het werkt volgens een soortgelijk principe als de lijndetector, maar het zoekt niet naar de verandering tussen licht en donker, maar naar waarden binnen een specifiek bereik dat overeenkomt met verschillende kamers, afhankelijk van de waarde die wordt gezien door de kamerdetector.

Ten slotte creëert het programma een regel met informatie van de sensoren voor de WiFi-module om te lezen en daarna te verzenden naar de MQTT-makelaar. De informatieregel wordt als een string aangemaakt en weggeschreven naar de corresponderende serienummer waarop de WiFi-module is aangesloten. Het is belangrijk dat het schrijven naar het serienummer slechts zo vaak gebeurt als de WiFi-module het inkomende bericht kan lezen, maar denk eraan om geen vertragingen in deze code te gebruiken, omdat dit het vermogen van de RC-auto om de lijn te volgen verstoort. Gebruik in plaats daarvan "millis", omdat het programma hierdoor zonder vertraging kan worden uitgevoerd, maar nadat een bepaald aantal millis is verstreken sinds de Arduino is ingeschakeld, zal het een bericht naar het serienummer schrijven zonder de code op dezelfde manier te blokkeren als vertraging.

De code voor de Arduino Mega 2560:

Stap 6: MySQL-database

WampServer is een webontwikkelomgeving voor Windows waarmee we applicaties kunnen maken met PHP en een MySQL-database. PhpMyAdmin stelt ons in staat om onze databases op een gemakkelijke manier te beheren.

Ga om te beginnen naar:

In dit project gebruiken we versie 3.17 x64 bits voor Windows. Controleer na de installatie of alle services actief zijn, wat betekent dat het kleine pictogram groen wordt in plaats van rood of oranje. Als het pictogram groen is, hebt u toegang tot PhpMyAdmin om uw MySQL-database te beheren.

Open MySQL met behulp van PhpMyAdmin en maak een nieuwe database aan. Noem het iets passends dat je je kunt herinneren, in dit project heette het "line_follow_log". Nadat u de database hebt gemaakt, moet u een tabel in de database maken. Zorg ervoor dat het aantal kolommen past. In het project gebruiken we 4 kolommen. Eén kolom is voor een tijdstempel en de laatste drie worden gebruikt om gegevens van het voertuig op te slaan. Gebruik een juist datatype voor elke kolom. We gebruikten "longtext" voor de tijdstempelkolom en "mediumtext" voor de rest.

Dat zou alles moeten zijn wat u hoeft te doen in PhpMyAdmin en MySQL. Onthoud je database en de tabel voor de sectie over Node-Red.

Stap 7: Knooppunt-Rood

Om gegevensverzameling af te handelen, gebruiken we een vrij eenvoudige stroom in Node-red. Het maakt verbinding met onze MQTT-server en schrijft naar onze MYSQL-database.

Om dit te doen, hebben we een paar paletten nodig om verschillende functies te laten werken, en we hebben echte code nodig om het te laten werken.

Eerste dingen eerst. We hebben de volgende pallets nodig.

Node-red-contrib-mqtt-broker:Dit is de verbinding met onze MQTT-makelaar.

Node-red-dashboard: Ons dashboard, nodig om de verzamelde gegevens visueel weer te geven.

Node-red-node-mysql:Onze verbinding met de SQL-database.

Dit is niet bedoeld als een volwaardige gids voor Node-red, maar ik zal uitleggen wat de Node-red-stroom doet.

In het begin hadden we problemen met onze MQTT-server naar keuze die doodging/de verbinding verbrak, schijnbaar willekeurig, waardoor het een frustrerende onderneming was om wijzigingen aan te brengen, omdat het onduidelijk was of de wijzigingen gunstig waren geweest, of niet als we het resultaat niet konden zien. Dus de knop 'Is de server dood?' injecteert 'Nee' het volgende blok injecteert het naar onze MQTT-server. Als het niet dood is, verschijnt 'Nee' in het Debug-venster. Dit wordt niet alleen gedaan om te testen, maar om Node-red te dwingen opnieuw verbinding te maken met de MQTT-server.

De 'Test string' stuurt een costum string naar de MQTT broker. We hebben deze string geformatteerd om vergelijkbaar te zijn met wat we van de Arduino zouden krijgen. Dit was bedoeld om het netwerk dat de berichten decodeert gemakkelijker te configureren, zonder dat het project moet lopen en gegevens moet worden verzameld.

De laatste stroom in de werkruimte kan in twee segmenten worden verdeeld. De onderste tak leest eenvoudig de binnenkomende berichten, plaatst ze in het foutopsporingsvenster en slaat ze op de SQL-server op.

Het grote netwerk van aangesloten schakelaars die een functieknooppunt volgen als waar de echte 'magie' plaatsvindt.

De volgende functie leest de binnenkomende string, splitst deze op met elke puntkomma en geeft de secties door aan elk van de uitgangen. De volgende schakelaars zoeken naar een van de twee verschillende binnenkomende stukjes informatie. Uit de ene uitgang wordt altijd één specifiek stukje informatie doorgegeven, de andere optie verlaat de tweede uitgang. Daarna volgt een tweede groep schakelblokken. Ze worden alleen geactiveerd met één specifieke invoer en geven iets anders weer.

Een voorbeeld, 'obstakel', zoals alle andere zijn een binaire keuze, het is ofwel duidelijk om te rijden, of niet. Het krijgt dus een 0, of een 1. Een 0 wordt naar de 'clear' branch gestuurd, een 1 naar de 'obstructed' branch. De schakelaars 'Wissen', 'Belemmerd', indien geactiveerd, zullen iets specifieks, respectievelijk wissen of belemmerd weergeven. De groene procedureblokken worden in het foutopsporingsvenster geplaatst, de blauwe schrijven naar ons dashboard.

De takken 'status' en 'locatie' werken precies hetzelfde.

Stap 8: MQTT-makelaar

Een Broker is een server die berichten van clients doorstuurt naar de juiste bestemmingsclients. Een MQTT Broker is er een waarbij de clients een MQTT-bibliotheek gebruiken om via een netwerk verbinding te maken met de broker.

Voor dit project hebben we een MQTT-makelaar gemaakt met behulp van de CloudMQTT-service met het gratis abonnement voor een "Cute Cat" -versie. Het heeft zijn beperkingen, maar die overschrijden we in dit project niet. De WiFi-module kan verbinding maken met de broker en de broker stuurt de berichten vervolgens naar een geschikte bestemmingsclient. In dit geval is de klant onze Node-Red. CloudMQTT-service stelt een gebruikersnaam en wachtwoord in voor hun server, dus we zijn gegarandeerd van een hogere beveiliging. Dit betekent in feite dat alleen degenen met de gebruikersnaam en het wachtwoord toegang hebben tot deze specifieke CloudMQTT-service. De gebruikersnaam en het wachtwoord zijn cruciaal bij het opzetten van de verbinding op zowel de ESP8266-code als Node-Red.

De doorlopende statistieken voor de berichten die de makelaar ontvangt, is een prettige functie, die kan worden gebruikt om te zien hoe goed uw abonnement omgaat met de informatie die het doorstuurt.

Een leuke feature is de mogelijkheid om berichten van de Broker naar de WiFi module te sturen maar daar hebben we in dit project geen gebruik van gemaakt.

Stap 9: Hobby-elektronica

Voordat we begonnen wisten we van een vorig project dat de standaard stuurservo kon worden bestuurd vanaf een Arduino met een PWM-signaal, met vergelijkbare bedrading en aangesloten op verschillende kanalen op dezelfde standaard radio-ontvanger, we gingen uit van de elektronische snelheidsregeling (ESC van nu aan), die de motor bestuurt, kan op dezelfde manier worden bestuurd via PWM vanuit de Arduino.

Om deze theorie te testen, maken we een kleine Arduino-schets. De schets leest een analoge invoer van een potentiometer, hermapt de waarde van 0, 1024 naar 0, 255 en voert de resulterende waarde uit naar een PWM-pin, met behulp van analogWrite() terwijl de RC-auto op een kleine doos stond en de wielen verwijderd.

Nadat we het bereik op de potmeter hadden doorzocht, leek de ESC 'wakker te worden' en konden we hem op en neer bewegen, we lieten de Arduino ook de waarden naar de seriële verbinding afdrukken zodat we ze konden controleren.

De ESC leek niet te houden van waarden onder een bepaalde drempel, in dit geval 128. Het zag het signaal 191 als neutraal gas en 255 was maximaal gas.

We hoefden de snelheid van het voertuig niet te variëren en konden het perfect laten voortslepen met de laagste snelheid die het zou laten bewegen. 192 was de laagste waarde die de motor zou laten draaien, maar we moeten alles nog monteren en weten niet zeker of deze output voldoende zou zijn om het voertuig na de eindmontage te verplaatsen, maar het invoeren van een iets grotere waarde zou triviaal moeten zijn.

Het omzeilen van de potmeter en het invoeren van een vaste waarde in de code werkte echter niet. De standaard ESC knipperde gewoon en wilde de motor niet ronddraaien, 'gasklep aanpassen' volgens de handleiding.

Furieuze probleemoplossing, verschillende waarden erop gooien, verschillende draden gebruiken en zelfs experimenteren met het veranderen van de PWM-frequentie die de Arduino gebruikt, resulteerden in meer gekheid.

Het leek een intermitterend probleem te zijn, soms liep het, soms weigerde het iets te doen. Het bleef gewoon knipperen. Een test met de originele controller en ontvanger bevestigde dat de ESC nog steeds precies werkte zoals bedoeld, wat de problemen nog vreemder maakte. Hogere waarden negeerde hij en bleef knipperen, lagere waarden ging de ESC weer vrolijk groen schijnen, maar draaide nog steeds niet.

Wat was er anders dan de opstelling met de potentiometer, of de standaard zender en ontvanger, en de versie die vaste waarden opleverde?

Soms overlappen werken zoals bedoeld en werken zoals verwacht niet echt veel in het Venn-diagram. In dit geval, omdat het speelgoed is, zou er geen kans moeten zijn dat het model gewoon opstijgt of vingers breekt of dat haar vast komt te zitten in de wielen of de aandrijflijn terwijl het model wordt ingeschakeld, zelfs als zoiets als het vasthouden van de zender vreemd genoeg de gashendel in heeft een andere positie dan neutraal.

'Adjust throttle trim', dat is precies wat dat betekent. De ESC verwacht een neutraal signaal wanneer het wordt ingeschakeld, voordat het merkt dat het niets zal doen. Normaal gesproken zou de zender altijd in neutraal staan wanneer de ESC is ingeschakeld en vanaf daar met plezier rijden. Als dat niet het geval is, is hij waarschijnlijk minstens één keer terug in neutraal tegen de tijd dat het model stevig op de grond staat en de bestuurder zich klaar voelt om te racen.

Terwijl we de potentiometer gebruikten, 'vegen' we door bereiken, en dan zou het beginnen te werken. Het werd gewoon ingeschakeld toen de potentiometer voorbij de neutrale positie vloog, en toen werkte het.

Lagere bereiken leken de ESC echter nog steeds niet te behagen. Dit blijkt een product te zijn van de PWM duty cycles.

Ofwel door ontwerp of gedaan om een technische reden, zowel de stuurservo als de ESC negeren signalen onder 50% inschakelduur. Dit kan zijn in het geval dat de ontvanger/zender niet meer werkt of zonder stroom komt te zitten, het model terug zou keren naar neutraal en niet op volle toeren zou opstijgen. Evenzo draait de servo slechts 180 graden en heeft hij niet het volledige bereik nodig.

Met deze nieuwe kennis in de hand werd een nieuwe Arduino-schets gemaakt. De eerste versie accepteert strings die in de seriële monitor zijn ingevoerd, converteert het naar een geheel getal en verplaatst het naar de PWM-pin, met behulp van de servobibliotheek en write()*. Als een nieuwe waarde wordt ingevoerd in de seriële monitor, wordt de waarde write() bijgewerkt.

Tijdens het testen werd de standaard Traxxas ESC vervangen door een Mtroniks G2 Micro, maar ze zouden hetzelfde moeten werken, hoewel de exacte waarden enigszins kunnen verschillen.

Deze bibliotheek behandelt de ESC als een servo, dit is blijkbaar prima. De functie write() van de Servo.h-bibliotheek gaat van 0 tot 180, het verwachte activeringssignaal zal naar verwachting rond het midden zijn.

De G2 Micro bewapent met een schrijf() in een bereik van waarden in de buurt van 90, maar het was moeilijk te lokaliseren omdat het zich lijkt te 'herinneren' dat het was ingeschakeld.

De Traxxas VXL-s3 zal naar verwachting worden ingeschakeld met een schrijfwaarde () van 91.

Na het inschakelsignaal accepteerde ESC graag PWM-signalen, ongeacht de Arduino-functies die werden aangeroepen om ze te genereren, en bestuurt de motor dienovereenkomstig.

Over functies gesproken; de standaard analogWrite(), evenals write() en writeMicroseconds() uit de Servo.h-bibliotheek kunnen allemaal door elkaar worden gebruikt, houd er rekening mee wat wat doet, en uiteindelijk is niets anders dan de duty cycle van belang. WriteMicroseconds() kan worden gebruikt als een grotere granulariteit vereist is, houd er rekening mee dat het bereik hier van 1000 tot 2000 is, met inschakeling of 'neutraal' naar verwachting op 1500. Met de standaard analogWrite() wordt verwacht dat het bruikbare bereik van 128 tot 255 zijn, waarbij ongeveer 191 neutraal is.

Aanbevolen: