Linienfolger più semplice

Ciao Insieme

Oggi vorrei presentarvi un progetto di cui siamo stati a conoscenza attraverso una richiesta del cliente. Costruiamo un semplice robot che segue le linee.

Il progetto è progettato per eseguire il codice sia con i robot a due che con i quattro ruote e rappresenta un compromesso. Per il funzionamento continuo, lo schizzo e l'interconnessione devono essere modificati, in quanto il carico dei quattro motori su un IC è molto elevato.

Con l'aiuto di due sensori, il veicolo distingue tra sfondo bianco e nero e corregge la direzione di viaggio di conseguenza, usiamo i nostri nuovi moduli di sensori senza poti.

Il principio è abbastanza semplice e il codice corrispondente di conseguenza compatto, che ci è piaciuto molto di questo progetto. 

Per questo progetto ho creato un set per voi, questo può essere trovato Qui

Quindi abbiamo bisogno di:

Iniziamo con l'assemblaggio del telaio:

In primo luogo si dovrebbe staccare i fogli protettivi, non abbiamo fatto questo, perché piatti trasparenti possono essere fotografati ancora peggio.

Per un montaggio più facile, è necessario collegare i motori prima dell'installazione.

Per fare questo, cavi di saldatura per le piccole bandiere in ottone dei motori. Dove rosso e nero sono fissati non importa per il momento. Per una breve comprensione: la direzione di marcia dei motori può essere cambiata ruotando il palo. 

Quindi, collegare le staffe per i motori attraverso il telaio.

Quindi fissare i motori cablati con le viti lunghe e chiuse e fissarle con i dadi:

Quindi mettere i bulloni in ottone attraverso la piastra e attaccarli con i dadi chiusi, dove li si collega dipende dal vostro disegno e successivamente l'uso. Le posizioni sono variabili.

Come passo successivo, è già possibile montare la parte superiore e avvitarlo su:

Per una migliore comprensione, ecco una foto dalla pagina:

 

È inoltre possibile determinare dove si collega il controller e in quale direzione segue la linea. Questo completa l'assemblaggio della meccanica. Come passo successivo, si dovrebbe saldare le intestazioni dei pin sullo scudo motore, come mostrato qui nella foto:

Questi sono necessari per poter collegare i sensori in un secondo momento.

I dissioni di calore incollati non sono necessariamente necessari, ma altamente raccomandato. È facilmente possibile distribuire il carico a diversi IC e collegare tutti e quattro i motori separatamente allo scudo (può anche essere cambiato nello Sketch).

Il prossimo è il collegamento dei motori: prima cambiamo insieme i due motori del lato sinistro e del lato destro. Qui si deve provare qualcosa fino a quando i motori di un lato, ei motori dell'altro lato corrono insieme nella stessa direzione. Come già accennato, questo può essere facilmente cambiato scambiando i poli.

Collegare i motori qui:

I connettori sono etichettati sulla scheda con M3 e M4, ciascuno i motori a sinistra su un terminale e quello destro sul secondo terminale.

Ora l'alimentatore: Lo scudo fornisce anche l'alimentazione al microcontrollore.

Le due frecce in basso a destra dell'immagine segnano i connettori per A4 e A5, dove colleghiamo i nostri sensori di seguaci della linea.

Dal momento che abbiamo ristrutturato la nostra robo-car più spesso, abbiamo solo temporaneamente collegato i sensori con nastro adesivo. Il sensore sinistro sul pin A4, il sensore destro sull'A5, come mostrato qui nella foto:

È importante non montare i sensori frontalmente, ma vederli leggermente obliquamente sui fianchi, come si vede nella foto sopra.

Prima di dedicarci al codice che abbiamo preso in prestito da Aarav, abbiamo bisogno di una libreria per lo scudo motore. Abbiamo usato l'Adafruit Libary che si Qui Per trovare.

Ecco il codice:

 

   ////////////////////////////////////////////////////////   LinoBot v1.0 /             
 Di Aarav Garg
