Aller au contenu


Photo
* * * * - 1 note(s)

Bras robot BCN3D Moveo de Donovan

bras robot

348 réponses à ce sujet

#141 Melmet

Melmet

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 521 messages
  • Gender:Male
  • Location:Saint-Sozy (46200)

Posté 13 septembre 2017 - 08:43

Vivement la demo :) :P 


Ne demande jamais à un robot de faire ce que tu peux faire toi même. :nono: :laugh1:


#142 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 13 septembre 2017 - 08:03

Merci  :ignat_02:

 

Avec l'acquisition de mon nouveau pistolet à colle chaude, j'ai sécurisé mes soudures :

IMG_20170913_202631.jpg

 

Et mise en place de l'écran et du clavier dans le support :

IMG_20170913_205927.jpg



#143 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 769 messages
  • Gender:Male

Posté 13 septembre 2017 - 08:07

Super le coup de la colle !

#144 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 13 septembre 2017 - 10:35

La colle, c'est pour éviter d'arracher les soudures ? Je comprends pas pourquoi tu as mis de la colle.

#145 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 769 messages
  • Gender:Male

Posté 14 septembre 2017 - 06:49

La colle, c'est pour éviter d'arracher les soudures ? Je comprends pas pourquoi tu as mis de la colle.

Je pense que c'est surtout pour que les fils tiennent aux soudures.
Me trompes-je ?

#146 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 14 septembre 2017 - 07:28

Oui, j'ai utilisé des nappes de disque dur, donc c'est du fil vraiment fin et lorsqu'il y a un choc dessus en manipulant la carte, le fil peut couper à ras la soudure donc c'est à la fois pour protéger et pour isoler

#147 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 14 septembre 2017 - 08:47

ok :)



#148 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 16 septembre 2017 - 08:01

Aujourd'hui j'ai modifier quelques câbleq et installer l'interrupteur général ainsi que le support de câble (photos demain) .

 

J'ai également réussi à faire un menu comme je veux mais je bute sur une fonction.

 

J'arrive a récupérer l'appui de chaque touche de mon clavier donc j'aimerai, à l'aide des chiffres, pouvoir entrer une valeur à 3 chiffres que j'utiliserai ensuite pour la rotation de mes moteurs.

Par exemple, j'appui sur la touche "2", puis "Ok", puis "5", puis "Ok", puis "4", puis "Ok" et à partir de la, la valeur "254" est stockée dans une variable que j'utiliserai ensuite.

Une idée de comment faire ça sur Arduino?



#149 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 969 messages
  • Gender:Male
  • Location:Anglet

Posté 17 septembre 2017 - 12:39

Met le code que tu utilises pour récupérer les touches une par une chaque et on peut te le modifier pour récupérer le chiffre complet =) 

Par contre explique aussi comment tu fais si tu veux taper 2 25 254 et 2543 

 

Exemple :

tu veux taper toujours trois chiffre cad pour 2 tu vas taper 0 puis 0 puis 2 ? 
Ou bien tu fais une validation de nombre une fois que le nombre souhaité est tapé ? genre "2" puis "5" puis "4" puis " x " ( ou tout autre caractère au choix ) ? 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#150 Oracid

Oracid

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 6 769 messages
  • Gender:Male

Posté 17 septembre 2017 - 05:59

Tu pourrais utiliser une entré analogique et un potentiomètre pour déterminer ta valeur, puis tu valides avec un bouton poussoir.

#151 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 17 septembre 2017 - 08:59

Salut, je récupère l'état des touches de cette manière : (le "readAnalogMux" est une fonction qui me récupere le multiplexage des boutons)

boolean etatOK = readAnalogMux(0)>500;
boolean etatFlecheBas = readAnalogMux(4)>500;
boolean etatFlecheHaut = readAnalogMux(6)>500;
boolean etatRetour = readAnalogMux(7)>500;
boolean etatMaison = readAnalogMux(3)>500;

(je sais que "0" est le bouton OK, le "4" la flèche du bas, etc...)

 

En gros, je suis en train de faire un mode manuel pour faire bouger chaque articulation de manière indépendante. Je souhaiterai donc avec mon clavier numérique, taper une valeur (qui ne dépassera pas un nombre à 3 chiffres) pour donner un angle positif ou négatif à mon articulation.

Si je veux faire tourner mon articulation de 2°, si c'est possible de taper juste sur la touche "2" du clavier et non pas "002", c'est même mieux.

 

Ou bien tu fais une validation de nombre une fois que le nombre souhaité est tapé ? genre "2" puis "5" puis "4" puis " x " ( ou tout autre caractère au choix ) ? 

 

J'étais parti sur ce système la mais on peut aussi utiliser une touche pour effacer si on veux modifier, peut importe.

 

@Oracid, j'ai réussi à réutiliser un beau clavier sur lequel j'ai récupéré l'appui de chaque touche, autan ne pas s'en priver  ^_^



#152 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 17 septembre 2017 - 09:19

Mise en place de interrupteur générale de l'alimentation :

IMG_20170916_160428.jpg

 

et du boitier de la prise coté robot :

IMG_20170916_160452.jpg



#153 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 17 septembre 2017 - 10:56

