- Robot Maker
- → Contenu de Newbies
Contenu de Newbies
Il y a 485 élément(s) pour Newbies (recherche limitée depuis 29-avril 13)
Par type de contenu
Voir pour ce membre
#60841 Faire faire un prototype
Posté par Newbies sur 07 juin 2014 - 02:59 dans Bric-à-brac
#60840 Robot pour concours lycéen
Posté par Newbies sur 07 juin 2014 - 12:27 dans Robots roulants, chars à chenilles et autres machines sur roues
Et la tension d'alimentation est aussi donné ? Parce que sinon il te suffit de monté la tension octroyé aux moteurs d'un ou deux volts, crois moi, ils mangeront la poussière
#60837 Robot pour concours lycéen
Posté par Newbies sur 07 juin 2014 - 09:30 dans Robots roulants, chars à chenilles et autres machines sur roues
#60836 Robot pour concours lycéen
Posté par Newbies sur 07 juin 2014 - 09:30 dans Robots roulants, chars à chenilles et autres machines sur roues
Après, une des solutions pour gagner de la vitesse dans le respect des règles seraient d'augmenter le diamètre de tes roue. Tu gagnerai en vitesse mais perdrais en poussé donc à voir en fonction de la "force" de tes moteurs
#60834 Faire faire un prototype
Posté par Newbies sur 06 juin 2014 - 06:33 dans Bric-à-brac
J'ai vue que certaine boites proposaient du plastique par injection mais, de ce que j'ai compris, c'est pour de plus petite pièces :/
#60832 Faire faire un prototype
Posté par Newbies sur 06 juin 2014 - 05:25 dans Bric-à-brac
#60826 Faire faire un prototype
Posté par Newbies sur 06 juin 2014 - 07:33 dans Bric-à-brac
#60822 Faire faire un prototype
Posté par Newbies sur 05 juin 2014 - 08:44 dans Bric-à-brac
J'ai, pour un projet, besoin de faire réaliser un prototype. Le seul truc c'est que je ne sais pas à qui m'adressez sachant que je suis en ile de france.
L'une des pièces ( le châssis ) est constitué de barre de métal plié et soudé ensembles. L'autre pièce est une sorte de cuve en plastique ( thermomoulé ? )
J'ai déjà envoyer les plans à un métallier à coté de chez moi qui ma confirmé pouvoir réaliser la partie métal. C'est donc plus pour la partie plastique que j'ai besoin de votre aide...
Merci d'avance
#60799 Detecter le "clic" d'un bouton poussoir
Posté par Newbies sur 31 mai 2014 - 12:35 dans Programmation
Ton code semble fonctionner un peut comme celui de mon premier post. D'après moi, si l'utilisateur appuis et relâche le bouton rapidement, le bouton reste "HIGH" seulement un très court moment et le cycle s’arrête ensuite.
En fait, il faudrait que j'arrive à détecter le front montant (passage de LOW à HIGH )du bouton seulement...
Peut être qu'en rajoutant une ligne supplémentaire pour maintenir l'état du bouton HIGH au début du cycle pourrais suffire, vous en pensez quoi ?
int boutonPin = 2; int boutonEtat = LOW; void setup() { pinMode(boutonPin, INPUT); } void loop() { boutonEtat = digitalRead(boutonPin); if(boutonEtat == HIGH) { boutonEtat = HIGH; // Ce qu'il doit se passer dans ton cycle boutonEtat = LOW; } }
#60797 Detecter le "clic" d'un bouton poussoir
Posté par Newbies sur 30 mai 2014 - 10:29 dans Programmation
Je suis en train de faire le code d'un de mes projets mais je rencontre un problème... J'ai besoin, pour ce projet d'activé un cycle à l'appuis sur un bouton poussoir. Ce cycle doit s'activer au changement d'état du bouton et, une fois le cycle lancé, l'appuis sur le bouton n'aurais aucun effet avant la fin du cycle.
En gros, je veut juste savoir comment detecter un "clic" sur un bouton
J'ai déjà cherché sur le net et ai trouvé ce code ( voir ci dessous ) mais, d'aprés ce que j'en ai compris il ne convient pas à ma problematique ( car doit resté le doigt sur le bouton )
Voila voila, je suis sur que ce n'est pas grand chose mais je me prend la tête la dessus depuis tout à l'heure et j'en ai marre ^^
Merci d'avance
/* State change detection (edge detection) Often, you don't need to know the state of a digital input all the time, but you just need to know when the input changes from one state to another. For example, you want to know when a button goes from OFF to ON. This is called state change detection, or edge detection. This example shows how to detect when a button or button changes from off to on and on to off. The circuit: * pushbutton attached to pin 2 from +5V * 10K resistor attached to pin 2 from ground * LED attached from pin 13 to ground (or use the built-in LED on most Arduino boards) created 27 Sep 2005 modified 30 Aug 2011 by Tom Igoe This example code is in the public domain. http://arduino.cc/en/Tutorial/ButtonStateChange */ // this constant won't change: const int buttonPin = 2; // the pin that the pushbutton is attached to const int ledPin = 13; // the pin that the LED is attached to // Variables will change: int buttonPushCounter = 0; // counter for the number of button presses int buttonState = 0; // current state of the button int lastButtonState = 0; // previous state of the button void setup() { // initialize the button pin as a input: pinMode(buttonPin, INPUT); // initialize the LED as an output: pinMode(ledPin, OUTPUT); // initialize serial communication: Serial.begin(9600); } void loop() { // read the pushbutton input pin: buttonState = digitalRead(buttonPin); // compare the buttonState to its previous state if (buttonState != lastButtonState) { // if the state has changed, increment the counter if (buttonState == HIGH) { // if the current state is HIGH then the button // wend from off to on: buttonPushCounter++; Serial.println("on"); Serial.print("number of button pushes: "); Serial.println(buttonPushCounter); } else { // if the current state is LOW then the button // wend from on to off: Serial.println("off"); } } // save the current state as the last state, //for next time through the loop lastButtonState = buttonState; // turns on the LED every four button pushes by // checking the modulo of the button push counter. // the modulo function gives you the remainder of // the division of two numbers: if (buttonPushCounter % 4 == 0) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } }
#60283 Robot suiveur de personne
Posté par Newbies sur 24 mars 2014 - 09:40 dans Robots roulants, chars à chenilles et autres machines sur roues
Tu pourrais donc envisager de faire acheter à ton lycée une carte raspberry Pi qui est en gros un mini ordinateur sous linux que tu peut programmer au même titre que l'arduino mais qui te permet surtout des calculs plus poussé tel que du traitement vidéo.
Ainsi, grâce à une simple webcam branchée sur ta Raspberry Pi, tu pourras suivre des personnes/objets/couleurs.
De plus, il te suffirais de rajouter une petite clef USB wifi pour pouvoir voir l'image de la webcam en temps réel et même contrôler ton robot depuis le net ( Si avec ca tu chope pas les 5 points )
Voila Voila, après si tu est obligé d'utiliser le matos que ta déjà acheté, ya quand même moyen de faire un truc sympa
PS : Une Raspberry Pi coûte environ 40E
#60269 Télécommander mon robot
Posté par Newbies sur 23 mars 2014 - 03:07 dans Electronique
Autre problème, en jouant un peut avec mon robot je me suis rendu compte qu'il y a toujours un des moteurs qui commence à tourner avant l'autre. Je me suis d'abord dit que cela devais être du au fait que chaque moteur est différent mais je me suis rendu compte après que ce n'était pas toujours le même donc ca a écarté cette piste. Une idée ?
#60264 Télécommander mon robot
Posté par Newbies sur 23 mars 2014 - 12:49 dans Electronique
void loop() { int avancer; VAL = pulseIn(10, HIGH, 25000); if (VAL < (1000+490)) { avancer =(((VAL-(1000 + 490) )/490)*(255-70) -70); digitalWrite(motorD1, LOW); digitalWrite(motorD2, HIGH); digitalWrite(motorG1, LOW); digitalWrite(motorG2, HIGH); analogWrite (speedD, avancer); analogWrite (speedG, avaancer); } else if (VAL > ( 2000 - 490)) { avancer = (((VAL-( 2000 - 490))/490)*(255-70) +70); digitalWrite(motorD1, HIGH); digitalWrite(motorD2, LOW); digitalWrite(motorG1, HIGH); digitalWrite(motorG2, LOW); analogWrite (speedD, avancer); analogWrite (speedG, avancer); } else { } }
#60262 Télécommander mon robot
Posté par Newbies sur 23 mars 2014 - 12:02 dans Electronique
Je pense donc m'être trompé dans la rédaction de ce code. En fait, c'est surtout la fonction " Return " que je ne comprend pas. De plus, le compilateur ne l'a pas reconnu en tant que fonction et j'ai donc du la remplacer par quelques choses qui me semblait équivalent ( voir code ).
Sinon pour ce qui est des fonctions de mon robot, il est pour l'instant capable d'être télécommandé ( obviously /> ). Il est aussi équipé d'un capteur ultrasonique ( Je vais en commander deux autres à placer sur les cotés et en dessous pour détecter les marches ). Il pourra donc, quand j'aurais récupéré ma télécommande 9 voies, passer en mode autonome depuis la télécommande via un petit bouton.
Je suis en train de réfléchir a un système qui lui permettrais de se remettre droit si il se retourne ( j'ai pensé à l'utilisation d'un petit servo pour ca ).
essayer de le rendre réactif à la lumière et au son />
Un genre de commande vocal ou quelque chose comme ca ? />
Voila le code :
int VAL; int motorD1 = 4; // H-bridge leg 1 int motorD2 = 5; // H-bridge leg 2 int motorG1 = 6; int motorG2 = 7; int speedG = 2; int speedD = 3; // H-bridge enable pin void setup() { pinMode(motorD1, OUTPUT); pinMode(motorD2, OUTPUT); pinMode(speedD, OUTPUT); pinMode(motorG1, OUTPUT); pinMode(motorG2, OUTPUT); pinMode(speedG, OUTPUT); pinMode(9, INPUT); pinMode(10, INPUT); Serial.begin(9600); } void loop() { VAL = pulseIn(10, HIGH, 25000); if (VAL < (1000+490)) { VAL =(((VAL-(1000 + 490) )/490)*(255-70) -70); digitalWrite(motorD1, LOW); digitalWrite(motorD2, HIGH); digitalWrite(motorG1, LOW); digitalWrite(motorG2, HIGH); analogWrite (speedD, VAL); analogWrite (speedG, VAL); } else if (VAL > ( 2000 - 490)) { VAL = (((VAL-( 2000 - 490))/490)*(255-70) +70); digitalWrite(motorD1, HIGH); digitalWrite(motorD2, LOW); digitalWrite(motorG1, HIGH); digitalWrite(motorG2, LOW); analogWrite (speedD, VAL); analogWrite (speedG, VAL); } else { } }
#60251 Télécommander mon robot
Posté par Newbies sur 22 mars 2014 - 02:39 dans Electronique
Sinon, j'ai un autre problème, j'ai changer l'alim pour une grosse baterrie 12V LIPO ( au lieux d'une 7.4V ) et depuis, le L293D chauffe énormement ( malgrés le dissipateur ). De ce fait, au bout d'une petite minute, les moteurs commences à faiblir et je doit attendre que le CI refroidisse pour repartir. Une idée ?
Sinon, des idées de fonction cool à rajouter sur un petit robot tel que le mien ?
Voila voila
#60249 Le projet de clément
Posté par Newbies sur 22 mars 2014 - 12:08 dans Robots roulants, chars à chenilles et autres machines sur roues
A toi de voir donc ( l'option L293D te permettrais juste de te familiariser avec la soudure toussatoussa )
#60248 manipulation d'un bras robot à 4 servomoteurs par un joystick
Posté par Newbies sur 21 mars 2014 - 11:49 dans Bras robots, pinces, tourelles, et autres manipulateurs
Sinon je crains qu'il soit difficile de trouver un émeteur recepteur que tu pourras juste mettre a la place du fil. Cela implique forcement une partie programmation ( plus ou moins complexe selon la technologie de transmission utilisé.)
Voila voila
#60246 Télécommander mon robot
Posté par Newbies sur 21 mars 2014 - 09:57 dans Electronique
A part cela, j'ai entendu dire que sur certaine télécommande, certaines voies n'étaient pas utiliser et qu'il est donc facile d'en rajouter une ( un interrupteur par exemple ). Info ou intox ?
Juste un dernier truc, j'ai lue sur un forum anglo saxon qu'il fallait mieux, dans mon code faire ca:
turn = map(ch2,1000,2000,-500,500); turn = constrain(turn, -255, 255);plutôt que de faire simplement ça :
turn = map(ch2,1000,2000,-255,255);mais je n'ai pas compris pourquoi. Pour moi cela revient au même. Qu'en pensez vous ?
Merci les gars
#60119 Télécommander mon robot
Posté par Newbies sur 01 mars 2014 - 09:04 dans Electronique
par contre tu peux aussi ne pas faire du "proportionnel" et choisir une loi un peu plus exponentielle
Je n'ai pas trop compris. Un truc du genre multiplié la valeur de "avancer" au début du mouvement du stick pour une acceleration un peut plus rapide.
#60112 Télécommander mon robot
Posté par Newbies sur 01 mars 2014 - 01:39 dans Electronique
Voila le code utilisé ( Il est moche mais c'est un code test ^^ ) :
int ch2; int motor1Pin = 4; // H-bridge leg 1 int motor2Pin = 5; // H-bridge leg 2 int speedPin = 3; // H-bridge enable pin int speed = 0; void setup() { pinMode(motor1Pin, OUTPUT); pinMode(motor2Pin, OUTPUT); pinMode(speedPin, OUTPUT); pinMode(9, INPUT); Serial.begin(9600); // Pour a bowl of Serial } void loop() { int turn; ch2 = pulseIn(9, HIGH, 25000); // each channel turn = map(ch2,1000,2000,-500,500); turn = constrain(turn, -255, 255); if ( turn > 0 ){ digitalWrite(motor1Pin, LOW); // set leg 1 of the H-bridge low digitalWrite(motor2Pin, HIGH); // set leg 2 of the H-bridge high speed = turn; analogWrite (speedPin, speed); } if ( turn < 0){ digitalWrite(motor1Pin, HIGH); // set leg 1 of the H-bridge low digitalWrite(motor2Pin, LOW); speed = -turn; analogWrite (speedPin, speed); } Serial.print("Channel 2:"); Serial.println(turn); delay(100); // I put this here just to make the terminal // window happier }
#60110 Télécommander mon robot
Posté par Newbies sur 28 février 2014 - 09:40 dans Electronique
Bref, j'ai donc mes 3 channels qui me donne respectivement une valeur entre 1000 et 2000 en fonction de la position du stick sur la télécommande.
Ce qu'il me reste donc a faire c'est a "maper" c'est valeurs entre -255 et 255 ( dans une variable nommé disons "avancer". Je pourrais ensuite dans mon code dire que, quand mon stick est pousser vers le haut ( commande pour avancer ) la valeur de "avancer" est positive donc mes deux moteur se mette en marche dans le même sens et inversement.
Pour ce qui est de la vitesse, j'ai pensez à, dans mon code, dire que : dans le cas ou "avancer" est positif, la vitesse ( nombre qui doit être compris entre 0 et 255 ) est égal a "avancer". Dans le cas ou "avancer" est négatif, la vitesse est égal à - "avancer".
Je vais essayer ca quand mon Arduino arrêtera de buger...
Cette solution vous parait viable ? Comment l'améliorer ?
Merci
#60102 Télécommander mon robot
Posté par Newbies sur 28 février 2014 - 05:59 dans Electronique
J'ai un projet. J'ai fais il y à peut un petit robot éviteur d'obstacles contrôler par une arduino uno et un petit capteur ultrasonique et j'aimerais pouvoir le télécommander via une télécommande de modélisme 2.4Ghz que j'ai déjà? Celle la pour être précis.
Il faudrait pour cela que j'arrive à convertir les signaux PPM du récepteur pour les convertir en PWM afin de contrôler mes moteurs (si j'ai bien compris ).
J'ai donc fais quelques recherches sur le web et j'ai trouvé quelques tutoriaux notamment sur le site de sparkfun mais cela n'a pas marché pour moi. Lien du tutoriel
En effet, au lieu de m'afficher sur le moniteur série des valeur qui varies entre 1000 et 2000 en fonction de la position des sticks de ma télécommande, j'ai eu le droit à des valeurs aléatoires et souvent exorbitantes ( + de 10 000 )
Voila, donc si quelqu'un à une idée de la raison pour laquel cela n'a pas marché ou si quelqu'un à une autre solution, je suis preneur
Merci d'avance ( Des photos du robot arrive )
Voila le code que j'ai essayer :
/* RC PulseIn Joystick By: Nick Poole SparkFun Electronics Date: 5 License: CC-BY SA 3.0 - Creative commons share-alike 3.0 use this code however you'd like, just keep this license and attribute. Let me know if you make hugely, awesome, great changes. */ int ch1; // Here's where we'll keep our channel values int ch2; int ch3; void setup() { pinMode(5, INPUT); // Set our input pins as such pinMode(6, INPUT); pinMode(7, INPUT); Serial.begin(9600); // Pour a bowl of Serial } void loop() { ch1 = pulseIn(5, HIGH, 25000); // Read the pulse width of ch2 = pulseIn(6, HIGH, 25000); // each channel ch3 = pulseIn(7, HIGH, 25000); if(ch1>1000){Serial.println("Left Switch: Engaged");} if(ch1<1000){Serial.println("Left Switch: Disengaged");} /* I found that Ch1 was my left switch and that it floats around 900 in the off position and jumps to around 1100 in the on position */ Serial.print("Right Stick X:"); // Ch3 was x-axis Serial.println(map(ch3, 1000,2000,-500,500)); // center at 0 Serial.print("Right Stick Y:"); // Ch2 was y-axis Serial.println(map(ch2, 1000,2000,-500,500)); // center at 0 Serial.println(); //make some room delay(100);// I put this here just to make the terminal // window happier }
#60097 Problème robot Arduino
Posté par Newbies sur 28 février 2014 - 01:08 dans Conseils et aide aux débutants, livres et kits en robotique
J'ai finalement changé le CI et c'est la que je me suis rendu compte que je n'avais pas connecté la deuxième masse ( celle attachée au dissipateur ) à la masse commune. R1D1 avait donc raison, il sagissait bien d'un problème de masses
Je posterais des photos du robot que je trouve, pour une fois, assez jolie
Sinon, des idées de fonctions à rajouté sur un petit robot de ce type ? Sachant qu'il est déjà prévu de rajouté d'autres capteurs.
Encore une fois MERCI LES GARS !
#60091 Problème robot Arduino
Posté par Newbies sur 27 février 2014 - 08:59 dans Conseils et aide aux débutants, livres et kits en robotique
EN effet je me suis rendu compte que peut importe le code, il n'y a plus qu'un seul moteur qui marche et il ne marche que dans un seul sens de rotation. J'accuse donc mon CI d'avoir pris un peut chaud ( Il est prevut pour 1.2A par channel max et je tire environ 2A sur chaque ). Qu'en pensez vous ?
De plus, je crois que de part son dysfonctionnement, il entraîne le dysfonctionnement des autres systèmes notamment le capteurs qui arrête de capter quand le moteur se met en marche.
PS: A votre avis il vaut mieux que je change totalement de CI pour prendre un L298N ( Que j'ai jamais été foutu de faire fonctionné ) ou je remplace juste le miens ?
Peut être qu'en réduisant la vitesse des moteurs le courant consommé sera moindre mais comment faire pour réguler la vitesse avec ce CI ?
#60084 Problème robot Arduino
Posté par Newbies sur 27 février 2014 - 04:10 dans Conseils et aide aux débutants, livres et kits en robotique
Est-ce que tu as bien une masse commune pour ton circuit ? Tes soucis ressemblent à un problème de référence (masse). Peux-tu nous montrer le schéma de câblage de ton robot ?
J'ai regardé, à priori j'ai bien toutes les masses connectés ensembles sur mon schéma. Pour ce qui est du cablage de mon robot, c'est exactement Ca que j'ai fait. J'ai regardé d'autres schéma d'utilisation du L293NE et certaine personne connecte les deux " enable pins " directement au 5V de l'arduino. Est ce important ? Et peut t'on toujours contrôler la vitesse des moteurs après ça ?
Ton code me semble globalement bon, par contre, le commentaire pour "distance < 10" ne devrait-il pas être "go left" (ou "go right") ? Puisque si avancer correspond à mettre le pin1 sur LOW et pin2 sur HIGH, ça devrait être l'inverse pour reculer.
Si, tu a raison, je vais modifier ca
PS: J'ai pas trouvé de court circuit au niveau du capteur
- Robot Maker
- → Contenu de Newbies
- Privacy Policy