Sommario:

Robot Arduino Sumo: 5 passaggi
Robot Arduino Sumo: 5 passaggi

Video: Robot Arduino Sumo: 5 passaggi

Video: Robot Arduino Sumo: 5 passaggi
Video: Sumo robot | Robo sumo | Robot sumo | Arduino robot yasash. робот сумо. Сумо робот @roboshopuz 2024, Novembre
Anonim
Arduino Sumo Robot
Arduino Sumo Robot

Prima di iniziare

Cos'è il robot sumo?

È un robot autocontrollato con dimensioni e caratteristiche specifiche, inoltre è progettato in forme ostili che lo qualificano per partecipare a concorsi e gare con altri robot.

Il nome "sumo" deriva da un vecchio sport giapponese, che consiste nel combattere due avversari in un ring, ognuno dei quali cerca di spingere fuori l'altro avversario, ed è quello che dovrebbero fare anche i robot nelle gare di robotica di sumo, dove due robot posizionati sul ring e l'un l'altro cercando di spingere fuori il suo avversario.

L'idea:

Costruisci un robot con determinate specifiche e commisurato alle leggi di quella competizione (Sumo), questo robot deve essere nelle dimensioni esatte per combattere e sopravvivere per non essere fuori dal ring in alcun modo.

Quindi diamo un'occhiata alle leggi sulla concorrenza del robot Sumo:

Spiegherò alcuni ruoli importanti che dovresti considerare mentre costruisci il tuo SUMO, potrebbe anche aiutarti a immaginare e innovare la tua idea senza entrare nei dettagli profondi.

1. Dimensioni: Larghezza massima 20 cm, Lunghezza massima 20 cm, Altezza non specificata.

2. Forma: la forma del robot può essere modificata dopo l'inizio della gara, ma senza che le parti inseparabili rimangano un unico Oggetto centrale.

3. Peso: non supera i 3 kg.

4. Il robot deve essere autocontrollato.

Passaggio 1: componenti

Image
Image
Usi per ogni componente
Usi per ogni componente

1 Arduino Ano3

2 motore CC

1 L298N Dual H Bridge per Arduino

1 sensore a ultrasuoni

2 IR TCRT5000

1 batteria 9v

Batteria AA 4 * 1,5 v pezzi + Alloggiamento batteria

4 ruote robot

cavi per ponticelli

Passaggio 2: usi per ogni componente

Usi per ogni componente
Usi per ogni componente
Usi per ogni componente
Usi per ogni componente

Ora abbiamo i componenti necessari, quindi entriamo nei dettagli per sapere a cosa serve..

1- Arduino Ano3

È una scheda madre che controlla tutte le parti e la collega insieme

2- Motore CC

Che aiutano il robot a manovrare e muoversi all'interno del ring di COMPETING

4- L298N Dual H Bridge per Arduino

È un piccolo pannello che fornisce tensione costante ai motori, così come il supporto della piastra Arduino con un buon controllo del movimento e della tensione.

5- Sensore a ultrasuoni

Il sensore a ultrasuoni viene utilizzato per localizzare il robot dell'avversario e di solito è posizionato nella parte superiore del robot.

6- IR TCRT5000

Come abbiamo già detto, l'anello da concorso ha una certa dimensione e ha due colori, il riempimento è nero e la cornice è bianca. Il concorrente non deve uscire. Pertanto, utilizziamo il sensore IR per assicurarci che il robot non sia fuori dal ring. Questo sensore ha la capacità di distinguere tra i colori dell'anello).

7- Batteria 9v

Supporta la scheda madre (Arduino) con la tensione importante.

8- Batteria AA 4 * 1,5 v pezzi + Alloggiamento batteria

Supporta i due motori (DC Motor) con la tensione importante e deve essere separato per dare la piena forza alle ruote.

9- Ponticelli

Passaggio 3: progettazione

Design
Design
Design
Design

Ho realizzato due progetti di robot sumo utilizzando Google 3D sketch-up perché mi piace creare modelli di carta dei miei robot prima di ritagliare parti di acrilico sulla taglierina laser. Per verificare che tutte le parti combacino correttamente, è importante che i modelli di carta vengano stampati con le dimensioni esatte dei disegni.

E prendo in considerazione di essere in una misura specifica con le leggi sulla concorrenza, quindi prova a pensare in un design più creativo e fai il tuo modello.

Per essere più sensibili al peso del robot, inserire o quindi inserire le batterie nella parte anteriore del robot con lo scudo anteriore a un angolo di 45 gradi rispetto alla forma del robot.

Scarica il disegno 1 da qui

Scarica il disegno 2 da qui

Puoi anche scaricare il modello del modello di carta

Apri il file PDF con Adobe Acrobat Reader (software consigliato)

