- Vereiste componenten:
- Een interface voor een robot maken met de RemoteXY-app:
- Schakelschema en uitleg:
- Code Verklaring:
- Hoe het uit te voeren:
In dit artikel gaan we de robotauto besturen via de G-sensor van onze mobiele telefoon en je kunt de robot verplaatsen door de telefoon te kantelen. We zullen ook de Arduino- en RemoteXY-app gebruiken voor deze G-Sensor-gestuurde robot. De RemoteXY-app wordt gebruikt om de interface in de smartphone te creëren voor het besturen van de robot. We zullen de joystick in de interface toevoegen, zodat Robot ook kan worden bediend met de joystick en door de telefoon te kantelen.
G-sensor of zwaartekrachtsensor is in feite een versnellingsmeter in een smartphone die wordt gebruikt om de schermoriëntatie van de telefoon te regelen. Accelerometer detecteert de X-, Y-, Z-richtingen van de zwaartekracht en roteert het scherm in overeenstemming met de uitlijning van de telefoon. Tegenwoordig wordt een meer gevoelige en nauwkeurige gyroscoopsensor gebruikt in mobiele telefoons om de oriëntatie van het scherm te bepalen. In ons project zal de robotauto bewegen in overeenstemming met de richting waarin de telefoon wordt gekanteld, zoals wanneer we de telefoon naar voren kantelen, dan zal de auto naar voren rijden en we kantelen hem naar beneden en de auto zal achteruit rijden. Dit is hetzelfde als wanneer we sommige autogames in Mobile spelen, ze gebruiken ook de G-sensor om de auto dienovereenkomstig te verplaatsen. Bekijk de video aan het einde, bekijk hier ook onze andere robotica-projecten.
Vereiste componenten:
- Chassis van de robotauto op twee wielen
- Arduino UNO
- L298N Motorregelaar
- HC-06 Bluetooth-module (HC-05 zal ook werken)
- Voeding of cellen
- Draden aansluiten
Een interface voor een robot maken met de RemoteXY-app:
Om de interface te maken om de Robot Car te besturen met de RemoteXY-app, moet je naar de volgende link gaan
remotexy.com/en/editor/ De webpagina ziet er als volgt uit
Pak vervolgens vanaf de linkerkant van het scherm de schakelknop en de joystick op en plaats deze in de mobiele interface. De knop doet het licht aan op pin 13 die intern in de Arduino is aangesloten en de joystick zal de robotauto bewegen. De webpagina na het plaatsen van de schakelaar en de joystick ziet er zo uit.
Dan zullen we de inschakel / uitschakelknop van de G-sensor samen met de joystick moeten plaatsen, zodat we de robotauto kunnen verplaatsen door de telefoon naar links, rechts, omhoog en omlaag te kantelen. Met die knop kunnen we de G-sensor in- en uitschakelen, wanneer de G-sensor is uitgeschakeld. Auto kan worden bestuurd door de joystick te bewegen. Dus om de G-sensor aan / uit-knop te plaatsen, klik je op de joystick die je in de interface hebt geplaatst en aan de linkerkant zal er een sectie met eigenschappen zijn, er zal uiteindelijk een optie zijn om de G-sensorknop bij de joystick te plaatsen, dus plaats de G-sensorknop waar je maar wilt. De webpagina hierna ziet er zo uit.
Klik daarna op de knop "Broncode ophalen" en sla deze op uw computer op. Download de bibliotheek vanaf hier en sla deze op in de Arduino-bibliotheekmap. Compileer de gedownloade code om te controleren of er geen fouten zijn. Dit is niet de code die de robot zal uitvoeren, maar het zal helpen bij het gebruik van de app met de Arduino. Download de app vanaf hier of ga naar de Play Store en download daar de RemoteXY-app voor je Android Smart Phone.
Schakelschema en uitleg:
Allereerst zullen we de L298N-motorcontroller verbinden met de Arduino. Verbind de ENA- en ENB-pin van de motorcontroller met respectievelijk de Arduino-pin 12 en 11. Deze twee pinnen zijn voor de PWM-besturing van de motor. Met behulp van deze pinnen kunnen we de snelheid van de auto verhogen of verlagen. Verbind vervolgens de IN1, IN2, IN3 en IN4 met respectievelijk de Arduino-pinnen 10, 9, 8 en 7. Deze pinnen draaien de motoren in beide richtingen (met de klok mee en tegen de klok in).
Om de motor van stroom te voorzien, verbindt u de plus en min van de accu met de 12V en de aarde van de motorcontroller. Verbind vervolgens de 5V en de aarde van de motorcontroller met de Arduino Vin en de aarde.
Vervolgens gaan we de Bluetooth module HC-06 verbinden met de arduino. Als u HC-05 heeft, werkt het ook. Verbind de VCC en de aarde van de Bluetooth-module met de 5V en de aarde van de Arduino. Verbind dan de TX pin van Bluetooth Module met pin 2 van Arduino en de RX pin met pin 3 van Arduino. Bekijk ook Bluetooth-gestuurde speelgoedauto met Arduino voor meer informatie over het gebruik van Bluetooth met Arduino.
Code Verklaring:
De volledige Arduino-code voor deze mobiel bestuurde robotauto wordt hieronder gegeven in het codegedeelte, hier zullen we begrijpen hoe deze code werkt.
Allereerst hebben we de bibliotheken voor Software Serial en RemoteXY opgenomen. De RemoteXY-bibliotheek helpt ons bij het instellen van de app met Arduino, waarmee we de robotauto gaan besturen. Daarna hebben we de pinnen voor de Bluetooth-module gedefinieerd, TX van de Bluetooth-module is verbonden met pin 2 van Arduino, de RX-pin van Arduino en de RX van de Bluetooth-module is verbonden met pin 3 van de Arduino die is de TX-pin van Arduino en stel de baudrate van de Bluetooth-module in op 9600.
#define REMOTEXY_MODE__SOFTWARESERIAL #include
De volgende code verhoogt of verlaagt het motortoerental. Wanneer de joystick in het midden staat, is de snelheid nul en wanneer deze in voorwaartse richting is, neemt de snelheid toe van nul naar 100. De snelheid neemt af van 0 naar -100 wanneer de auto in de tegengestelde richting. De auto kan ook op specifieke snelheid worden verplaatst, dit kan door het geven van het PWM-signaal. Het pwm-signaal wordt aan de motoren gegeven volgens de rotatie van de joystick.
if (motor_speed> 100) motor_speed = 100; if (motor_speed <-100) motor_speed = -100; if (motor_speed> 0) {digitalWrite (pointer, HIGH); digitalWrite (pointer, LOW); analogWrite (pointer, motor_speed * 2.55); } else if (motor_speed <0) {digitalWrite (pointer, LOW); digitalWrite (pointer, HIGH); analogWrite (pointer, (-motor_speed) * 2.55); } else {digitalWrite (pointer, LOW); digitalWrite (pointer, LOW); analogWrite (pointer, 0); }
In de volgende code hebben we de functie gedefinieerd die zal worden aangeroepen wanneer we de joystick in de app verplaatsen. Wanneer we de schakelaar in de app aanzetten, wordt logica 1 gegeven aan pin 13 van de Arduino die de LED-pin inschakelt. Terwijl de robotauto in voorwaartse en achterwaartse richting wordt verplaatst, wordt de functie Snelheid aangeroepen.
void loop () {RemoteXY_Handler (); digitalWrite (ledpin, (RemoteXY.switch_1 == 0)? LOW: HIGH); Snelheid (first_motor, RemoteXY.joystick_1_y - RemoteXY.joystick_1_x); Snelheid (second_motor, RemoteXY.joystick_1_y + RemoteXY.joystick_1_x); }
Hoe het uit te voeren:
Voeg de bibliotheek van de RemoteXY toe aan de Arduino-bibliotheken en upload de code in de Arduino IDE. Download vervolgens de app op uw mobiele telefoon en schakel vervolgens Bluetooth in. De interface van de app ziet er zo uit
Ga dan naar Bluetooth en schakel daar Bluetooth in. Nadat u het heeft ingeschakeld, worden de Bluetooth-apparaten weergegeven. Selecteer daar uw HC-06 Bluetooth-module, deze brengt u naar de interface, van waaruit u de robotauto kunt besturen.
Dit is hoe we de zwaartekrachtsensor in onze mobiele telefoon kunnen gebruiken om de robot te verplaatsen. Je kunt verder experimenteren en een interessanter gebruik van de G-sensor vinden om de externe dingen te besturen door een Microcontorller ertussen in te schakelen (zoals Arduino).