How to Programming for Humanoid Robot

Introduction: How to Programming for Humanoid Robot

About: LewanSoul specializes in product development and creation, especially in the field of bionic robots, we provide the majority of users with superior hardware and software products. We have manufactured robots...

H3S is an intelligent humanoid robot with 16 high-precision digital servos. We can use PC software (visual programming software) to create new actions for robot. Let's give it a shot!

Step 1: Use PC Software to Create New Actions

We must first understand about how to use this PC software before programming for robot.

Step 2: Let's Create Some Cool Actions

In this video, you can see how to program for robot with this visual programming software. So you can make robot walk, turn left or right, dance or this kind of things,it is easy for a new beginner or robot enthusiasts to create new gameplay.

Share

    Recommendations

    • Creative Misuse Contest

      Creative Misuse Contest
    • Metalworking Contest

      Metalworking Contest
    • Fix It! Contest

      Fix It! Contest

    Discussions

    Bonjour,

    J'ai réalisé ce robot de chez LewanSoul.

    J'ai connecté une carte contrôleur LSC-32 et un module bluetooth MTL05 afin de pouvoir utiliser leur application APK ANDROID. Fonctionne très bien sous Android 4.4.

    Autre modification:

    Pour que le ROBOT ce déplace tout seul sans bluetooth et sans manette WIFI j'ai connecté une carte ARDUINO NANO entrée RX TX à la carte contrôleur LSC-32.

    Un capteur ultrason HC-SR04 connecté à l'Arduino

    Le programme ino:

    /*

    Mise à jour le 27/07/2018

    ARDUINO UNO rx tx LSC-32

    pin rx LSC-32 to PIN A1 GRIS ARDUINO

    pin tx LSC-32 to PIN A0 BLANC ARDUINO

    pin GND LSC-32 to PIN GND ARDUINO

    */

    #include <LobotServoController.h>

    #include <Servo.h>

    // définition des broches utilisées par le capteur HC-SR04

    int trig = 8;

    int echo = 9;

    // définition des broches rx tx COM ARDUINO LSC-32

    #define rxPin A0

    #define txPin A1

    SoftwareSerial mySerial(rxPin, txPin);

    LobotServoController myse(mySerial);

    long lecture_echo;

    long cm, cm_gauche, cm_droite;

    Servo monservo; // crée l’objet pour contrôler le servomoteur

    void Attente()

    {

    monservo.write(90);

    myse.runActionGroup(0, 1); // Exécution Action 0 du groupe d'actions 1

    delay(2000);

    myse.stopActionGroup(); // Arrête le groupe d'action pour s'exécuter

    delay(1000);

    }

    void Stop() {

    myse.runActionGroup(5, 1);

    delay(1000);

    myse.stopActionGroup(); // Arrête le groupe d'action pour s'exécuter

    delay(1000);

    }

    void SlideLeft() {

    myse.runActionGroup(3, 1);

    delay(7000);

    myse.stopActionGroup(); // Arrête le groupe d'action pour s'exécuter

    delay(1000);

    }

    void SlideRight() {

    myse.runActionGroup(4, 1);

    delay(7000);

    myse.stopActionGroup(); // Arrête le groupe d'action pour s'exécuter

    delay(1000);

    }

    void Back()

    {

    monservo.write(90);

    myse.runActionGroup(2, 1); // Exécution Action 2 du groupe d'actions 1

    delay(5000);

    myse.stopActionGroup(); // Arrête le groupe d'action pour s'exécuter

    delay(1000);

    }

    void Laugh()

    {

    monservo.write(90);

    myse.runActionGroup(7, 1); // Exécution Action 2 du groupe d'actions 1

    delay(9000);

    myse.stopActionGroup(); // Arrête le groupe d'action pour s'exécuter

    delay(1000);

    }

    void Accroupi()

    {

    monservo.write(90);

    myse.runActionGroup(6, 1); // Exécution Action 2 du groupe d'actions 1

    delay(8000);

    myse.stopActionGroup(); // Arrête le groupe d'action pour s'exécuter

    delay(1000);

    }

    void calcul_distance()

    {

    digitalWrite(trig, HIGH);

    delayMicroseconds(10);

    digitalWrite(trig, LOW);

    lecture_echo = pulseIn(echo, HIGH);

    cm = lecture_echo / 58;

    }

    void setup()

    {

    mySerial.begin(9600);

    Serial.begin(9600);

    mySerial;

    //while (!Serial);

    monservo.attach(10); // utilise la broche 10 pour le contrôle du servomoteur

    monservo.write(90);

    // Appel Attente

    Attente();

    pinMode(trig, OUTPUT);

    digitalWrite(trig, LOW);

    pinMode(echo, INPUT);

    //Action groupe

    Attente();

    delay(1000);

    Accroupi();

    delay(1000);

    Attente();

    delay(1000);

    Laugh();

    delay(1000);

    Attente();

    delay(1000);

    }

    void loop()

    {

    monservo.write(90);

    delay(1000);

    calcul_distance();

    if (cm >= 50)

    {

    // Robot avance tout droit

    myse.runActionGroup(1, 1);

    }

    else

    {

    // Robot stop

    Stop();

    //appel attente

    Attente();

    // Appel Back

    Back();

    monservo.write(90);

    delay(1000);

    monservo.write(45);

    delay(1000);

    calcul_distance();

    cm_droite = cm;

    monservo.write(90);

    delay(1000);

    monservo.write(140);

    delay(1000);

    monservo.write(90);

    delay(1000);

    calcul_distance();

    cm_gauche = cm;

    if (cm_droite < cm_gauche)

    {

    // Robot glice vers la gauche

    SlideLeft();

    }

    if (cm_droite > cm_gauche)

    {

    // Robot glice vers la droite

    SlideRight();

    }

    if (cm_droite == cm_gauche)

    {

    // Robot ce deplace en marche arriere

    monservo.write(90);

    delay(1000);

    Attente();

    delay(1000);

    Stop();

    }

    }

    }

    //***********************************

    J'espère que vous réaliserez ce projet car c'est un robot de très bonne qualité.

    Bretagne35

    20180726_104224.jpgBluetooth.1.jpgConnect bluetooth.1.jpgConnect bluetooth.2.jpg