Lego EV3. movimento della linea nera

Ecco come una persona vede la linea:

Ecco come lo vede il robot:


Utilizzeremo questa funzione durante la progettazione e la programmazione di un robot per la categoria di competizione "Traiettoria".

Esistono molti modi per insegnare a un robot a vedere una linea e a muoversi lungo di essa. Ci sono programmi complessi e programmi molto semplici.

Voglio parlare di un modo di programmare che anche i bambini delle classi 2-3 padroneggiano. A questa età, è molto più facile per loro assemblare le strutture secondo le istruzioni e programmare un robot è un compito difficile per loro. Ma questo metodo consentirà al bambino di programmare il robot su qualsiasi percorso della pista in 15-30 minuti (tenendo conto della verifica e regolazione graduale di alcune caratteristiche della traiettoria).

Questo metodo è stato testato in concorsi municipali e regionali di robotica nella regione di Surgut e nel Khanty-Mansi Autonomous Okrug-Yugra e ha portato la nostra scuola ai primi posti. Lì ero convinto che questo argomento fosse molto rilevante per molte squadre.

Bene, iniziamo.

Quando ci si prepara a questo tipo di competizione, la programmazione è solo una parte della soluzione al problema. Devi iniziare progettando un robot per una pista specifica. Nel prossimo articolo, ti mostrerò come farlo. Bene, poiché il movimento lungo la linea è molto comune, inizierò con la programmazione.

Considera la versione del robot con due sensori di luce, in quanto è più comprensibile per gli studenti delle scuole elementari.

I sensori di luce sono collegati alle porte 2 e 3. Motori alle porte B e C.
I sensori sono posizionati ai bordi della linea (provare a provare a posizionare i sensori a distanze diverse l'uno dall'altro e ad altezze diverse).
Un punto importante. Per il miglior funzionamento di un tale circuito, è opportuno selezionare una coppia di sensori in base ai parametri. Diversamente sarà necessario introdurre un blocco per la correzione dei valori dei sensori.
Installazione dei sensori sul telaio secondo lo schema classico (triangolo), approssimativamente come in figura.

Il programma sarà composto da un piccolo numero di blocchi:


1. Due blocchi di sensore di luce;
2. Quattro blocchi di "Matematica";
3. Due blocchi di motori.

Il robot è controllato da due motori. La potenza di ciascuno è di 100 unità. Per il nostro schema, prenderemo il valore medio della potenza del motore pari a 50. Cioè, la velocità media quando ci muoviamo in linea retta sarà pari a 50 unità. Quando si devia dal movimento rettilineo, la potenza dei motori aumenterà o diminuirà proporzionalmente, a seconda dell'angolo di deviazione.

Ora scopriamo come collegare tutti i blocchi, impostare il programma e cosa accadrà in esso.
Esponiamo due sensori di luce e assegniamo loro le porte 2 e 3.
Prendiamo un blocco di matematica e selezioniamo "Sottrazione".
Colleghiamo i sensori di luce dalle uscite "Intensità" con pneumatici al blocco matematico agli ingressi "A" e "B".
Se i sensori del robot sono installati simmetricamente dal centro della linea del binario, i valori di entrambi i sensori saranno uguali. Dopo la sottrazione, otteniamo il valore - 0.
Il prossimo blocco di matematica verrà utilizzato come coefficiente e dovrai impostare "Moltiplica" in esso.
Per calcolare il coefficiente, è necessario misurare il livello di "bianco" e "nero" utilizzando l'unità NXT.
Supponiamo: bianco -70, nero -50.
Successivamente, calcoliamo: 70-50=20 (differenza tra bianco e nero), 50/20=2,5 (impostiamo il valore medio della potenza quando ci muoviamo in linea retta nei blocchi di matematica su 50. Questo valore più la potenza aggiunta durante la regolazione del movimento dovrebbe essere pari a 100)
Prova a impostare il valore su 2,5 sull'input "A", quindi raccoglilo in modo più accurato.
Collegare l'uscita "Risultato" del precedente blocco matematico "Sottrazione" all'ingresso "B" del blocco matematico "Moltiplicazione".
Poi arriva una coppia: un blocco di matematica (Addizione) e il motore B.
Configurazione del blocco matematico:
L'ingresso "A" è impostato su 50 (metà della potenza del motore).
L'uscita del blocco "Risultato" è collegata tramite bus all'ingresso "Potenza" del motore B.
Dopo il vapore c'è il blocco matematico (sottrazione) e il motore C.
Configurazione del blocco matematico:
L'ingresso "A" è impostato su 50.
L'ingresso "B" è collegato tramite bus all'uscita "Risultato" del blocco di matematica "Moltiplicazione".
L'uscita del blocco "Risultato" è collegata tramite bus all'ingresso "Potenza" del motore C.

