How to Programming for Humanoid Robot
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
Bretagne35 5 years ago
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
Bretagne35 4 years ago
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
jlab1 4 years ago
Merci beaucoup