Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
openatelier:projet:telerobot [2021/05/18 18:32]
emoc
openatelier:projet:telerobot [2022/06/27 19:37] (Version actuelle)
emoc
Ligne 9: Ligne 9:
 Interface web : http://​lesporteslogiques.net/​telerobot/​ Interface web : http://​lesporteslogiques.net/​telerobot/​
  
-nb : 2 servomoteurs c'est trop de courant pour la broche ViN, solution élégante : en enlever un, ou ajouter une alim externe+===== Étape 1 =====
  
-Code photon 
  
-<​code>​+ 
 +Code photon tout moche (adapté depuis https://​github.com/​lesporteslogiques/​atelier_ioc_2017/​tree/​master/​mouvement_photon%2Bservo ) 
 + 
 +<​accordion>​ 
 +<panel title="​telerobot_001.phot (cliquer pour afficher le code)">​ 
 +<​code ​c telerobot_001.phot>
 #define broche_bouton1 ​   D4 #define broche_bouton1 ​   D4
 #define broche_bouton2 ​   D5 #define broche_bouton2 ​   D5
Ligne 96: Ligne 100:
 </​code>​ </​code>​
  
-Peut-être remplacer par ce servo : https://​www.dfrobot.com/​product-1970.html+</​panel>​ 
 +</​accordion>​ 
 + 
 +Peut-être remplacer par ce servo : https://​www.dfrobot.com/​product-1970.html ​\\ 
 +Et puis ça ne marche pas, il reçoit une instruction par le web et plante avec D7 allumée fixe, peut-être que 2 moteurs c'est trop de courant pour la broche ViN, solution élégante : en enlever un, ou ajouter une alim externe  
 + 
 +===== Étape 2 ===== 
 + 
 +À peine mieux, avec un seul servo, ça plante et se bloque aussi, alors trop de courant demandé ou autre raison ? Problème de servomoteur ? 
 + 
 +<​accordion>​ 
 +<panel title="​telerobot_002.phot (cliquer pour afficher le code)">​ 
 +<code c telerobot_002.phot>​ 
 +#include <​neopixel.h> ​ // This #include statement was automatically added by the Particle IDE. 
 + 
 +#define BROCHE_BOUTON1 ​   D4 
 +#define BROCHE_BOUTON2 ​   D5 
 +#define BROCHE_LED ​       D2 
 +#define BROCHE_SERVO ​     D0 
 + 
 +#define PIXEL_COUNT ​       4 
 +#define PIXEL_TYPE ​  ​WS2812B 
 + 
 +Adafruit_NeoPixel strip(PIXEL_COUNT,​ BROCHE_LED, PIXEL_TYPE);​ 
 + 
 +Servo servo1; 
 +Servo servo2; 
 + 
 +int position = 0; 
 + 
 +long compteur = 0; 
 +long last_show = 0; 
 + 
 + 
 +void setup() { 
 +     
 +    //​servo1.attach(BROCHE_SERVO); ​   
 +    //​servo1.write(90); ​   // test  
 + 
 +    pinMode(D7, OUTPUT); ​  
 +    pinMode(BROCHE_BOUTON1,​ INPUT); 
 +    pinMode(BROCHE_BOUTON2,​ INPUT); 
 +     
 +    strip.begin();​ 
 +    strip.show();​  
 +     
 +   //​Particle.function("​alarme",​ declencherAlarme); ​  
 +
 + 
 + 
 + 
 +void loop() { 
 +    /* 
 +    if (digitalRead(BROCHE_BOUTON1) == HIGH) { 
 +        servo1.write(25); ​       
 +        digitalWrite(D7,​ HIGH);  
 +        delay(300); ​             
 +        servo1.write(90); ​      
 +        digitalWrite(D7,​ LOW);  
 +        delay(300);​ 
 +    }*/ 
 +    /* 
 +    if (digitalRead(BROCHE_BOUTON2) == HIGH) { 
 +        servo2.write(25); ​       
 +        digitalWrite(D7,​ HIGH);  
 +        delay(100); ​             
 +        servo2.write(90); ​      
 +        digitalWrite(D7,​ LOW);   
 +        delay(1000);​ 
 +    } */ 
 +     
 +     
 +    if (millis() - last_show > 1000) { 
 +        strip.setPixelColor(0,​ strip.Color(random(255), ​ random(255),​ random(255)));​ 
 +        strip.setPixelColor(3,​ strip.Color(random(255), ​ random(255),​ random(255)));​ 
 +        strip.setBrightness(200);​ 
 +        strip.show();​ 
 +        last_show = millis(); 
 +    } 
 + 
 +
 +/* 
 +int declencherAlarme(String commande) {        
 +     
 +    if (commande == "​m1gauche"​) {      
 +         
 +        servo1.write(40); ​       
 +        digitalWrite(D7,​ HIGH);  
 +        delay(600); ​             
 +        servo1.write(90); ​    
 +        delay(600); ​  
 +        digitalWrite(D7,​ LOW);   
 + 
 +    } else if (commande == "​m1droite"​) {      
 +         
 +        servo1.write(140); ​       
 +        digitalWrite(D7,​ HIGH);  
 +        delay(600); ​             
 +        servo1.write(90); ​   
 +        delay(600); ​  
 +        digitalWrite(D7,​ LOW);   
 + 
 +    } 
 +}*/ 
 +</​code>​ 
 +</​panel>​ 
 +</​accordion>​ 
 + 
 +Petite amélioration quand même, il prend corps : avec des leds pour éclairer les yeux, et un système pour les faire bouger mais foutraque et en plus qui s'​autodétruit assez vite.  
 + 
 +{{:​openatelier:​projet:​telerobot:​protobot.jpg?​direct&​600|}} 
 + 
 +Mais c'est quand même beaucoup plus joli que https://​www.youtube.com/​watch?​v=XEDgSblMb_4 
 + 
 +===== Étape 3 ===== 
 + 
 +La prochaine, pour l'​instant une todolist 
 +  * résoudre le problème principal 
 +  * des sourcils mobiles le rendraient beaucoup plus expressif 
 +  * cette bouche ne peut pas rester immobile 
 +===== Ressources ===== 
 + 
 +photon datasheet : https://​docs.particle.io/​datasheets/​wi-fi/​photon-datasheet/​ \\ 
 +Intro générale au circuit Photon : https://​github.com/​emoc/​photon_introduction \\ 
 + 
  • openatelier/projet/telerobot.1621355537.txt.gz
  • Dernière modification: 2021/05/18 18:32
  • par emoc