Come risultato di tutte queste azioni, riceverai il seguente programma:

Poiché tutto questo funzionerà in un ciclo, aggiungiamo il "Ciclo", selezioniamo e trasferiamo tutto nel "Ciclo".

Ora proviamo a capire come funzionerà il programma e come configurarlo.


Mentre il robot si muove in linea retta, i valori dei sensori sono gli stessi, il che significa che l'uscita del blocco "Sottrai" avrà il valore 0. L'uscita del blocco "Moltiplicazione" dà anche il valore 0. Questo valore viene alimentato in parallelo alla coppia di controllo del motore. Poiché in questi blocchi è impostato il valore 50, l'aggiunta o la sottrazione di 0 non influisce sulla potenza dei motori. Entrambi i motori funzionano alla stessa potenza di 50 e il robot procede in linea retta.

Supponiamo che il binario compia una svolta o che il robot devii da una linea retta. Cosa accadrà?

La figura mostra che l'illuminazione del sensore collegato alla porta 2 (di seguito denominata sensori 2 e 3) aumenta, in quanto si sposta su un campo bianco, e l'illuminazione del sensore 3 diminuisce. Supponiamo che i valori di questi sensori diventino: sensore 2 - 55 unità e sensore 3 - 45 unità.
Il blocco "Sotttrazioni" determinerà la differenza tra i valori dei due sensori (10) e la alimenterà al blocco di correzione (moltiplicazione per un fattore (10 * 2,5 = 25)) e quindi ai blocchi di controllo
motori.
Nel blocco matematico (Addizione) del motore B controllare al valore di velocità media di 50
Verrà aggiunto 25 e verrà applicato un valore di potenza di 75 al motore B.
Nel blocco matematico (Sottrazione) del controllo del motore C, verrà sottratto 25 dal valore di velocità media di 50 e verrà applicato un valore di potenza di 25 al motore C.
Pertanto, la deviazione da una retta verrà corretta.

Se la pista gira bruscamente di lato e il sensore 2 è bianco e il sensore 3 è nero. I valori di illuminazione di questi sensori diventano: sensore 2 - 70 unità e sensore 3 - 50 unità.
Il blocco "Sottrazione" determinerà la differenza tra i valori dei due sensori (20) e la alimenterà al blocco di correzione (20 * 2,5 = 50) e quindi ai blocchi di controllo del motore.
Ora nel blocco di matematica (Addizione) che controlla il motore B, al motore B verrà applicato il valore di potenza 50 +50 =100.
Nel blocco matematico (Sottrazione) del controllo del motore C, al motore C verrà applicato un valore di potenza di 50 - 50 = 0.
E il robot farà una brusca svolta.

Sui campi bianchi e neri, il robot deve muoversi in linea retta. Se ciò non accade, provare ad abbinare sensori con gli stessi valori.

Ora creiamo un nuovo blocco e usiamolo per spostare il robot lungo qualsiasi traccia.
Seleziona il ciclo, quindi nel menu "Modifica", seleziona il comando "Crea il mio blocco".

