How to Programming for Humanoid Robot

7.1K274

Intro: How to Programming for Humanoid Robot

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.

3 Comments

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

Bonjour,
Robot Control (V1.2) est le logiciel qui vous permettra d'injecter les mouvements à la carte contrôleur de votre robot.
Pour votre premier test:
-Connecter la batterie sur la carte contrôleur
-Connecter la carte contrôleur au PORT USB de votre PC.
-Pour éviter toute casse, poser le robot sur le dos.
-Allumer la carte contrôleur (Inter power).
-Ouvrir le logiciel Robot Control (V1.2).
-Chaque bloc bleu correspond à un servomoteur.
-(ID:1) correspond aux PIN de la carte contrôleur.
-Si la carte contrôleur est bien détectée par le logiciel, les yeux du robot passent au vert.

-Cliquer sur (Open Action Groupe).
-Sélectionner le fichier (0 Attention.rob) qui sera injecter au groupe 0 (Action Groupe).
-L'Action Groupe 0 est la position de départ.
-Cliquer sur le bouton (Run Online). Votre robot devrait prendre une position droite qui lui permettra de tenir debout.
-Pour injecter le fichier (0 Attention.rob), cliquer sur le bouton (DownLoad).
-Pour vérifier si votre fichier.rob est bien injecter à la carte et au bon groupe 0, cliquer sur (Action Groupe Run).
-Pour vérifier si votre servomoteur (ID:1) fonctionne, agir sur le curseur.
-La valeur (1500) correspond à la position du moteur (1500 = 90°).
En ce qui concerne le Wifi, des groupes d'action lui sont réservés.
Je vais recherché la documentation correspondant aux groupes Wifi.
Dite moi si les tests.
Cordialement François



Bonjour, je viens de terminer le montage du mien mais impossible de lae detecter en Bluetooth ni de le faire fonctionner avec le gamepad, pouvez-vous me dire comment vous avez procédé s'il vous plaît ?
Merci beaucoup