Program til robot ev3, der kører langs en linje. Internationale robotkonkurrencer - Regler - Eksempler på robotter - Banerobot baseret på LEGO EV3. Eksempel på hvordan algoritmen fungerer

Farvelægning

For at få robotten til at bevæge sig jævnt langs den sorte linje, skal du tvinge den til at beregne selve bevægelseshastigheden.

En person ser en sort streg og dens klare grænse. Lyssensoren fungerer lidt anderledes.

Det er denne egenskab ved lyssensoren - manglende evne til klart at skelne mellem hvid og sort - som vi vil bruge til at beregne bevægelseshastigheden.

Lad os først introducere begrebet "Ideelt banepunkt."

Lyssensoraflæsninger spænder fra 20 til 80, oftest på hvid er aflæsningerne cirka 65, på sort omkring 40.

Det ideelle punkt er et konventionelt punkt omtrent i midten af ​​de hvide og sorte farver, hvorefter robotten vil bevæge sig langs den sorte linje.

Her er punktets placering fundamental - mellem hvid og sort. Det vil af matematiske årsager ikke være muligt at indstille den nøjagtigt til hvid eller sort; hvorfor vil blive klart senere.

Empirisk har vi beregnet, at det ideelle punkt kan beregnes ved hjælp af følgende formel:

Robotten skal bevæge sig strengt langs det ideelle punkt. Hvis der er en afvigelse i nogen retning, skal robotten vende tilbage til det punkt.

Lad os komponere matematisk beskrivelse af problemet.

Indledende data.

Ideelt punkt.

Aktuelle lyssensoraflæsninger.

Resultat.

Motorens rotationseffekt V.

Motorens rotationseffekt C.

Løsning.

Lad os overveje to situationer. Først: robotten afveg fra den sorte linje mod den hvide linje.

I dette tilfælde skal robotten øge rotationseffekten af ​​motor B og reducere effekten af ​​motor C.

I en situation, hvor robotten går ind i den sorte linje, er det modsatte tilfældet.

Jo mere robotten afviger fra det ideelle punkt, jo hurtigere skal den vende tilbage til det.

Men at skabe en sådan regulator er en ret vanskelig opgave, og det er ikke altid nødvendigt i sin helhed.

Derfor besluttede vi at begrænse os til kun P-regulatoren, som reagerer tilstrækkeligt på afvigelser fra den sorte linje.

I matematisk sprog vil det blive skrevet således:

hvor Hb og Hc er slutpotenserne for henholdsvis motor B og C,

Base – en vis basiseffekt af motorerne, der bestemmer robottens hastighed. Det vælges eksperimentelt, afhængigt af robottens design og skarpheden af ​​svingene.

Itek – aktuelle aflæsninger af lyssensoren.

Iid – beregnet idealpunkt.

k – proportionalitetskoefficient, udvalgt eksperimentelt.

I tredje del vil vi se på, hvordan man programmerer dette i NXT-G-miljøet.

Værkets tekst er opslået uden billeder og formler.
Fulde version arbejde er tilgængeligt på fanen "Arbejdsfiler" i PDF-format

Lego Mindstorms EV3

Forberedende fase

Programoprettelse og kalibrering

Konklusion

Litteratur

1. Introduktion.

Robotics er en af ​​de de vigtigste områder videnskabelige og teknologiske fremskridt, hvor problemerne med mekanik og nye teknologier kommer i kontakt med problemerne med kunstig intelligens.

Bag de sidste år fremskridt inden for robotteknologi og automatiserede systemerændret personlig og forretningssfære vores liv. Robotter er meget udbredt inden for transport, jord- og rumudforskning, kirurgi, militærindustrien, laboratorieforskning, sikkerhed, masseproduktion industrivarer og forbrugsgoder. Mange enheder, der træffer beslutninger baseret på data modtaget fra sensorer, kan også betragtes som robotter – som for eksempel elevatorer, uden hvilke vores liv allerede er utænkeligt.

Mindstorms EV3-konstruktøren inviterer os til at komme ind fascinerende verden robotter, fordyb dig i informationsteknologiens komplekse miljø.

Mål: Lær at programmere robotten til at bevæge sig i en lige linje.

    Bliv bekendt med Mindstorms EV3-designeren og dens programmeringsmiljø.

    Skriv programmer til, at robotten kan bevæge sig i en lige linje ved 30 cm, 1 m 30 cm og 2 m 17 cm.

    Mindstorms EV3 konstruktør.

Designerdele - 601 stk., servomotor - 3 stk., farvesensor, touch bevægelsessensor, infrarød sensor og en berøringssensor. EV3-mikroprocessorenheden er hjernen i LEGO Mindstorms-konstruktøren.

En stor servomotor er ansvarlig for robottens bevægelse, som er forbundet med EV3-mikrocomputeren og får robotten til at bevæge sig: Gå frem og tilbage, drej og kør ad en given sti. Denne servomotor har en indbygget rotationssensor, som giver dig mulighed for meget præcist at styre robottens bevægelse og hastighed.

Du kan tvinge robotten til at udføre en handling vha computerprogram EV3. Programmet består af forskellige kontrolblokke. Vi vil arbejde med bevægelsesblokken.

Bevægelsesblokken styrer robottens motorer, tænder, slukker og får den til at fungere i overensstemmelse med de tildelte opgaver. Du kan programmere bevægelsen til et bestemt antal omdrejninger eller grader.

    Forberedende fase.

    Oprettelse af et teknisk felt.

Lad os påføre markeringer på robottens arbejdsområde ved hjælp af elektrisk tape og en lineal til at skabe tre linjer 30 cm lange - grøn linje, 1 m 15 cm - rød og 2 m 17 cm - sort linje.

    Nødvendige beregninger:

Robothjulets diameter er 5 cm 7 mm = 5,7 cm.

En omdrejning af robothjulet er lig med længden af ​​en cirkel med en diameter på 5,7 cm. Vi finder omkredsen ved hjælp af formlen

Hvor r er hjulets radius, d er diameteren, π = 3,14

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

De der. For en omdrejning af hjulet kører robotten 17,9 cm.

Lad os beregne antallet af omdrejninger, der kræves for at køre:

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

    1 m 30 cm = 130 cm

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

    2 m 17 cm = 217 cm.

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

    Oprettelse og kalibrering af programmet.

Vi laver programmet ved hjælp af følgende algoritme:

Algoritme:

    Vælg en bevægelsesblok i Mindstorms EV3-programmet.

    Tænd for begge motorer i den givne retning.

    Vent på, at aflæsningen af ​​rotationssensoren på en af ​​motorerne ændrer sig til den angivne værdi.

    Sluk for motorerne.

Vi indlæser det færdige program i robotkontrolenheden. Vi placerer robotten på banen og trykker på startknappen. EV3 kører på tværs af marken og stopper for enden af ​​en given linje. Men for at opnå en nøjagtig finish skal du udføre kalibrering, da bevægelsen er påvirket af eksterne faktorer.

    Feltet monteres på elevborde, så en let afbøjning af overfladen er mulig.

    Markens overflade er glat, så en dårlig vedhæftning af robottens hjul til marken er mulig.

    Ved beregningen af ​​antallet af omdrejninger var vi nødt til at runde tallene, og derfor opnåede vi det ønskede resultat ved at ændre hundrededele i omdrejninger.

5. Konklusion.

Evnen til at programmere en robot til at bevæge sig i en lige linje vil være nyttig til at skabe mere komplekse programmer. Som regel i tekniske specifikationer robotkonkurrencer, er alle dimensioner af bevægelse angivet. De er nødvendige, så programmet ikke overbelastes med logiske forhold, sløjfer og andre komplekse kontrolblokke.

På næste trin af at lære Lego Mindstorms EV3-robotten at kende, bliver du nødt til at lære at programmere sving i en bestemt vinkel, bevægelse i en cirkel og spiraler.

At arbejde med designeren er meget interessant. Ved at lære mere om dens muligheder kan du løse ethvert teknisk problem. Og i fremtiden, måske, skab din egen interessante modeller Lego Mindstorms EV3 robot.

Litteratur.

    Koposov D. G. "Det første skridt i robotteknologi for klasse 5-6." - M.: Binom. Videnlaboratoriet, 2012 - 286 s.

    Filippov S. A. "Robotik for børn og forældre" - "Science" 2010

    Internetressourcer

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

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

    http://www. lego dk/uddannelse/

En af de grundlæggende bevægelser i let konstruktion er at følge den sorte linje.

Generel teori og konkrete eksempler Oprettelsen af ​​programmet er beskrevet på webstedet wroboto.ru

Jeg vil beskrive, hvordan vi implementerer dette i EV3-miljøet, da der er forskelle.

Det første, robotten skal vide, er betydningen af ​​det "ideelle punkt", der er placeret på grænsen mellem sort og hvid.

Placeringen af ​​den røde prik i figuren svarer nøjagtigt til denne position.

Den ideelle beregningsmulighed er at måle de sorte og hvide værdier og tage det aritmetiske gennemsnit.

Du kan gøre dette manuelt. Men ulemperne er umiddelbart synlige: Over selv en kort periode kan belysningen ændre sig, og den beregnede værdi vil være forkert.

Så du kan få en robot til at gøre det.

Under forsøgene fandt vi ud af, at det ikke er nødvendigt at måle både sort og hvid. Kun hvid kan måles. Og den ideelle pointværdi beregnes som den hvide værdi divideret med 1,2 (1,15), afhængigt af bredden af ​​den sorte linje og robottens hastighed.

Den beregnede værdi skal skrives til en variabel for at få adgang til den senere.

Beregning af det "ideelle punkt"

Den næste parameter involveret i bevægelse er rotationskoefficienten. Jo større den er, jo skarpere reagerer robotten på ændringer i belysningen. Men for meget stor betydning vil få robotten til at vakle. Værdien vælges eksperimentelt individuelt for hvert robotdesign.

Den sidste parameter er motorernes basiseffekt. Det påvirker robottens hastighed. Forøgelse af bevægelseshastigheden fører til en stigning i robottens responstid på ændringer i belysningen, hvilket kan føre til afvigelse fra banen. Værdien vælges også eksperimentelt.

For nemheds skyld kan disse parametre også skrives ind i variabler.

Drejningsforhold og basiseffekt

Logikken ved at bevæge sig langs den sorte linje er som følger: afvigelsen fra det ideelle punkt måles. Jo større den er, jo stærkere skal robotten stræbe efter at vende tilbage til den.

For at gøre dette beregner vi to tal - effektværdien af ​​hver af motorerne B og C separat.

I formelform ser det sådan ud:

Hvor Isens er værdien af ​​lyssensorens aflæsninger.

Endelig implementeringen i EV3. Det er mest bekvemt at arrangere det i form af en separat blok.

Implementering af algoritmen

Dette er præcis den algoritme, der blev implementeret i robotten til mellemkategorien af ​​WRO 2015

Algoritmer til styring af en mobil LEGO robot. Linjebevægelse med to lyssensorer

Yderligere uddannelseslærer

Kazakova Lyubov Alexandrovna


Bevægelse langs linjen

  • To lyssensorer
  • Proportional controller (P-controller)

Algoritme til at bevæge sig langs den sorte linje uden en proportional controller

  • Begge motorer roterer med samme kraft
  • Hvis den højre lyssensor rammer den sorte streg, så falder eller stopper effekten af ​​den venstre motor (for eksempel B)
  • Hvis den venstre lyssensor rammer den sorte linje, så falder effekten af ​​en anden af ​​motorerne (for eksempel C) (vender tilbage til linjen), falder eller stopper
  • Hvis begge sensorer er på hvid eller sort, så retlinet bevægelse

Bevægelsen organiseres ved at ændre effekten af ​​en af ​​motorerne


Eksempel på et program til at køre langs en sort linje uden P-controller

Bevægelse organiseres ved at ændre rotationsvinklen


  • En proportional controller (P-controller) giver dig mulighed for at justere robottens adfærd afhængigt af, hvor meget dens adfærd afviger fra den ønskede.
  • Jo mere robotten afviger fra målet, jo flere kræfter skal den til for at vende tilbage til det.

  • P-controlleren bruges til at holde robotten i en bestemt tilstand:
  • Holder manipulatorens position Bevægelse langs en linje (lyssensor) Bevægelse langs en væg (afstandssensor)
  • Holder manipulatorens position
  • Linjebevægelse (lyssensor)
  • Bevægelse langs væggen (afstandssensor)

Linjebevægelse med en sensor

  • Målet er at bevæge sig langs den "hvid-sorte" grænse
  • En person kan skelne grænsen mellem hvid og sort. En robot kan ikke.
  • Målet for robotten er i gråt

Kørsel gennem kryds

Ved brug af to lyssensorer er det muligt at organisere bevægelse langs mere komplekse ruter



Algoritme til kørsel ad en motorvej med vejkryds

  • Begge sensorer er på hvidt - robotten kører ligeud (begge motorer roterer med samme kraft)
  • Hvis den højre lyssensor rammer den sorte linje og den venstre den hvide linje, så sker der en højresving
  • Hvis den venstre lyssensor rammer den sorte linje, og den højre rammer den hvide linje, så drejer den til venstre
  • Hvis begge sensorer er sorte, opstår der lineær bevægelse. Du kan tælle vejkryds eller udføre enhver handling


Funktionsprincip for P-regulatoren

Sensor position

O=01-02


Algoritme til at bevæge sig langs den sorte linje med en proportional controller

HC = K*(C-T)

  • Ts - målværdier (tag aflæsninger fra lyssensoren på hvid og sort, beregn gennemsnittet)
  • T - strømværdi - opnået fra sensoren
  • K - følsomhedskoefficient. Jo mere, jo højere følsomhed


I denne lektion vil vi fortsætte med at udforske brugen af ​​farvesensoren. Materialet præsenteret nedenfor er meget vigtigt for yderligere undersøgelse af robotteknologikurset. Efter vi lærer, hvordan man bruger alle konstruktørens sensorer Lego mindstorms EV3, når vi løser mange praktiske problemer, vil vi stole på den viden, vi har opnået i denne lektion.

6.1. Farvesensor - tilstanden "Reflekteret lysstyrke".

Så vi begynder at studere den næste funktionsmåde for farvesensoren, som kaldes "Lysstyrke af reflekteret lys". I denne tilstand retter farvesensoren en strøm af rødt lys mod en nærliggende genstand eller overflade og måler mængden af ​​reflekteret lys. Mørkere genstande vil absorbere lysstrømmen, så sensoren vil vise en lavere værdi sammenlignet med lysere overflader. Sensorværdiområdet måles fra 0 (meget mørkt) til 100 (meget lys). Denne funktionsmåde for farvesensoren bruges i mange robotopgaver, for eksempel til at organisere bevægelsen af ​​en robot langs en given rute langs en sort linje trykt på en hvid belægning. Når du bruger denne tilstand, anbefales det at placere sensoren, så afstanden fra den til overfladen, der undersøges, er cirka 1 cm (fig. 1).

Ris. 1

Lad os gå videre til praktiske øvelser: farvesensoren er allerede installeret på vores robot og er rettet ned til overfladen af ​​belægningen, langs hvilken vores robot vil bevæge sig. Afstanden mellem sensoren og gulvet er som anbefalet. Farvesensoren er allerede tilsluttet porten "2" EV3 modul. Lad os indlæse programmeringsmiljøet, forbinde robotten med miljøet og, for at tage målinger, bruge feltet med farvede striber, som vi lavede til at udføre opgaverne i afsnit 5.4 i lektion nr. 5. Lad os installere robotten, så farvesensoren er placeret over den hvide overflade. "Hardwareside" skift programmeringsmiljøet til tilstand "Se porte" (fig. 2, punkt 1). I denne tilstand kan vi observere alle de forbindelser, vi har lavet. På Ris. 2 forbindelse til porte vises "B" Og "C" to store motorer, og til havnen "2" - farvesensor.

Ris. 2

For at vælge en mulighed for visning af sensoraflæsninger skal du klikke på sensorbilledet og vælge den ønskede tilstand (Fig. 3)

Ris. 3

Ris. 2 pos. 2 vi ser, at værdien af ​​farvesensorens aflæsning over den hvide overflade er 84 . I dit tilfælde kan du få en anden værdi, fordi den afhænger af overfladematerialet og belysningen inde i rummet: En del af belysningen, der reflekteres fra overfladen, rammer sensoren og påvirker dens aflæsninger. Efter at have installeret robotten, så farvesensoren er placeret over den sorte stribe, registrerer vi dens aflæsninger (Fig. 4). Prøv selv at måle værdierne for reflekteret lys over de resterende farvebånd. Hvilke værdier fik du? Skriv dit svar i kommentarerne til denne lektion.

Ris. 4

Lad os nu løse praktiske problemer.

Opgave #11: Det er nødvendigt at skrive et program til bevægelse af en robot, der stopper, når den når den sorte linje.

Løsning:

Eksperimentet viste os, at når vi krydser den sorte linje, var værdien af ​​farvesensoren i tilstanden "Lysstyrke af reflekteret lys" lige med 6 . Altså at præstere Opgave nr. 11 vores robot skal bevæge sig i en lige linje, indtil den ønskede værdi af farvesensoren bliver mindre 7 . Lad os bruge en programblok, som vi allerede kender "Forventning" Orange palet. Lad os vælge driftstilstanden for softwareblokken, der kræves af problemforholdene "Venter" (fig. 5).

Ris. 5

Det er også nødvendigt at konfigurere parametrene for programblokken "Forventning". Parameter "Sammenligningstype" (fig. 6, punkt 1) kan tage følgende værdier: "Lige med"=0, "Ikke lige"=1, "Mere"=2, "Mere eller lige"=3, "Mindre"=4, "mindre eller lige"=5. I vores tilfælde, lad os indstille "Sammenligningstype" i betydning "Mindre". Parameter "Tærskelværdi" sæt lig 7 (fig. 6, punkt 2).

Ris. 6

Så snart farvesensorværdien er sat til mindre 7 , hvad der vil ske, er når farvesensoren er placeret over den sorte linje, vi bliver nødt til at slukke for motorerne og stoppe robotten. Problem løst (Fig. 7).

Ris. 7

For at fortsætte vores lektioner skal vi lave et nyt felt, som er en sort cirkel med en diameter på cirka 1 meter, påført et hvidt felt. Tykkelsen af ​​cirkellinjen er 2 - 2,5 cm. Til bunden af ​​feltet kan du tage et ark papir størrelse A0 (841x1189 mm), lim to ark papir størrelse A1 (594x841 mm) sammen. I dette felt skal du markere en cirkellinje og male den med sort blæk. Du kan også downloade et feltlayout lavet i Adobe Illustrator-format, og så bestille det trykt på bannerstof på et trykkeri. Layoutstørrelsen er 1250x1250 mm. (Du kan se det downloadede layout nedenfor ved at åbne det i Adobe Acrobat Reader)

Dette felt vil være nyttigt for os til at løse flere klassiske problemer i robotteknologikurset.

Opgave #12: det er nødvendigt at skrive et program for en robot, der bevæger sig inde i en cirkel, der kantes med en sort cirkel i henhold til følgende regel:

  • robotten bevæger sig fremad i en lige linje;
  • når robotten når den sorte linje, stopper den;
  • robotten bevæger sig to omdrejninger af motorerne tilbage;
  • robotten drejer 90 grader til højre;
  • robottens bevægelse gentages.

Den viden, du har opnået i tidligere lektioner, vil hjælpe dig med at oprette et program selv, afgørende problem №12.

Løsning på problem nr. 12

  1. Start lige fremad bevægelse (Fig. 8, punkt 1);
  2. Vent på, at farvesensoren krydser den sorte linje (Fig. 8, punkt 2);
  3. Flyt bagud 2 omgange (Fig. 8, punkt 3);
  4. Drej til højre 90 grader (Fig. 8, punkt 4); rotationsvinkelværdien beregnes for en robot samlet i henhold til instruktionerne small-robot-45544 (Fig. 8, punkt 5);
  5. Gentag kommando 1 - 4 i en endeløs løkke (Fig. 8, punkt 6).

Ris. 8

For at betjene farvesensoren i tilstand "Lysstyrke af reflekteret lys" Vi vil vende tilbage mange gange, når vi overvejer algoritmer til at bevæge os langs den sorte linje. Lad os indtil videre se på farvesensorens tredje driftstilstand.

6.2. Farvesensor - tilstanden "Omgivelseslys lysstyrke".

Farvesensor driftstilstand "Lysstyrke udvendig belysning" meget lig tilstanden "Lysstyrke af reflekteret lys", kun i dette tilfælde udsender sensoren ikke lys, men måler naturligt lys belysning miljø. Visuelt kan denne funktionsmåde af sensoren bestemmes af en svagt lysende blå LED. Sensoraflæsninger varierer fra 0 (intet lys) indtil 100 (det skarpeste lys). Ved løsning af praktiske problemer, der kræver måling af ekstern belysning, anbefales det at placere sensoren, så sensoren forbliver så åben som muligt og ikke blokeres af andre dele og strukturer.

Lad os fastgøre farvesensoren til vores robot på samme måde, som vi fastgjorde berøringssensoren i lektion #4 (Fig. 9). Tilslut farvesensoren med et kabel til porten "2" EV3 modul. Lad os gå videre til at løse praktiske problemer.

Ris. 9

Opgave #13: vi skal skrive et program, der ændrer hastigheden på vores robot afhængigt af intensiteten af ​​ekstern belysning.

For at løse dette problem skal vi vide, hvordan man får den aktuelle værdi af sensoren. Og den gule palet af programblokke, som kaldes "Sensorer".

6.3. Gul palet - "Sensorer"

Den gule palet i Lego mindstorms EV3-programmeringsmiljøet indeholder softwareblokke, der giver dig mulighed for at få aktuelle sensoraflæsninger til videre behandling i programmet. I modsætning til for eksempel en programblok "Forventning" I den orange palet overfører programblokke i den gule palet straks kontrollen til de følgende programblokke.

Antallet af programblokke i den gule palet er forskelligt i hjemme- og uddannelsesversionerne af programmeringsmiljøet. Hjemmeversionen af ​​programmeringsmiljøet har ikke softwareblokke til sensorer, der ikke er inkluderet i designerens hjemmeversion. Men om nødvendigt kan du selv forbinde dem.

Den pædagogiske version af programmeringsmiljøet indeholder programmeringsblokke til alle sensorer, der kan bruges med Lego mindstorms EV3-konstruktøren.

Lad os vende tilbage til løsningen Opgave nr. 13 og lad os se, hvordan du kan modtage og behandle farvesensoraflæsninger. Som vi allerede ved: rækkevidden af ​​farvesensorværdier i tilstanden "Ekstern lysstyrke" er inden for rækkevidden af 0 Før 100 . Parameteren, der regulerer motoreffekten, har samme område. Lad os prøve at bruge farvesensoraflæsningen til at regulere motorernes effekt i softwareblokken "Styretøj".

Løsning:


Ris. 10

Lad os indlæse det resulterende program i robotten og køre det til udførelse. Kørte robotten langsomt? Lad os tænde LED-lommelygten og prøve at bringe den til farvesensoren i forskellige afstande. Hvad sker der med robotten? Lad os dække farvesensoren med vores håndflade - hvad skete der i dette tilfælde? Skriv svarene på disse spørgsmål i kommentarerne til lektionen.

Udfordring - Bonus

Indlæs den i robotten og kør opgaven vist i figuren nedenfor. Gentag eksperimenterne med en LED-lommelygte. Del dine indtryk i kommentarerne til lektionen.