- Materiaal vereist
- HC-06 Bluetooth-module
- Schakelschema
- Roboremo-app configureren voor het besturen van servo:
- Code en uitleg
- Werking van servomotorbesturing met behulp van Bluetooth:
Het gebruik van een servomotor is gebruikelijk in Robotics voor nauwkeurige besturing. Hier laten we u in deze tutorial zien hoe u een servomotor draadloos kunt gebruiken met een Arduino UNO en een Android-apparaat via een Bluetooth-verbinding. We hebben de servo al aangestuurd met Arduino, deze keer besturen we de servomotor met Arduino en Bluetooth.
Materiaal vereist
- Arduino UNO
- HC-05 of HC-06 Bluetooth-module
- Servomotor
- Roboremo-app van Playstore
- Breadboard
- Verbindingsdraad
HC-06 Bluetooth-module
Bluetooth kan in de volgende twee modi werken:
- Commando-modus
- Bedrijfsmodus
In de Command-modus kunnen we de Bluetooth-eigenschappen configureren, zoals de naam van het Bluetooth-signaal, het wachtwoord, de operationele baudrate enz. De Operating Mode is de modus waarin we gegevens kunnen verzenden en ontvangen tussen de PIC Microcontroller. en de Bluetooth-module. Daarom spelen we in deze tutorial alleen met de bedieningsmodus. De Command-modus wordt overgelaten aan de standaardinstellingen. De apparaatnaam is HC-05 (ik gebruik HC-06) en het wachtwoord is 0000 of 1234 en het belangrijkste is dat de standaard baudrate voor alle Bluetooth-modules 9600 is.
De module werkt op 5V voeding en de signaalpinnen werken op 3.3V, daarom is er een 3.3V regelaar aanwezig in de module zelf. Daarom hoeven we ons er geen zorgen over te maken. Van de zes pinnen worden er slechts vier gebruikt in de bedieningsmodus. De pinverbindingstabel wordt hieronder weergegeven
S.No | Pin op HC-05 / HC-06 | Pin naam op MCU | Pincode in PIC |
1 | Vcc | Vdd | 31 ste speld |
2 | Vcc | GND | 32 ste speld |
3 | Tx | RC6 / Tx / CK | 25 ste pin |
4 | Rx | RC7 / Rx / DT | 26 ste pin |
5 | Staat | NC | NC |
6 | NL (inschakelen) | NC | NC |
Bekijk onze andere projecten voor meer informatie over Bluetooth-module HC-05 met andere microcontrollers:
- Bluetooth-gestuurde speelgoedauto met Arduino
- Bluetooth-gestuurd huisautomatiseringssysteem met 8051
- Spraakgestuurde verlichting met Raspberry Pi
- Slimme telefoongestuurde FM-radio met Arduino en verwerking
- Koppeling van Bluetooth-module HC-06 met PIC-microcontroller
Bekijk hier ook alle bluetooth gerelateerde projecten.
Schakelschema
Het schakelschema voor dit Arduino Bluetooth Servo Motor Control- project wordt hieronder gegeven:
Roboremo-app configureren voor het besturen van servo:
Stap 1: - Download de Roboremo-app vanuit de Android Play Store en installeer deze op uw smartphone. Na het installeren ziet u het app-venster zoals weergegeven in figuur1 en door op de knop 'Menu' te klikken, ziet u het venster dat wordt weergegeven in figuur2 hieronder:
Stap 2: - Klik vervolgens op de verbindingsknop en je ziet het venster dat wordt weergegeven in figuur 3 hieronder, je moet ' Bluetooth RFCOMM' selecteren en vervolgens kun je je HC-06 bluetooth-module verbinden met je Android-app 'Roboremo'.
Stap 3: - Nadat u verbinding hebt gemaakt met de HC-06 bluetooth-module, keert u terug naar het figuur2-venster en klikt u op ' bewerk ui ' om de gebruikersinterface naar wens te maken.
Wanneer u op 'bewerk ui' klikt , ziet u opnieuw het venster dat wordt weergegeven in figuur 1 en klikt u ergens op het scherm, u ziet het app-venster zoals in figuur 4 en de selecteer ' Knop ' om de knopstructuur te krijgen.
Stap 4: - Na het selecteren van de knop krijgt u een knoppenstructuur op het scherm om te bewerken. U kunt het formaat wijzigen en de structuur overal op het scherm verplaatsen. Voor het instellen van de waarde die moet worden verzonden bij klikken via Bluetooth, hebt u 'set press action' (zoals weergegeven in figuur 6) en typt u de waarde die u vanaf die specifieke knop wilt verzenden. Zoals, we sturen '1' voor het draaien van de servo door op de knop 'Start' in de Roboremo Android-applicatie te drukken.
U kunt alle waarden controleren, die worden verzonden door op verschillende knoppen te klikken, in de tabel die later wordt gegeven.
Stap 5: - Eindelijk hebben we een gebruikersinterface om de servomotor te bedienen met een smartphone.
Code en uitleg
De volledige code voor Arduino Control Servo Motor Via Bluetooth wordt aan het einde gegeven.
Arduino heeft een bibliotheek voor Servomotoren en het behandelt alle PWM-gerelateerde dingen om de servo te roteren, je hoeft alleen de hoek in te voeren waarnaar je wilt roteren en er is de functie servo1.write (hoek); die de servo naar de gewenste hoek zal draaien.
Dus hier beginnen we met het definiëren van de bibliotheek voor Servomotor en Software Seriële bibliotheek wordt gebruikt voor het definiëren van de Rx- en Tx-pin.
# omvatten
In de onderstaande code initialiseren we de Arduino-pinnen voor Rx en Tx, waarbij we variabelen definiëren voor servo en andere dingen .
Servo myServo; int TxD = 11; int RxD = 10; int servopositie; int servopos; int new1; SoftwareSeriële bluetooth (TxD, RxD);
Stel nu alle variabelen en componenten in op de beginfase. Hier hebben wij de servo bevestigd aan 9 th pin van de Arduino en maakte de beginpositie van servo 0 graden. De baudrate voor seriële en Bluetooth-communicatie is ook ingesteld op 9600.
leegte setup () { int pos = 0; myServo.attach (9); myServo.write (0); Serial.begin (9600); // start seriële communicatie op 9600bps bluetooth.begin (9600); }
In de ongeldige lusfunctie controleert Arduino de inkomende waarden de hele tijd en roteert de servo volgens de ontvangen waarde van de smartphone. Alle waarden worden ontvangen via seriële communicatie.
Als de waarde 0 is, draait de servo naar 0 graden. Evenzo als we 45, 90, 135 en 180 verzenden vanuit de Bluetooth-applicatie, zal de servo draaien naar respectievelijk een hoek van 45, 90, 135 en 180 graden.
void loop () { if (bluetooth.available ()) { Stringwaarde = bluetooth.readString (); servoposition = waarde.toInt (); if (value.toInt () == 0) { Serial.println (servoposition); myServo.write (0); } if (value.toInt () == 45) { Serial.println (servoposition); myServo.write (45); } if (value.toInt () == 90) { Serial.println (servoposition); myServo.write (90); } if (value.toInt () == 135) { Serial.println (servoposition); myServo.write (135); } if (value.toInt () == 180) { Serial.println (servoposition); myServo.write (180); }
Als we de waarde '1' te sturen door te drukken op Start knop vervolgens servo continu draait tot stop knop wordt ingedrukt. Hier sturen we '2' bij het indrukken van de stopknop, die wordt gelezen door de Arduino en het zal de while- lus verbreken en de servo wordt gestopt.
while (value.toInt () == 1) {if (bluetooth.available ()) {waarde = bluetooth.readString (); Serial.println (waarde); if (value.toInt () == 2) {Serial.println ("YYY"); breken; }} servopos ++; vertraging (30); Serial.println (servopo's); myServo.write (servopos); if (servopos == 180) {servopos = 0; break;}}}}
Werking van servomotorbesturing met behulp van Bluetooth:
In dit project besturen we de servomotor met behulp van een Android-applicatie "Roboremo". In de interface van deze applicatie hebben we 5 knoppen gemaakt om de servomotor te bedienen, zoals eerder uitgelegd. De werking van elke knop wordt weergegeven in de onderstaande tabel:
S.No. |
Knopnaam |
Waarde verzenden |
Omschrijving |
1. |
Begin |
1 |
Deze knop wordt gebruikt om de servo van 0 tot 180⁰ te laten draaien. |
2. |
Hou op |
2 |
Deze knop wordt gebruikt om de servo op elk moment te stoppen. |
3. |
0⁰ |
0 |
Deze knop wordt gebruikt om de servo naar 0⁰ te draaien. |
4. |
90⁰ |
90 |
Deze knop wordt gebruikt om de servo naar 90⁰ te draaien. |
5. |
180⁰ |
180 |
Deze knop wordt gebruikt om de servo 180⁰ te draaien. |
Dus door op deze knoppen op uw Android-app Roboremo te drukken , worden de gegevens via de Bluetooth-module van de smartphone naar de HC-06 Bluetooth-module verzonden. Van die HC-06 modulegegevens worden ontvangen door de Arduino en Arduino roteert de Servo onder de hoek die is gedefinieerd in de code voor de specifieke knop. We hebben ook gecodeerd voor hoek 45 en 135, maar vanwege de beperking van de Roboremo-app kun je maar 5 knoppen maken, dus hebben we twee knoppen overgeslagen.
Dit is dus hoe je de gegevens van de smartphone naar de Arduino kunt sturen via Bluetooth om de servo draadloos te besturen. Dit kan in veel toepassingen worden gebruikt, zoals speelgoedauto's, robots enz.