Passaggio 4: strategia di gioco

Image
Image
Strategia di gioco
Strategia di gioco

Come accennato in precedenza, il robot deve avere la propria capacità di controllarsi da solo, quindi ci dà la possibilità di programmarlo in più di un modo, a seconda di come vuoi che il robot giochi sul ring proprio come qualsiasi avversario in vuole davvero vincere la partita.

Strategia di gioco (1):

· Faremo il robot intorno a se stesso continuamente.

· Il robot misura sempre la distanza continuamente durante la rotazione.

· Se la distanza dell'avversario misurata è inferiore a (10 cm per esempio), significa che l'avversario si trova di fronte al robot noi direttamente.

· Il robot deve smettere di ruotare e quindi iniziare l'attacco (andare avanti con tutta la forza rapidamente).

· Il robot deve sempre prendere le letture dai sensori IR per essere sicuro che non abbiamo attraversato il confine dell'anello.

· Se Lettura di presenza IR di colore bianco, deve muovere il robot direttamente nella direzione opposta al sensore (ad esempio: Se il sensore anteriore, che dava l'indicazione del colore bianco del robot, si sposta all'indietro)!

Strategia di gioco (2):

· All'inizio il robot misura la distanza davanti.

· Il robot si sposta indietro della stessa distanza misurata.

· Il robot smette di ruotare e poi inizia ad attaccare improvvisamente (vai avanti con tutta la forza).

· In caso di attacco dell'avversario, il robot deve ruotare di 45 gradi mentre per sopravvivere se cade dal ring.

· Il robot deve sempre prendere le letture dai sensori IR per essere sicuro che non abbiamo attraversato il confine dell'anello.

· Se Lettura di presenza IR di colore bianco, deve muovere il robot direttamente nella direzione opposta al sensore (ad esempio: Se il sensore anteriore, che dava l'indicazione del colore bianco del robot, si sposta all'indietro)!

Passaggio 5: programmazione

Programmazione
Programmazione

si prega di controllare il circuito e il codice

*Aggiornamento 2019-03-26

Scarica prima la libreria Ultrasonic da qui e installala:

github.com/ErickSimoes/Ultrasonic/blob/mas…

/*

di ahmed Azouz

www.instructables.com/id/How-to-Make-Ardu…

Scarica prima la lib da qui

github.com/ErickSimoes/Ultrasonic/blob/ma…

*/

#include Ultrasonic.h

Ultrasuoni ad ultrasuoni(4, 3);

const int IN1=5;

const int IN2=6; const int IN3=9; const int IN4=10; #define IR_sensor_front A0 // sensore anteriore #define IR_sensor_back A1 // sensore posteriore int distanza;

configurazione nulla()

{ Serial.begin(9600); ritardo (5000); // come da ruoli compat sumo } void loop() { int IR_front = analogRead(IR_sensor_front); int IR_back = analogRead(IR_sensor_back); distanza = ultrasonic.read(); RUOTA(200); // avvia la memoria if (distanza < 20){ Stop(); while (distanza 650 || IR_back > 650) { break;} delay(10); } if (IR_front < 650) // < 650 significa linea bianca { Stop(); ritardo (50); INDIETRO(255); ritardo (500); } if (IR_back < 650) // { Stop(); ritardo (50); AVANTI(255); ritardo (500); } /* ----------- debugging ---------------- Serial.print(ultrasonic. Ranging(CM)); Serial.println("cm"); Serial.println("IR anteriore:"); Serial.println(IR_front); Serial.println("IR indietro:"); Serial.println(IR_back); */

} //--------------------------------------------

void FORWARD (int Speed){ //Quando vogliamo che Motor To si muova in avanti, // annulla semplicemente questa parte nella sezione loop. analogWrite(IN1, Velocità); analogWrite(IN2, 0); analogWrite(IN3, 0); analogWrite(IN4, Velocità); }//--------------- void INDIETRO (int Speed){ //Quando vogliamo che Motor To si muova in avanti, // annulla semplicemente questa parte nella sezione loop. analogWrite(IN1, 0); analogWrite(IN2, Velocità); analogWrite(IN3, Velocità); analogWrite(IN4, 0); }//--------------- void ROTATE (int Speed) { //Quando vogliamo lasciare che il motore ruoti, // semplicemente annulla questa parte nella sezione del ciclo. analogWrite(IN1, Velocità); analogWrite(IN2, 0); analogWrite(IN3, Velocità); analogWrite(IN4, 0); }//--------------- void Stop(){ //Quando vogliamo che il motore si fermi, // annulla semplicemente questa parte nella sezione del ciclo. analogWrite(IN1, 0); analogWrite(IN2, 0); analogWrite(IN3, 0); analogWrite(IN4, 0); }

Consigliato: