Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Simulateur DIY 2D Motion Racing

Composants et fournitures

Arduino Nano R3
× 1
Micro-servomoteur SG90
× 2

Outils et machines nécessaires

Fer à souder (générique)

Applications et services en ligne

Arduino IDE

À propos de ce projet

SimTools est un logiciel générique de simulation de mouvement capable de contrôler plusieurs interfaces matérielles, y compris Arduino. Cette combinaison est utilisée dans le projet présenté dans la vidéo. La partie matérielle se compose uniquement d'un microcontrôleur Arduino Nano et de deux micro servomoteurs SG90 bon marché. Nous avons seulement besoin de télécharger le code ci-dessous.

Les données de jeu requises à l'aide du logiciel SimTools sont transmises via le port série à l'Arduino. Ensuite, Arduino active des servomoteurs qui déplacent la plate-forme de simulation en conséquence. Il s'agit d'une petite échelle d'un simulateur à deux axes. Pour faire un vrai simulateur, vous devez ajouter des pilotes de moteur et de gros servomoteurs.

Il existe de nombreux exemples de ces simulateurs de bricolage ainsi que des dessins de construction et des conseils sur la page "https://www.xsimulator.net/". La procédure d'installation de SimTools est décrite dans la vidéo, mais vous pouvez également télécharger le manuel d'utilisation au format PDF sur :https://simtools.us/wp-content/uploads/2019/06/SimToolsUserManual-v2.4.pdf

SimTools fonctionnera en mode « Démo » jusqu'à ce qu'une licence valide ait été enregistrée. Le plugin pour Live for Speed ​​est pleinement opérationnel pour les tests pendant que SimTools est en mode démo. (La démo de Live for Speed ​​fonctionnera également pour tester SimTools.) Vous pouvez trouver plus d'informations et télécharger Live for Speed ​​sur https://www.lfs.net/downloads

Lien de téléchargement SimTools :

https://www.xsimulator.net/community/marketplace/motion-simulation-software-simtools.63/

Code

  • Code
CodeC/C++
//************************************************ ************************************************** // RC Modèle Servo// Code d'origine par EAOROBBIE (Robert Lindsay)// Complètement mutilé par aarondc// Pour une utilisation gratuite pour Sim Tool Motion Software//************************ ******************************************************** **********************#include //#define DEBUG 1 // commentez cette ligne pour supprimer le debuggin Serial.print linesconst int kActuatorCount =2 ; // combien d'actionneurs nous gérons// les lettres ("noms") envoyées par Sim Tools pour identifier chaque actionneur// NB :l'ordre des lettres détermine ici l'ordre des constantes restantes kPins et kActuatorScaleconst char kActuatorName[kActuatorCount] ={ 'R', 'L' };const int kPins[kActuatorCount] ={4, 5}; // broches auxquelles les actionneurs sont attachésconst int kActuatorScale[kActuatorCount][2] ={ { 0, 179 } , // Mise à l'échelle de l'actionneur droit { 179, 0 } // Mise à l'échelle de l'actionneur gauche } ; const char kEOL ='~'; // Fin de ligne - le délimiteur pour nos valeurs d'acutator const int kMaxCharCount =3; // de l'assurance...Servo activateurSet[kActuatorCount]; // notre tableau d'Actuatorsint activatePosition[kActuatorCount] ={90, 90}; // positions actuelles de l'actionneur, initialisées à 90int currentActuator ; // garde une trace de l'actionneur actuel lu à partir du port série valueCharCount =0; // combien de caractères de valeur avons-nous lus (doit être inférieur à kMaxCharCount!!// configurer certains états pour notre machine d'état// psReadActuator =le prochain caractère du port série nous indique l'actionneur// psReadValue =les 3 prochains caractères du port série nous indique le valueenum TPortState { psReadActuator, psReadValue }; TPortState currentState =psReadActuator;void setup(){ // attache les actionneurs aux broches pour (int i =0; i 0).void serialEvent() { char tmpChar; int tmpValue; while (Serial.available()) { // if nous attendons un nom d'actionneur, saisissez-le ici if (currentState ==psReadActuator) { tmpChar =Serial.read(); // recherchez notre actionneur dans le tableau des noms d'actionneurs que nous avons configurés #ifdef DEBUG Serial.print("read in "); Serial.println(tmpChar); #endif for (int i =0; i 9)) tmpValue =0; ActuatorPosition[currentActuator] =actuatorPosition[currentActuator] * 10 + tmpValue ; valueCharCount++ ; } sinon pause ; } // si nous avons lu le délimiteur de valeur, mettez à jour l'actionneur et commencez à rechercher le prochain nom de l'actionneur if (tmpValue ==kEOL || valueCharCount ==kMaxCharCount) {#ifdef DEBUG Serial.print("read in "); Serial.println(actuatorPosition[currentActuator]); #endif // redimensionne la nouvelle position pour que la valeur soit comprise entre 0 et 179.actuatorPosition[currentActuator] =map(actuatorPosition[currentActuator], 0, 255, kActuatorScale[currentActuator][0], kActuatorScale[currentActuator][1]);# ifdef DEBUG Serial.print("scaled to "); Serial.println(actuatorPosition[currentActuator]); #endif updateActuator(currentActuator); currentState =psReadActuator; } } }}// écrit la position actuelle de l'actionneur dans l'actuateur void updateActuator(int thisActuator) { actuatorSet[thisActuator].write(actuatorPosition[thisActuator]);}

Schémas


Processus de fabrication

  1. Système de capteur de mouvement infrarouge DIY pour Raspberry Pi
  2. Visualiseur de musique Arduino DIY LUMAZOID
  3. Voltmètre DIY utilisant Arduino et Smartphone
  4. Planche à roulettes en réalité virtuelle DIY
  5. Pistolet à eau à détecteur de mouvement
  6. Traitement DIY Arduino RADIONICS MMachine
  7. Idée de bricolage avec RFID
  8. VMC CNC 3 axes bricolage
  9. DIY Arduino + thermomètre infrarouge GY-906