Nella finestra di dialogo "Block Builder", dai un nome al nostro blocco, ad esempio "Vai", seleziona un'icona per il blocco e fai clic su "FATTO".

Ora abbiamo un blocco che può essere utilizzato nei casi in cui dobbiamo spostarci lungo la linea.

Affinché il robot si muova agevolmente lungo la linea nera, è necessario fargli calcolare la velocità del movimento stesso.

Una persona vede una linea nera e il suo confine chiaro. Il sensore di luce funziona in modo leggermente diverso.

È questa proprietà del sensore di luce - l'incapacità di distinguere chiaramente tra il bordo del bianco e del nero - che utilizzeremo per calcolare la velocità di movimento.

Innanzitutto, introduciamo la nozione di “Punto ideale della traiettoria”.

Le letture del sensore di luce vanno da 20 a 80, il più delle volte su bianco, le letture sono circa 65, su nero, circa 40.

Il punto ideale è un punto condizionale approssimativamente nel mezzo dei colori bianco e nero, in seguito al quale il robot si muoverà lungo la linea nera.

Qui la posizione del punto è fondamentale, tra il bianco e il nero. Non sarà possibile impostarlo esattamente su bianco o nero per motivi matematici, perché - sarà chiaro in seguito.

Empiricamente, abbiamo calcolato che il punto ideale può essere calcolato utilizzando la seguente formula:

Il robot deve muoversi rigorosamente lungo il punto ideale. Se si verifica una deviazione in una delle due direzioni, il robot deve tornare a quel punto.

Componiamo descrizione matematica del problema.

Dati iniziali.

Punto perfetto.

Le letture attuali del sensore di luce.

Risultato.

Potenza del motore B.

Potenza di rotazione del motore C.

Decisione.

Consideriamo due situazioni. Primo: il robot ha deviato dalla linea nera verso la bianca.

In questo caso il robot deve aumentare la potenza di rotazione del motore B e diminuire la potenza del motore C.

In una situazione in cui il robot entra nella linea nera, è vero il contrario.

Più il robot si discosta dal punto ideale, più velocemente deve tornare ad esso.

Ma la creazione di un tale regolatore è un compito piuttosto difficile e non è sempre richiesto nella sua interezza.

Pertanto, abbiamo deciso di limitarci a un regolatore P che risponda adeguatamente alle deviazioni dalla linea nera.

Nel linguaggio della matematica, questo sarebbe scritto come:

dove Hb e Hc sono rispettivamente le potenze totali dei motori B e C,

Hbase: una certa potenza di base dei motori, che determina la velocità del robot. Viene selezionato sperimentalmente, a seconda del design del robot e della nitidezza delle curve.

Itech - letture attuali del sensore di luce.

I id - punto ideale calcolato.

k è il coefficiente di proporzionalità, selezionato sperimentalmente.

Nella terza parte, vedremo come programmarlo nell'ambiente NXT-G.

Algoritmi di controllo per un robot LEGO mobile. Tracciamento della linea con due sensori di luce

Insegnante di istruzione complementare

Kazakova Lyubov Aleksandrovna


Movimento di linea

  • Due sensori di luce
  • Regolatore proporzionale (regolatore P)

Algoritmo per spostarsi lungo la linea nera senza controller proporzionale

  • Entrambi i motori girano con la stessa potenza
  • Se il sensore di luce destro colpisce la linea nera, la potenza del motore sinistro (ad esempio B) diminuisce o si interrompe
  • Se il sensore di luce sinistro colpisce la linea nera, la potenza dell'altro motore (ad esempio C) diminuisce (ritorna in linea), diminuisce o si ferma
  • Se entrambi i sensori sono bianchi o neri, allora c'è un movimento rettilineo

Il movimento è organizzato modificando la potenza di uno dei motori


Esempio di programma per spostarsi lungo la linea nera senza P-controller

Il movimento è organizzato modificando l'angolo di rotazione


  • Il controller proporzionale (P-controller) consente di regolare il comportamento del robot, a seconda di quanto il suo comportamento differisca da quello desiderato.
  • Più il robot devia dal bersaglio, maggiore è la forza necessaria per tornare ad esso.

  • Il controller P viene utilizzato per mantenere il robot in un determinato stato:
  • Tenere la posizione del manipolatore Spostarsi lungo una linea (sensore di luce) Spostarsi lungo un muro (sensore di distanza)
  • Tenere la posizione del manipolatore
  • Movimento della linea (sensore di luce)
  • Muoversi lungo un muro (sensore di distanza)

Tracciamento della linea con un sensore

  • L'obiettivo è spostarsi lungo il confine "bianco-nero"
  • Una persona può distinguere il confine tra bianco e nero. Il robot non può.
  • L'obiettivo per il robot è sul colore grigio

Incroci

Utilizzando due sensori di luce, è possibile organizzare il traffico su percorsi più difficili



Algoritmo per guidare lungo un'autostrada con incroci

  • Entrambi i sensori sono bianchi: il robot guida in linea retta (entrambi i motori girano con la stessa potenza)
  • Se il sensore di luce destro colpisce la linea nera e quello sinistro sulla linea bianca, allora gira a destra
  • Se il sensore di luce sinistro colpisce la linea nera e quello destro colpisce la linea bianca, allora gira a sinistra
  • Se entrambi i sensori sono in nero, si verifica un movimento rettilineo. Puoi contare le intersezioni o eseguire qualche tipo di azione


Il principio di funzionamento del regolatore P

Posizione dei sensori

O=O1-O2


Algoritmo per spostarsi lungo la linea nera con un controller proporzionale

SW \u003d K * (CT)

  • C - valori target (prendere letture dal sensore di luce su bianco e nero, calcolare la media)
  • T - valore corrente - ricevuto dal sensore
  • K è il coefficiente di sensibilità. Più è, maggiore è la sensibilità.



Per visualizzare una presentazione con immagini, design e diapositive, scarica il suo file e aprilo in PowerPoint sul tuo computer.
Contenuto testuale delle diapositive della presentazione:
"Algoritmo per spostarsi lungo una linea nera con un sensore di colore" Cerchio su "Robotica" Insegnante prima di Yezidov Ahmed Elievich A MBU DO "Shelkovskaya CTT" Per studiare l'algoritmo per spostarsi lungo una linea nera, un robot Lego Mindstorms EV3 con un sensore di colore verrà utilizzato Sensore colore Il sensore colore distingue 7 colori e può rilevare l'assenza di colore. Come nell'NXT, può funzionare come sensore di luce.Linea S Robot Competition Field La proposta pista a forma di "S" vi permetterà di condurre un altro interessante test dei robot creati per velocità e reazione. Consideriamo l'algoritmo più semplice per spostarsi lungo una linea nera su un sensore di colore su EV3. Questo algoritmo è il più lento, ma il più stabile. Il robot non si muoverà rigorosamente lungo la linea nera, ma lungo il suo bordo, girando a sinistra e a destra e avanzando gradualmente L'algoritmo è molto semplice: se il sensore vede il nero, il robot gira in una direzione, se vede il bianco nell'altra. Tracciamento di una linea in modalità luce riflessa con due sensori A volte il sensore di colore potrebbe non essere in grado di distinguere molto bene tra bianco e nero. La soluzione a questo problema consiste nell'utilizzare il sensore non in modalità di rilevamento del colore, ma in modalità di rilevamento della luminosità della luce riflessa. In questa modalità, conoscendo i valori del sensore su una superficie scura e chiara, possiamo dire autonomamente cosa sarà considerato bianco e cosa sarà nero. Ora determiniamo i valori di luminosità sulle superfici bianche e nere. Per fare ciò, nel menu del Brick EV3 troviamo la scheda "Brick Applications" Ora sei nella finestra di port view e puoi vedere le letture di tutti i sensori al momento attuale. i nostri sensori dovrebbero illuminarsi di rosso, il che significa che sono in modalità di rilevamento della luce riflessa. Se brillano di blu, nella finestra di visualizzazione della porta sulla porta desiderata, premere il pulsante centrale e selezionare la modalità COL-REFLECT Ora posizioniamo il robot in modo che entrambi i sensori si trovino sopra la superficie bianca. Guardiamo i numeri nelle porte 1 e 4. Nel nostro caso, i valori sono rispettivamente 66 e 71. Questi saranno i valori bianchi dei sensori. Ora posizioniamo il robot in modo che i sensori si trovino sopra la superficie nera. Di nuovo, diamo un'occhiata ai valori delle porte 1 e 4. Abbiamo rispettivamente 5 e 6. Questi sono i significati del nero. Successivamente, modificheremo il programma precedente. Vale a dire, cambiamo le impostazioni degli interruttori. Finché hanno Sensore colore -> Misura -> Colore installato. Dobbiamo impostare il Sensore colore -> Confronto -> Intensità luce riflessa Ora dobbiamo impostare il "tipo di confronto" e il "valore soglia". Il valore di soglia è il valore di alcuni "grigi", i valori al di sotto dei quali considereremo il nero e altro ancora: il bianco. Per la prima approssimazione, è conveniente utilizzare il valore medio tra il bianco e il nero di ciascun sensore. Pertanto, il valore di soglia del primo sensore (porta n. 1) sarà (66+5)/2=35,5. Arrotonda per eccesso a 35. Valore di soglia del secondo sensore (porta n. 4): (71+6)/2 = 38,5. Arrotondiamo per eccesso a 38. Ora impostiamo questi valori rispettivamente in ogni interruttore, ecco tutto, i blocchi con i movimenti rimangono al loro posto invariati, perché se mettiamo il segno " nel "tipo di confronto"<», то все, что сверху (под галочкой) будет считаться черным, а снизу (под крестиком) – белым, как и было в предыдущей программе.Старайтесь ставить датчики так, чтобы разница между белым и черным была как можно больше. Если разница меньше 30 - ставьте датчики ниже. Это было краткое руководство по программированию робота Lego ev3, для движения по черной линии, с одним и двумя датчиками цвета

Il testo dell'opera è collocato senza immagini e formule.
La versione completa dell'opera è disponibile nella scheda "File di lavoro" in formato PDF

Lego Mindstorms EV3

Fase preparatoria

Creazione e calibrazione di un programma

Conclusione

Letteratura

1. Introduzione.

La robotica è uno degli ambiti più importanti del progresso scientifico e tecnologico, in cui i problemi della meccanica e delle nuove tecnologie entrano in contatto con i problemi dell'intelligenza artificiale.

Negli ultimi anni, i progressi della robotica e dei sistemi automatizzati hanno cambiato le aree personali e aziendali della nostra vita. I robot sono ampiamente utilizzati nei trasporti, nell'esplorazione della terra e dello spazio, nella chirurgia, nell'industria militare, nella ricerca di laboratorio, nella sicurezza, nella produzione di massa di beni industriali e di consumo. Possono essere considerati robot anche molti dispositivi che prendono decisioni in base ai dati ricevuti dai sensori, come ad esempio gli ascensori, senza i quali la nostra vita è già impensabile.

Il costruttore di Mindstorms EV3 ci invita ad entrare nell'affascinante mondo dei robot, ad immergerci nel complesso ambiente dell'informatica.

Obiettivo: Imparare a programmare un robot in modo che si muova in linea retta.

    Familiarizza con il costruttore Mindstorms EV3 e il suo ambiente di programmazione.

    Scrivere i programmi per il movimento del robot in linea retta per 30 cm, 1 m 30 cm e 2 m 17 cm.

    Costruttore Mindstorms EV3.

Parti di design - 601 pezzi, servomotore - 3 pezzi, sensore di colore, sensore di movimento, sensore a infrarossi e sensore tattile. Il blocco del microprocessore EV3 è il cervello di LEGO Mindstorms.

Un grande servomotore è responsabile del movimento del robot, che si collega al mattoncino EV3 e fa muovere il robot: andare avanti e indietro, girarsi e guidare lungo una determinata traiettoria. Questo servomotore ha un sensore di rotazione integrato, che consente di controllare in modo molto accurato il movimento del robot e la sua velocità.

Puoi fare in modo che un robot esegua un'azione utilizzando il software EV3. Il programma è composto da vari blocchi di controllo. Lavoreremo con il blocco di movimento.

Il blocco di movimento controlla i motori del robot, lo accende, lo spegne, lo fa funzionare in base ai compiti. È possibile programmare il movimento su un certo numero di giri o gradi.

    Fase preparatoria.

    Creazione di un campo tecnico.

Segneremo il campo di lavoro del robot, utilizzando del nastro isolante e un righello creeremo tre linee lunghe 30 cm - una linea verde, 1 m 15 cm - rossa e 2 m 17 cm - linee nere.

    Calcoli necessari:

Diametro ruota robot - 5 cm 7 mm = 5,7 cm.

Un giro della ruota del robot è uguale alla circonferenza di un cerchio con un diametro di 5,7 cm La circonferenza è trovata dalla formula

Dove r è il raggio della ruota, d è il diametro, π = 3,14

l = 5,7 * 3,14 = 17,898 = 17,9.

Quelli. Per un giro della ruota, il robot percorre 17,9 cm.

Calcola il numero di giri necessari per passare:

N=30: 17,9=1,68.

    1 metro 30 cm = 130 cm

N=130: 17,9=7,26.

    2 m 17 cm = 217 cm.

N = 217: 17,9 = 12,12.

    Creazione e calibrazione del programma.

Creeremo un programma secondo il seguente algoritmo:

Algoritmo:

    Seleziona un blocco di movimento nel software Mindstorms EV3.

    Accendere entrambi i motori nella direzione indicata.

    Attendere che la lettura del sensore di rotazione di uno dei motori cambi al valore specificato.

    Spegnere i motori.

Il programma finito viene caricato nell'unità di controllo del robot. Mettiamo il robot sul campo e premiamo il pulsante di avvio. EV3 attraversa un campo e si ferma alla fine di una determinata linea. Ma per ottenere una finitura accurata, è necessario calibrare, poiché fattori esterni influenzano il movimento.

    Il campo è installato sui banchi degli studenti, quindi è possibile una leggera deflessione della superficie.

    La superficie del campo è liscia, quindi non è esclusa una scarsa adesione delle ruote del robot al campo.

    Nel calcolare il numero dei giri dovevamo arrotondare i numeri, e quindi, cambiando i centesimi dei giri, ottenevamo il risultato voluto.

5. conclusione.

La possibilità di programmare un robot in modo che si muova in linea retta sarà utile per creare programmi più complessi. Di norma, tutte le dimensioni del movimento sono indicate nei termini di riferimento per le competizioni di robotica. Sono necessari affinché il programma non sia sovraccarico di condizioni logiche, loop e altri blocchi di controllo complessi.

Nella fase successiva della conoscenza del robot Lego Mindstorms EV3, imparerai come programmare le svolte a una certa angolazione, il movimento in un cerchio, le spirali.

È molto interessante lavorare con il designer. Imparando di più sulle sue capacità, puoi risolvere qualsiasi problema tecnico. E in futuro, forse, crea i tuoi modelli interessanti del robot Lego Mindstorms EV3.

Letteratura.

    Koposov DG "Il primo passo nella robotica per i gradi 5-6". - M.: Binoma. Laboratorio della conoscenza, 2012 - 286 p.

    Filippov S. A. "Robotica per bambini e genitori" - "Scienza" 2010

    Risorse Internet

    http://lego. rkc-74.ru/

    http://www.9151394.ru/projects/lego/lego6/beliovskaya/

    http://www. Lego. com/educazione/

Caricamento in corso...Caricamento in corso...