Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

DIY 2D Motion Racing Simulator

Componenten en benodigdheden

Arduino Nano R3
× 1
SG90 Micro-servomotor
× 2

Benodigde gereedschappen en machines

Soldeerbout (algemeen)

Apps en online services

Arduino IDE

Over dit project

SimTools is een generieke Motion Simulator-software die meerdere hardware-interfaces kan besturen, waaronder Arduino. Deze combinatie wordt gebruikt in het project dat in de video wordt gepresenteerd. Hardware-onderdeel bestaat alleen uit Arduino Nano-microcontroller en twee goedkope SG90 micro-servomotoren. We hoeven alleen de onderstaande code te uploaden.

De benodigde spelgegevens worden met behulp van de SimTools-software via de seriële poort naar de Arduino verzonden. Vervolgens activeert Arduino servomotoren die het simulatieplatform overeenkomstig bewegen. Dit is een kleine schaal van een twee-assige simulator. Om een ​​echte simulator te maken, moet je motordrivers en grote servomotoren toevoegen.

Op de "https://www.xsimulator.net/"-pagina staan ​​veel voorbeelden van dergelijke doe-het-zelf-simulators, evenals constructietekeningen en tips. De installatieprocedure van SimTools wordt beschreven in de video, maar u kunt ook de PDF-gebruikershandleiding downloaden op:https://simtools.us/wp-content/uploads/2019/06/SimToolsUserManual-v2.4.pdf

SimTools zal in "Demo"-modus werken totdat een geldige licentie is geregistreerd. De plug-in voor Live for Speed ​​is volledig operationeel om te testen terwijl SimTools zich in de demo-modus bevindt. (De demo van Live for Speed ​​werkt ook voor het testen van SimTools.) U kunt meer informatie vinden en Live for Speed ​​downloaden op https://www.lfs.net/downloads

SimTools downloadlink:

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

Code

  • Code
CodeC/C++
//********************************************* **********************************************// RC Model Servo// Originele code Door EAROBBIE (Robert Lindsay)// Volledig verminkt door aarondc// Gratis te gebruiken voor Sim Tool Motion Software//******************** ********************************************** *********************#include //#define DEBUG 1 // commentaar op deze regel om debuggin Serial.print linesconst int kActuatorCount te verwijderen =2; // hoeveel actuatoren we verwerken// de letters ("namen") die door Sim Tools zijn verzonden om elke actuator te identificeren// NB:de volgorde van de letters hier bepaalt de volgorde van de resterende constanten kPins en kActuatorScaleconst char kActuatorName[kActuatorCount] ={ 'R', 'L' };const int kPins [kActuatorCount] ={4, 5}; // pinnen waaraan de actuators zijn bevestigdconst int kActuatorScale [kActuatorCount][2] ={ { 0, 179 } , // Right Actuator scaling { 179, 0 } // Linker actuator scaling }; const char kEOL ='~'; // End of Line - het scheidingsteken voor onze acutatorwaarden const int kMaxCharCount =3; // sommige verzekeringen...Servo actuatorSet[kActuatorCount]; // onze reeks Actuatorsint actuatorPosition [kActuatorCount] ={90, 90}; // huidige Actuatorposities, geïnitialiseerd op 90int huidigeActuator; // houd de huidige Actuator bij die wordt ingelezen van seriële portint valueCharCount =0; // hoeveel waardetekens hebben we gelezen (moet kleiner zijn dan kMaxCharCount!!// stel een aantal toestanden in voor onze statusmachine// psReadActuator =het volgende teken van de seriële poort vertelt ons de Actuator// psReadValue =volgende 3 tekens van de seriële poort vertelt ons de waardeenum TPortState {psReadActuator, psReadValue}; TPortState currentState =psReadActuator; void setup () {// bevestig de actuators aan de pinnen voor (int i =0; i  0).void serialEvent() { char tmpChar; int tmpValue; while (Serial.available()) { // if we wachten op een Actuator-naam, pak het hier als (currentState ==psReadActuator) { tmpChar =Serial.read(); // zoek naar onze actuator in de reeks actuatornamen die we hebben ingesteld #ifdef DEBUG Serial.print("inlezen"); Serieel.println(tmpChar); #endif for (int i =0; i  9)) tmpValue =0; actuatorPosition[currentActuator] =actuatorPosition[currentActuator] * 10 + tmpValue; waardeCharCount++; } anders breken; } // als we het waardescheidingsteken hebben gelezen, update dan de Actuator en ga op zoek naar de volgende Actuatornaam if (tmpValue ==kEOL || valueCharCount ==kMaxCharCount) {#ifdef DEBUG Serial.print("inlezen "); Serial.println (actuatorPositie [huidige Actuator]); #endif // schaal de nieuwe positie zodat de waarde tussen 0 en 179 ligt actuatorPosition[currentActuator] =map(actuatorPosition[currentActuator], 0, 255, kActuatorScale[currentActuator][0], kActuatorScale[currentActuator][1]);# ifdef DEBUG Serial.print("geschaald naar "); Serial.println (actuatorPositie [huidige Actuator]); #endif updateActuator(currentActuator); huidigeState =psReadActuator; } } }}// schrijf de huidige actuatorpositie naar de doorgegeven in Actuator void updateActuator (int thisActuator) { actuatorSet [thisActuator].write(actuatorPosition[thisActuator]);}

Schema's


Productieproces

  1. DIY infrarood bewegingssensorsysteem voor Raspberry Pi
  2. DIY LUMAZOID Arduino Music Visualiser
  3. DIY voltmeter met Arduino en smartphone
  4. DIY Virtual Reality Skateboard
  5. Bewegingssensor-waterpistool
  6. DIY Arduino RADIONICS-behandelingsmachine
  7. DIY-idee met RFID
  8. DIY 3-assige CNC VMC
  9. DIY Arduino + GY-906 Infraroodthermometer
  10. DIY Rudder Pedalen voor Flight Simulator
  11. DIY Arduino Hoogtemeetmachine