Indholdsfortegnelse:

Arduino 3D -trykt Sumo Bot: 6 trin
Arduino 3D -trykt Sumo Bot: 6 trin

Video: Arduino 3D -trykt Sumo Bot: 6 trin

Video: Arduino 3D -trykt Sumo Bot: 6 trin
Video: Automated control system for mobile robot with usage of LIDAR technology 2024, November
Anonim
Arduino 3D -trykt Sumo Bot
Arduino 3D -trykt Sumo Bot

Så jeg havde en masse dele liggende rundt om mit hus. Jeg ville deltage i en sumokonkurrence om et par måneder, men jeg havde ikke en bot. I stedet for at købe en bot eller bruge et eksisterende design, der ville kræve, at jeg købte ting til projektet, gik jeg videre og lavede min egen bot fra mit eget design ud fra mine egne dele, jeg havde. Du skal bruge følgende til denne vejledning.

  1. En af hver 3D -printet del findes her.
  2. Et 7,4 volt batteri eller to 18650 batterier.
  3. En batteriholder, hvis det er nødvendigt.
  4. Arduino uno.
  5. Arduino uno breakout shield.
  6. USB -kabel til Arduino.
  7. Benchtop strømforsyning (valgfrit).
  8. Oplader (ekstraudstyr).
  9. Ledninger og mange af dem.
  10. Standardgear i metalgear kontinuerlig rotation servoer.
  11. To ir switch sensorer.
  12. 7 cm servo hjul.
  13. Tænd og sluk -kontakt.

Denne kode ændres konstant. Koden til denne robot kan findes her. Dette er den mest opdaterede version af denne projektkode. God fornøjelse!

Trin 1: Montering

Montage
Montage
Montage
Montage
Montage
Montage
  1. Robotten bruger to metalgear -servoer. Du vil skrue dem fast ved hjælp af m3 bolte og møtrikker med servoerne inde i chassiset vendt udad i begge retninger. Der er kun en måde, hvorpå servoerne kan gå ind i robotten, så dette vil være ret lige frem.
  2. Fastgør servohjulene.
  3. Fastgør ir -sensorerne, så de vender nedad foran på robotten. De fastgøres med to skruer gennem M3 -hullerne på forsiden af robotten. Der er slidser i bunden af robotten, som de kan kigge igennem. Du vil være forsigtig, sensorerne tager ikke chassiset op og kan se hele vejen igennem slidserne. Du vil lære mere om dette senere, da vi tester robotten for at se, om dit praktiske arbejde fungerede.
  4. Sæt HC-SR04-sensoren inde i de to huller, der vender uden for robotten indefra. Hullerne er placeret foran på chassiset.
  5. Sæt Arduino Uno inde i chassiset med skjoldet på.
  6. Kør alt sammen i henhold til nedenstående liste.

    1. Strøm fra den valgte strømkilde til afbryderen. Du leder en positiv eller negativ ledning til kontakten. Hvis du vælger det negative lead, vil dette være din grund, mens hvis du vælger det positive lead, der vil være din strømkilde lead. Den anden ledning, afhængigt af om den er positiv eller negativ, vil være din positive eller negative.
    2. Tilslut det positive kabel til vin på Arduino og de postive ledninger på servoerne.
    3. Tilslut jorden til jorden på servoer og Arduino.
    4. Tilslut 5v fra 5 volt regulatoren på Arduino til alle de positive terminaler på hver af sensorerne.
    5. Led sensorerne til jord på Arduino.
    6. Endelig wire pin 7 på Arduino til højre ir sensor, pin 6 til venstre IR sensor, pin 8 til en af servoerne, pin 9 til den sidste servo.

Advarsel: Manglende ledning af robotten korrekt kan føre til, at robotten ryger og ødelægger elektronikken

Trin 2: Første tegn på liv

Advarsel: Tilslut ikke robotten til din computer, mens den er tændt eller med servoerne forbundet. Undladelse af at gøre det kan føre til beskadigelse af din computer

int mode = 3;

Denne kodelinje ovenfor er den afgørende variabel for robotten. Det gør følgende, hvis det er lig med hvert nummer, der er angivet nedenfor.

  1. Mens den er lig med nul, bevæger robotten sig i et bestemt mønster.
  2. Hvis tilstanden er lig med en, udskriver robotten output til computeren for hver af sensorernes aflæsninger.
  3. Når den er lig med to, undgår robotten kanter og forhindringer, hvis den støder på dem.
  4. Robotten bekæmper andre bots.

Dette er robotens forskellige tilstande, der bruges til at teste og hjælpe robotten med at udvikle sig. Du bliver nødt til at ændre "3" til nul for det første trin i denne vejledning.

Upload nu koden til robotten. Du vil se det bevæge sig fremad, baglæns, venstre og højre i den rækkefølge.

Trin 3: Det kan se

int mode = 0;

Skift følgende variabel til "1", hvis det forrige trin er fuldført. Når den nu er tilsluttet din serielle skærm på Arduino, vil den udskrive, hvad din robot ser. "0" Betyder for kantfølere, at den ser noget. "1" Betyder, at det ikke ser nogen kanter. Hvis du bemærker, at logikken er omvendt, skal du notere det for de fremtidige trin.

Du skal ikke bekymre dig om ping -sensoren. Jeg har alligevel ikke fået det til at fungere. Denne robot er under kraftig udvikling.

Trin 4: Det kan undgå kanten af bordet

void Undgå () {

int sensorStateLeft = digitalRead (leftSensor);

int sensorStateRight = digitalRead (rightSensor);

forsinkelse (50);

hvis (Ping.ping_cm ()> = 15 && sensorStateLeft == 0 && sensorStateRight == 0) {

venstre.skrive (0); right.write (90);

}

hvis (Ping.ping_cm () <= 15 && Ping.ping_cm ()! = 0 || sensorStateLeft == 1 || sensorStateRight == 1) {

venstre.skrive (90);

right.write (0); }

}

Denne kode ovenfor er koden, der indkaldes, når tilstand er lig med to. Hvis det foregående trin er fuldført, skal du ændre tilstanden til "2".

Hvis sensorerne er omvendt, er du velkommen til at vende "sensorStateLeft" og "sensorStateRight" i hver af "if" -udsagnene til at svare til et andet tal, end de blev givet, der enten er "1" eller "0".

Nu kan robotten undgå kanten af en sumoarena. Det er næsten klar til kamp. Test den gerne for at se, om den virker eller ej.

Trin 5: BATTLE

Din sumo er klar til kamp nu med et par kodeændringer. Skift tilstand for at være lig med "3" og inverter logikken efter behov i tomrummet "Sumo". Nu skal din robot undgå kanten af arenaen, men kan ikke opdage andre robotter. Det undgår dybest set kanterne på arenaen og bevæger sig hurtigt nok til, at det forhåbentlig kan skubbe en robot ud af kanten af bordet. God fornøjelse!

Trin 6: Konklusion

Din robot er færdig nu. Hvis der er problemer eller kommentarer til dette projekt, er du velkommen til at give mig besked. Jeg er utroligt åben over for åbenhed for feedback, fordi jeg ikke aner, om dette var en veludført tutorial eller ej. God fornøjelse!

Anbefalede: