Table des matières:
- Étape 1: Choses dont vous pourriez avoir besoin…
- Étape 2: connectez le matériel
- Étape 3: programmer l'Arduino
- Étape 4: installer le logiciel
- Étape 5: Utiliser le programme d'interface
- Étape 6: Soyez créatif
Vidéo: Servocontrôleur série basé sur Arduino : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:11
Il s'agit d'un simple contrôleur série pour plusieurs servos basés sur l'Arduino. (mon premier instructable aussi:))
La plupart du travail consistait à faire parler le logiciel avec l'arduino et à créer un protocole pour que les données soient transmises. En ce qui concerne l'aspect matériel, tout ce que j'ai utilisé était deux servos (servo standard Parallax ici.) Un Sparkfun Arduino ProtoShield et un Arduino Duemilanove avec ATMEGA328, mais la plupart de ces pièces peuvent être remplacées par des articles similaires. J'ai pensé ce projet dans le cadre d'un système RC, mais la mise en place de la communication a pris beaucoup de temps. Si quelqu'un a des améliorations, des idées ou des bugs, n'hésitez pas à commenter. EDIT: J'ai écrit ceci il y a quelque temps, je viens de le publier récemment.
Étape 1: Choses dont vous pourriez avoir besoin…
Certaines choses dont vous aurez besoin pour construire ceci. 1. Carte Arduino (au choix) 2. deux (ou un) servos 3. fils de connexion 4. Visual Studio 2008 Express -- lien (facultatif) 5. Arduino IDE -- lien Désolé fans de Linux et Apple, mon programme ne fonctionne que sur windows pour l'instant, mais vous pouvez toujours envoyer manuellement des commandes série à l'arduino sans changer le code.
Étape 2: connectez le matériel
Rien de très complexe à cette étape. Connectez simplement un servo à la broche 9 et l'autre à la broche 10.
Étape 3: programmer l'Arduino
maintenant vous pouvez télécharger le croquis sur l'arduino.
Voici une ventilation simple du code: #include Servo myservo; // crée un objet servo pour contrôler un servo Servo myservo1; int entrantByte = 0, datacount = 0, compteur = 0, prêt = 0; // pour les données série entrantes char data[10]; const char verify[8] = "ma11hew"; commande char[3]; void setup() { myservo.attach(9); monservo1.attach(10); Serial.begin(38400); // ouvre le port série, définit le débit de données Serial.println ("Salut Arduino ici!"); // ajouté pour aider à identifier le port série Cela configure simplement le port série et les servos. int je; for(i = 0; i<180;i++) { monservo.write(i); retard(15); } monservo.write(5); for(i = 0; i<180;i++) { monservo1.write(i); retard(15); } monservo1.write(5); } Mouvement de balayage simple pour vérifier que les servos fonctionnent correctement. boucle vide() { prêt = 0; compteur = 0; while (1==1) { if (Serial.read() != verify[counter]) { break; } if(compteur == 6) { délai(20); command[0] = Serial.read(); commande[1] = Serial.read(); //if (Serial.read() == ((commande[1] * 12) % 8)) // { prêt = 1; //} Serial.println("commande enregistrée"); } compteur ++; retard(2); } cela vérifie la mémoire tampon série pour la chaîne d'autorisation correcte puis récupère deux octets pour la commande. la déclaration if commentée permet une somme de contrôle improvisée mais rendrait difficile l'interfaçage manuel. ready peut être défini sur 0 afin que les commandes ne soient pas analysées, comme dans le cas de données corrompues. //recherche dans les commandes if (ready == 1) { if (command[0] == 'T') { command[0] = 0; Serial.print("commande d'accélérateur sur la broche 9 à: "); Serial.println(map(commande[1], 32, 126, 2, 180), DEC); monservo.write(map(commande[1], 32, 126, 2, 180)); } if (commande[0] == 'S') { commande[0] = 0; Serial.print("commande d'accélérateur sur la broche 10 à: "); Serial.println(map(commande[1], 32, 126, 2, 180), DEC); monservo1.write(map(commande[1], 32, 126, 2, 180)); } } } le reste du code consiste à rechercher command pour les commandes valides (T ou S.) si l'une ou l'autre correspond, il prend l'octet suivant et l'envoie au servo. plus sur la carte (commande[1], 32, 126, 2, 180) plus tard… le code ici est extensible pour tout ce dont vous pourriez avoir besoin (par exemple, lumières, moteurs, IR, etc.) ce code devrait fonctionner correctement sans modifications.
Étape 4: installer le logiciel
J'ai deux manières d'installer ce… programme d'installation nsis: Téléchargez le programme d'installation auto-extractible ci-dessous et exécutez-le. Vous aurez la possibilité d'installer les sources lors de l'installation. le package binaire du programme d'installation installe les dlls c++ de base afin qu'il puisse être exécuté sur un ordinateur sans que visual c++ soit déjà installé. Une fois le programme d'installation terminé, vous pouvez l'exécuter à partir du bureau ou du menu Démarrer. zip way (non vérifié): Téléchargez et exécutez, cela devrait fonctionner. peut être. (L'archive zip a la même structure de dossiers créée par le programme d'installation, sans sources. Je n'ai pas de machine sans studio visuel pour la tester, donc cela peut ne pas fonctionner.)
Étape 5: Utiliser le programme d'interface
Pour utiliser le programme, sélectionnez d'abord le débit en bauds défini dans le croquis arduino. L'esquisse non modifiée par défaut à 38400 bauds, mais peut être modifiée pour répondre à vos besoins pour des choses comme une liaison radio plus lente. note: les débits en bauds supérieurs à 38400 n'ont pas été très stables, je pense que c'est parce que l'uart se remplit avant que les données puissent être traitées. Ensuite, sélectionnez le port COM à utiliser. le programme par défaut est COM4, assurez-vous de le changer ou le programme plantera. Enfin, cliquez sur Ouvrir. Si tout s'est bien passé, le programme ouvrira le port série sélectionné à la vitesse de transmission sélectionnée. Sinon, le programme plantera probablement avec une exception non gérée. assurez-vous que le port est correct et réessayez. Utilisez les zones de texte pour soumettre des commandes directes à l'arduino. La "map (commande[1], 32, 126, 2, 180)" met à l'échelle toutes les 94 commandes possibles, * espace * à ~, lisible par l'arduino en ASCII à 2 à 180 pour le servo. tout octet inférieur à ASCII 32 (espace) ou supérieur à 126 (~) est défini par défaut sur 63 (?) Les barres de piste offrent une interface plus facile pour les commandes directes. chaque étape envoie une commande série à l'arduino de manière incrémentielle.
Étape 6: Soyez créatif
Pensez à des choses sympas à faire avec ça. Quelques idées: 1. Accélérateur à distance pour une voiture. 2. Support de caméra 3D 3. Rover sous-marin Amusez-vous !!
Conseillé:
Système de présence basé sur les empreintes digitales et RFID utilisant Raspberry Pi et la base de données MySQL : 5 étapes
Système de présence basé sur les empreintes digitales et RFID utilisant Raspberry Pi et la base de données MySQL : vidéo de ce projet
Notions de base sur les transistors - Tutoriel sur les transistors de puissance BD139 et BD140 : 7 étapes
Notions de base sur les transistors | Tutoriel sur les transistors de puissance BD139 et BD140 : Hé, quoi de neuf, les gars ! Akarsh ici de CETech.Aujourd'hui, nous allons acquérir des connaissances sur la centrale des circuits de transistors de petite taille mais beaucoup plus gros dans le travail.Fondamentalement, nous allons discuter de quelques bases liées aux transistors et
Générateur de musique basé sur la météo (Générateur Midi basé sur ESP8266): 4 étapes (avec images)
Générateur de musique basé sur la météo (Générateur Midi basé sur ESP8266): Bonjour, aujourd'hui, je vais vous expliquer comment créer votre propre petit générateur de musique basé sur la météo. Il est basé sur un ESP8266, qui ressemble un peu à un Arduino, et il réagit à la température, à la pluie et l'intensité lumineuse. Ne vous attendez pas à ce qu'il fasse des chansons entières ou un programme d'accords
Comment contrôler le commutateur intelligent de base Sonoff basé sur ESP8266 avec un smartphone : 4 étapes (avec photos)
Comment contrôler le commutateur intelligent de base Sonoff basé sur ESP8266 avec un smartphone : Sonoff est une gamme d'appareils pour Smart Home développée par ITEAD. L'un des appareils les plus flexibles et les moins chers de cette gamme est le Sonoff Basic. Il s'agit d'un commutateur compatible Wi-Fi basé sur une excellente puce, ESP8266. Cet article décrit comment configurer le Cl
SmartMirror basé sur le Web utilisant la communication série : 6 étapes
SmartMirror basé sur le Web utilisant la communication série : cette instructable est livrée avec tout le code prêt à l'emploi. Le développement a été très compliqué mais une fois configuré, c'est vraiment facile à personnaliser. Jetez un coup d'œil et profitez-en