BLUETOOTH Multi Servo motor Control Android APP

Toon hier Uw afgeronde projecten aan anderen.
Berichten: 9
Geregistreerd: 12 Mei 2016, 01:43

BLUETOOTH Multi Servo motor Control Android APP

Berichtdoor arduinosensorsNL » 21 Okt 2016, 01:05

Een app & code voor multi servo control via bluetooth.

Bekijk de video hier: https://youtu.be/UxBuROjlHE4

Download de app hier: https://play.google.com/store/apps/details?id=appinventor.ai_addmefaster1.BlueCore_Tech_Multi_Servo_Control
De app is ook open source verkrijgbaar stuur een mailtje naar contact@arduinosensors.nl!

Schema:
Afbeelding

Onderdelenlijst.
Arduino uno, (Use a mega if you want to use more then 6 Servos!) i used the RobotDyn Uno.
HC-06 Bluetooth module, or any other.
6 x Servo motor. (Can test with one to of course)
Jumper wires set MM/FF/MF
Android phone.


Code:
Code: Alles selecteren
/*
Author: Danny van den Brande.
With this code you can control multiple servo motors by using a android app.
You can add as many as you like untill your pins run out. You can add more Servos in the code.
If you want the source of the app just contact me.
 */

#include <Servo.h>
Servo myservo1, myservo2, myservo3, myservo4, myservo5, myservo6, myservo7, myservo8, myservo9, myservo10;

byte serialA;

void setup()
{
  myservo1.attach(9);
  myservo2.attach(10);
  myservo3.attach(11);
  myservo4.attach(3);
  myservo5.attach(5);
  myservo6.attach(6);
//  myservo7.attach(); fill in pin numbers if you use more then 6 servos i left them blank
//  myservo8.attach();
//  myservo9.attach();
//  myservo10.attach();
  Serial.begin(9600);//change your baudrate to your Bluetooth modules baudrate if needed.
}

void loop()
{
  if (Serial.available() > 2) {serialA = Serial.read();Serial.println(serialA);}
  {
    unsigned int servopos = Serial.read();
    unsigned int servopos1 = Serial.read();
    unsigned int realservo = (servopos1 *256) + servopos;
    Serial.println(realservo);
   
    if (realservo >= 1000 && realservo <1180){
    int servo1 = realservo;
    servo1 = map(servo1, 1000,1180,0,180);
    myservo1.write(servo1);
    Serial.println("servo 1 ON");
    delay(10);

    }
   
    if (realservo >=2000 && realservo <2180){
      int servo2 = realservo;
      servo2 = map(servo2,2000,2180,0,180);
      myservo2.write(servo2);
      Serial.println("servo 2 On");
      delay(10);
     
    }
   
    if (realservo >=3000 && realservo < 3180){
      int servo3 = realservo;
      servo3 = map(servo3, 3000, 3180,0,180);
      myservo3.write(servo3);
      Serial.println("servo 3 On");
      delay(10);
    }
    if (realservo >=4000 && realservo < 4180){
      int servo4 = realservo;
      servo4 = map(servo4, 4000, 4180,0,180);
      myservo4.write(servo4);
      Serial.println("servo 4 On");
      delay(10);
    }
   
    if (realservo >=5000 && realservo < 5180){
      int servo5 = realservo;
      servo5 = map(servo5, 5000, 5180,0,180);
      myservo5.write(servo5);
      Serial.println("servo 5 On");
      delay(10);
    }
   
    if (realservo >=6000 && realservo < 6180){
      int servo6 = realservo;
      servo6 = map(servo6, 6000, 6180,0,180);
      myservo6.write(servo6);
      Serial.println("servo 6 On");
      delay(10);
    }

//    if (realservo >=7000 && realservo < 7180){ //UNCOMMENT if using more then 6 Servos.
//      int servo7 = realservo;
//      servo7 = map(servo7, 7000, 7180,0,180);
//      myservo7.write(servo7);
//      Serial.println("servo 7 On");
//      delay(10);
//    }
//
//    if (realservo >=8000 && realservo < 8180){
//      int servo8 = realservo;
//      servo8 = map(servo8, 8000, 8180,0,180);
//      myservo8.write(servo8);
//      Serial.println("servo 8 On");
//      delay(10);
//    }
//
//    if (realservo >=9000 && realservo < 9180){
//      int servo8 = realservo;
//      servo8 = map(servo9, 9000, 9180,0,180);
//      myservo8.write(servo8);
//      Serial.println("servo 9 On");
//      delay(10);
//    }
//
//    if (realservo >=10000 && realservo < 10180){
//      int servo10 = realservo;
//      servo10 = map(servo10, 10000, 10180,0,180);
//      myservo10.write(servo10);
//      Serial.println("servo 10 On");
//      delay(10);
//    }
 
  }


}


Zie de instructable hier: http://www.instructables.com/id/ArduinoAndroid-BLUETOOTH-Multi-Servo-Motor-Control/
Sensors voor arduino! http://arduinosensors.nl

Advertisement

Gebruikers-avatar
Berichten: 4646
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: BLUETOOTH Multi Servo motor Control Android APP

Berichtdoor nicoverduin » 21 Okt 2016, 16:17

Danny, je zou eens kunnen overwegen wat meer commentaar in jouw code te zetten. Of je hier reclame mag maken voor jouw eigen site laat ik aan de hoofd moderator over.
Docent Software Engineering, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 2286
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: BLUETOOTH Multi Servo motor Control Android APP

Berichtdoor shooter » 21 Okt 2016, 20:17

je kunt beter schrijven servo1 =map (realservo...... want nu gebruik je de variabele servox voor 2 verschillende waardes.

verder is een array een goed idee voor al die waardes, want nu staan ze in de broncode wat lastig zoeken is.

kijk eens naar functie zodat de loop wat kleiner wordt.
dan kun je bijvoorbeeld die delay in de loop zetten en heb je hem maar 1 keer nodig.
de website ziet er prima uit hoor,

de software bij de sensoren wel behoorlijk nazien (er wordt bijvoorbeeld een boolean naar een INTeger geschreven , dat werkt wel maar is niet netjes,
Ga lekker door en als je denkt dat je een partner zoekt, dan mag je altijd contact opnemen.
paul deelen
shooter@home.nl

Terug naar Afgeronde projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 2 gasten