Une manière de gérer les touches ergonomiquement est la suivante : chaque appui sur une touche ajoute sa valeur à une chaîne de caractères. Tant que les appuis sont suffisamment rapides (temps à déterminer), on incrémente la chaîne de caractères. Dès que le délai dépasse ce temps, la chaîne de caractères est interprétée comme valeur décimale (par exemple). Ca évite un appui pour validation mais c'est un peu plus dur à régler correctement pour que les temps soient agréables.

 

En termes de code, ça ferait qqch comme ça:

...
const unsigned int seuil_validation = 500; // si 500ms se sont écoulées sans appui, on valide l'entrée
String input; // Objet de type String : https://www.arduino.cc/en/Reference/StringObject
unsigned_long stored_time;
bool time_elapsed = false;
 
void setup()
{
// ... initialisations
}
 
loop()
{
    String new_input;
    if( test_si_nouvel_appui_sur_touches )
    {
     // si nouvel appui, lire l'entrée clavier
     stored_time = millis() ; // màj temps depuis dernier appui
     new_input = Read(); // Read() à remplacer par la méthode adéquate
    }
    else
    {
     time_elapsed = (millis() - stored_time) > seuil_validation; // màj condition validation
    }
 
    // traitement d
    if(new_input == "Ok" || time_elapsed) // si appui sur ok ou inactivité, on valide l'entrée
    {
       // machine à état pour différent traitements
       // ...
    }
    else
    {
        // on met juste à jour la chaîne de caractères
        input += new_input; // https://www.arduino.cc/en/Tutorial/StringAppendOperator  : concaténation
    }
 }
 

Délivré avec bugs potentiels :)


R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#154 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 17 septembre 2017 - 10:57

J'ai pas compris ton problème :)



#155 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 17 septembre 2017 - 12:14

Merci R1D1, je test ça tout à l'heure en rentrant chez moi.

J'ai pas compris ton problème :)


Je veux juste taper l'angle voulu sur le clavier ^^

#156 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 17 septembre 2017 - 06:47

Voila, j'ai réussi à faire ce que je voulais.

A la page correspondant, je tape la valeur de l'angle. Si je me trompe, j'appuie sur " # " pour tout effacer et si mon angle est bon, j'appuie sur " * ".

Ton code fortement modifié ^^ :

String valeur_Angle;

void Choix_valeur_angle(){
  String new_input;   
      if(readAnalogMux(5)>500){new_input = '1'; }if(readAnalogMux2(7)>500){new_input = '2'; }if(readAnalogMux2(5)>500){new_input = '3'; }if(readAnalogMux2(6)>500){new_input = '4'; }if(readAnalogMux2(3)>500){new_input = '5'; }if (digitalRead(38)==true) {new_input = '6';}if(readAnalogMux2(0)>500){new_input = '7'; }if(readAnalogMux2(1)>500){new_input = '8'; }if (digitalRead(36)==true) {new_input = '9';}if(readAnalogMux2(2)>500){new_input = '0'; } 
    
   if(digitalRead(40)==true) // si # est appuyé, on efface la chaine
    {
      valeur_Angle = "";
    }
    else
    {
        // on met juste à jour la chaîne de caractères
        valeur_Angle += new_input; // https://www.arduino.cc/en/Tutorial/StringAppendOperator  : concaténation
    }
    lcd.print(valeur_Angle);lcd.print((char)223);
    if(readAnalogMux2(4)>500){Menu = (Menu * 10)+1;Valeur_choisie();} // si * est appuyé, on valide
}


#157 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 20 septembre 2017 - 07:20

Salut ! J'avance gentiment dans mon code.
Hier soir j'ai même réussi à faire bouger mon premier axe en choisissant la valeur de rotation sur mon écran 😀.
J'ai même faut sauter les plombs de mon appartement en mettant en route l'alimentation. Je ne sais pas trop pourquoi. Je pense à une saleté qui serait tombée dans l'alimentation puisqu'après, plus de problème.
J'aurai juste une question pour peut être ajouter une fonctionnalité, peut-on récupérer les signaux des moteurs pas à pas pour pouvoir apprendre des mouvements au robot en le bougeant manuellement ?

#158 Ulysse

Ulysse

    Membre passionné

  • Membres
  • PipPipPip
  • 486 messages
  • Gender:Not Telling

Posté 20 septembre 2017 - 08:21

 

peut-on récupérer les signaux des moteurs pas à pas pour pouvoir apprendre des mouvements au robot en le bougeant manuellement ?

 

Franchement non, même si la bobine du moteur génère une suite de pics de tension lorsqu'on fait tourner son axe ( effet dynamo ) ça n'est pas exploitable.

Mais on peut placer un codeur sur l'arbre du moteur.



#159 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 20 septembre 2017 - 08:37

D'accord, la solution des codeurs est sûrement plus facile à mettre en place et plus fiable non ?

#160 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 24 septembre 2017 - 07:09

Salut, voila la vidéo tant attendu des premiers mouvements "officiel" du robot.

J'y montre une partie de mon menu et son fonctionnement.

L'initialisation du robot au début de la vidéo est en faite la mise en place de chaque axe dans leur position zéro, c'est à dire lorsque les flèches des différents éléments sont alignées (comme le robot est positionné en gros). Grâce à ça, je défini la position zéro de chaque moteur.

Il y a encore de nombreux bugs que je résous tout doucement. 





Répondre à ce sujet



  



Aussi étiqueté avec au moins un de ces mots-clés : bras robot

0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users