////////////////////////////////////////////////////////

Ho aggiunto le possibilità di testare
I valori di analogRead potrebbero essere modificati per la risoluzione dei problemi

comprese le biblioteche
#include <AFMotor.H>

definizione di pin e variabili
# define Sinistre A4 
# define Diritti A5 

definizione dei motori
AF_DCMotor motore1(4, MOTOR12_8KHZ); 
AF_DCMotor motore2(3, MOTOR12_8KHZ);
/*
AF_DCMotor motore3(1 MOTOR12_8KHZ);
AF_DCMotor motore4(2, MOTOR12_8KHZ);
 */

Vuoto Installazione() {   impostazione della velocità dei motori   motore1.setSpeed (setSpeed)(100);   motore2.setSpeed (setSpeed)(100);   dichiarazione di tipi di pin   PinMode (Modalità pin)(Sinistre,Input);   PinMode (Modalità pin)(Diritti,Input);   iniziare la comunicazione seriale   Seriale.Iniziare(9600);    }

Vuoto Ciclo(){   stampa dei valori dei sensori sul monitor seriale   Seriale.println(analogicOLettura(Sinistre));   Seriale.println(analogicOLettura(Diritti));   linea rilevata da entrambi   Se(analogicOLettura(Sinistre)<=400 && analogicOLettura(Diritti)<=400){     Fermare     motore1.Correre(Rilascio);     motore2.Correre(Rilascio);   }   linea rilevata dal sensore sinistro   Altro Se(analogicOLettura(Sinistre)<=400 && !analogicOLettura(Diritti)<=400){     girare a sinistra     motore1.Correre(Indietro);     motore2.Correre(Avanti);     /*
 motor1.run(RELEASE);
 motor2.run (FORWARD);
     */   }   linea rilevata dal sensore destro   Altro Se(!analogicOLettura(Sinistre)<=400 && analogicOLettura(Diritti)<=400){     girare a destra     motore1.Correre(Avanti);     motore2.Correre(Indietro);     /*
 motor1.run (FORWARD);
 motor2.run(RELEASE);
     */   }   linea rilevata da nessuno   Altro Se(!analogicOLettura(Sinistre)<=400 && !analogicOLettura(Diritti)<=400){     Fermare     motore1.Correre(Avanti);     motore2.Correre(Avanti);     /*
 motor1.run(BACKWARD);
 motor2.run(BACKWARD);
     */   }    }


Tra l'altro, i perni analogici sono stati utilizzati perché, a differenza dei perni digitali sullo scudo, sono facilmente accessibili.

Il progetto è progettato per eseguire il codice sia con i robot a due che con i quattro ruote e rappresenta un compromesso. Per il funzionamento continuo, lo schizzo e l'interconnessione devono essere modificati, in quanto il carico dei quattro motori su un IC è molto elevato.

Impostare la direzione di corsa per i motori di trazione può essere un po 'complicato, qui è necessaria un po 'di pazienza.

Divertiti a ricostruire e fino alla prossima volta :) 

 

Für arduinoProjekte für anfängerSensoren

3 Kommentare

Stefan

Stefan

Der set link funktioniert nicht.

Lg

Moritz

Moritz

Hallo,
die vier Motoren sind im Beitrag oben am Shield an M3 und M4 angeschlossen. Das funktioniert bei uns wunderbar, allerdings ist die Last auf den IC recht hoch. Die Last lässt sich bei zusätzlicher Nutzung von M1 und M2 auf dem Shield verteilen, sprich je einen Motor pro Anschluss. Den Sketch müssen Sie dann erweitern, indem Sie die beiden zusätzlichen Motoren zuerst definieren und anschließend mit motor3.run und motor4.run erweitern.

Frank Raddau

Frank Raddau

Hallo,
Wie würde der Sketch und die Verschaltung für eine Dauerbelastung aussehen?
Danke im voraus.

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert