Stap 5: nu voor het harde deel... Elektronica
Ik aangesloten op mijn arduino nano naar de bluetooth module en het ESC aan de arduino. ZORG ERVOOR DAT U NIET HET BEC IN HET ESC OF EEN ANDERE EXTERNE STROOMBRON GEBRUIKT VOOR HET AANDRIJVEN VAN DE ARDUINO BIJ DE ARDUINO IS AANGESLOTEN OP UW COMPUTER VOOR PROGRAMMERING. HET KAN DODEN DE ARDUINO OF ERGER NOG, UW USB-POORT OP UW COMPUTER!
Voor het voeden van de arduino en het toezicht op de accuspanning gebruikte ik de stekker van de balans van de lipo en niet het BEC
In het beeld van de kringsraad, kunt u de bluetooth-module, de arduino nano en een beetje van PCB die ik gebruikt om verbinding te maken met alle bedrading en springpaarden te bekijken. Dit was om alles te houden relatief netjes en stond me toe om te esablish een gemeenschappelijke grond op aansluiten van de arduino grond als het had slechts 2 pinnen voor grond en ik nodig een paar.
In de foto van de kunststof behuizing aan de linkerkant is het esc heeft een klittenband Houd het ingedrukt. Is de arduino en bluetooth module met een beetje van pcb te organiseren van de draden in het centrum. Aan de rechterkant is de zes celbatterij die ik gewijzigd in twee 3 cellen samengevoegd maar delen een tegenrekening stekker.
Voor het aandrijven van de arduino die ik ben tekening van 2s van de 6s lipo te geven me ongeveer 7 volt ingang afhankelijk van de heffing niveau (de arduino aankan een ingang tot 20v denk ik...). Ik ben ook een analoge pin van de arduino aansluiten op 1s van de lipo te gebruiken als de batterij monitor. Als elke cel zakt tot onder 3,5 volt die het beginnen kan te beschadigen de lipo dus dat is wat ik de lage batterij waarschuwing in mijn app voor ingesteld. Hier is de code voor mijn arduino:
#include / / import van de seriële bibliotheek
#includeSoftwareSerial Bluetooth (10, 11);
RX, TXint BluetoothData; de gegevens van ComputerServo ESC;
lange previousMillis = 0;
lange interval = 1000;
void setup)
) {/ / zetten uw setup-code hier, om het eenmalig uit te voeren:
Bluetooth.begin(9600);
Serial.begin(9600);
Serial.println ("Bluetooth aan");
ESC.attach(9);
}
void loop
{/ / Zet uw belangrijkste code hier, om het herhaaldelijk uitvoeren:
Als (Bluetooth.available()){BluetoothData=Bluetooth.read();
ESC.write(BluetoothData);
Serial.println(BluetoothData);
}
int sensorValue = analogRead(A0);
zweven spanning = sensorValue * (5.0 / 1023.0);
unsigned long currentMillis = millis();
Als (currentMillis-previousMillis > interval) {previousMillis = currentMillis;
Als (spanning < = 3.5) Bluetooth.println ("laag batterij");
anders Bluetooth.println (spanning, DEC);
}
}
Dus in wezen de code neemt het getal van de positie van de Schuif in de app en stuurt het naar de servo in een van het kan herkennen met behulp van een seriële bibliotheek. Voor de controle van de batterij spanning, het leest de waarde van een van de cellen van de lipo en zet het analoge symbool in een waarde. Deze waarde wordt vervolgens teruggestuurd naar de telefoon worden weergegeven. Ik heb nog om erachter te komen hoe dit getal afronden, zodat het niet als een echt lang decimaal op het scherm opdagen...
En hier is de app: bluetooth_controller.apk (download en verandering extensie .apk) uploaden naar uw ANDROID telefoon en installeren. Wanneer u het opent die u wilt verbinden met de arduino en druk op de stopknop, dan sluit de accu op het ESC. het geeft een beetje een pieptoon en vervolgens u zijn ingesteld om te gaan, de schuifregelaar gebruiken om voorzichtig de snelheid aanpassen en altijd druk uit en dan gaan de motor!