LEGO Mindstorms Education EV3 - Anmeldelse av designeren. Les de siste nyhetene fra Lego-verdenen – EduCube. LEGO Mindstorms EV3. Toy Skynet. Hjem Slik legger du til flere lego ev3-moduler

Hvis du har spørsmål du vil vite om den nye designeren (hvordan noe spesifikt fungerer, utfør et eksperiment med sensorer eller motorer) - skriv til oss - vi vil prøve ut forslagene dine. På denne måten kan du lære mye mer om EV3 selv før den kommer i salg.

Nå starter det hele med en anmeldelse programvare EV3-blokk (EV3-fastvare).

En av egenskapene til den nye enheten er at det tar lang tid å slå av og på. Tidsmessig er prosessen sammenlignbar med inkluderingen mobiltelefon eller hjemmeruter, dvs. 20-30 sekunder. Etter at du har slått på, vises følgende meny:


Som du kan se, sammenlignet med NXT-blokken, har mye endret seg: kvaliteten på skriftene har blitt bedre, grafiske elementer har blitt mer tegnet, og vindusgrensesnittet har blitt bedre. Først og fremst skyldes dette at skjermstørrelsen nå har økt – den har blitt 178 ganger 128 piksler, i stedet for 100 ganger 64, som NXT-blokken. Basert på tilstedeværelsen av et vindusgrensesnitt med integrerte knapper og rullefelt, kan det antas at enheter som en ekstern Touchpad det vil til og med gi mer mening nå.


Fra det første vinduet er det mulig å kalle opp programmer som er lastet inn på blokken, samt programmer som er opprettet direkte på blokken. De. for å starte programmet må du nå utføre færre klikk enn på NXT-blokken.

Navigering gjennom innlastede programmer, samt til andre og påfølgende skjermer (menyelementer), utføres ved hjelp av kontrollknapper, hvorav det nå er 4.


Andre skjerm - lar deg navigere gjennom filsystemobjekter på blokken. Filsystem støtter nå tradisjonelt hierarki: filer og kataloger.


Den tredje skjermen inneholder en undermeny - applikasjoner som lar deg utføre forskjellige handlinger med blokken:


I gjeldende versjon Det er fire programvareblokker for slike applikasjoner:

  • Se sensorer
  • Motor kontroll
  • Fjernkontroll
  • Programmering på blokken
Den fjerde skjermen er konfigurasjon. I tillegg grunnleggende innstillinger: lydnivå, inaktivitetstidtaker, slå på BlueTooth og WiFi, lar deg finne informasjon om enhetens programvare:



Valg av et spesifikt menyelement/applikasjon skjer med den midterste knappen på tastaturet. Og for å avslutte et hvilket som helst menyelement eller program, må du trykke på "Avslutt" -knappen, som nå er plassert separat fra hovedknappene - på venstre side under skjermen.

Nå bør du gå tilbake til den tredje skjermen og begynne å bli kjent med applikasjonene. Så, applikasjonen "Vis sensorer" (Port View).

I motsetning til en lignende modus på NXT-blokken, kan du nå se informasjon om alle de 8 enhetene som er koblet til blokken samtidig. Dessuten lar den deklarerte funksjonaliteten til automatisk deteksjon av sensorer deg ikke manuelt angi hvilken sensor som er tilkoblet hvor.

Informasjon fra motorgivere vises øverst, informasjon fra sensorer vises nederst. I midten av skjermen - informasjon om bestemt enhet(V spesifikk port), som kan velges ved å trykke på kontrollknappene på tastaturet. Informasjonen inkluderer en grafisk representasjon av sensoren, dens navn og gjeldende avlesninger:

Berøringssensor:


Gyrosensor:


Fargesensor i reflektert lysmodus:


Ultralyd avstandssensor:

Her kan du forresten se at sensoren nå hevder at den kan måle avstander med en nøyaktighet på millimeter, og minste målte avstand er nå 3 cm.

Informasjon fra venstre motorgiver.


Den neste applikasjonen er motorstyring. I hovedsak lar den deg bruke knapper til å rotere motorene. Med den sentrale knappen må du velge hvilke motorer som skal roteres. Og bruk deretter par med knapper opp og ned eller venstre og høyre for å rotere bestemte motorer.


Det var ikke mulig å prøve den tredje applikasjonen, siden standardleveringen av den pedagogiske versjonen av EV3-settet ikke inkluderer en infrarød avstandssensor og en infrarød beacon. Men tilsynelatende kan du på denne skjermen konfigurere hvilke motorer som skal styres fra det infrarøde beaconet.


Selvfølgelig mest interessant applikasjon programmerer på en blokk. Det har blitt betydelig redesignet: et program kan nå inneholde opptil 16 programelementer (blokker), og opprettede programmer kan lagres og, selvfølgelig, åpnes for modifikasjon på nytt.


Når programskrivingsapplikasjonen åpnes, vises en tom utførelsesløkke (kun én iterasjon vil bli utført) og et forslag om å sette inn den første blokken. Du kan sette inn en blokk ved å bruke "Opp"-knappen.


I blokkvalgvinduet som vises, er 17 blokker tilgjengelige (6 handlingsblokker og 11 venteblokker) pluss handlingen med å slette gjeldende blokk.



Rekkefølgen på valg og rekkefølge av blokker bestemmes av programmereren. Det betyr ikke at det etter hver handlingsblokk må være en venteblokk, slik det tidligere var tilfellet med NXT-blokken.

Den valgte blokken i programmet ser slik ut:


Oppførselen til blokken kan spesifiseres ved å trykke på midtknappen. For denne blokken kan du for eksempel endre vinkelen og retningen på robotens rotasjon eller stoppe motorene helt (for eksempel etter forrige venteblokk).


Ved å flytte "markøren" til venstre eller høyre, kan du sette inn en annen blokk:


For eksempel, en hendelsesventeblokk på en avstandssensor:


Og endre oppførselen (hendelsen vil oppstå hvis avstanden blir mer enn 60 cm):


Blokker kan settes inn mellom eksisterende blokker eller til og med i begynnelsen av et program.


Her er flere eksempler på venteblokker:

Tid for ventetid (du kan angi nøyaktig hvor lenge du skal vente):


Eller en blokk for å vente på en hendelse fra en gyroskopisk sensor (du kan stille inn rotasjonsvinkelen til sensoren).


Det skal igjen bemerkes at sensorens autodeteksjonsfunksjonalitet forenkler programmeringsprosessen på enheten. Det er ikke lenger nødvendig å følge regelen om at enkelte sensorer må kobles til bestemte porter.

Hvis programmet må kjøres flere ganger, kan antall iterasjoner av kontrollsløyfen endres:


Programmet startes ved å velge den aller første blokken:


Når du starter programmet, vil følgende vises på skjermen:


Programmet kan lagres, og du kan angi et filnavn for senere søk:



Bokstaver velges ved hjelp av tastaturet (hei, pekeplate!)

Hvis du prøver å lukke et program som ikke er lagret, vil følgende ikke veldig tydelige melding vises og en ubehagelig lyd produseres:


Du kan senere åpne det opprettede programmet og gjøre endringer i det.


Naturligvis åpnes bare programmer som er opprettet på blokken.

Avslutningsvis vil jeg vise hvordan det å slå av en blokk ser ut:


USB-tilkobling

LEGO Mindstorms EV3 kan kobles til en PC eller en annen EV3 via en USB-tilkobling. Tilkoblingshastigheten og stabiliteten i dette tilfellet er bedre enn med noen annen metode, inkludert Bluetooth.

LEGO Mindstorms EV3 har to USB-porter.

Kommunikasjon mellom LEGO EV3 og andre LEGO EV3-klosser i kjedemodus.

Daisy chain-modus brukes til å koble sammen to eller flere LEGO EV3-klosser.

Denne modusen:

  • designet for å koble til mer enn én LEGO Mindstorms EV3;
  • tjener til tilkobling mer sensorer, motorer og andre enheter;
  • tillater kommunikasjon mellom flere LEGO Mindstorms EV3 (opptil 4), som gir oss opptil 16 eksterne porter og samme antall interne porter;
  • gjør det mulig å kontrollere hele kjeden fra hoved LEGO Mindstorms EV3;
  • kan ikke fungere når den er aktiv Wi-Fi-tilkobling eller Bluetooth.

For å aktivere seriekoblingsmodus, gå til vinduet for prosjektinnstillinger og merk av i boksen.

Når denne modusen er valgt, kan vi for enhver motor velge EV3-blokken som skal brukes og de nødvendige sensorene.

Tabellen viser alternativer for bruk av EV3-blokker:

Handling

Middels motor

Stor motor

Styring

Uavhengig ledelse

Gyroskopisk

Infrarød

Ultralyd

Motorrotasjon

Temperaturer

Energimåler

Lyd

Tilkobling via Bluetooth

Bluetooth lar LEGO Mindstorms EV3 koble til en PC, andre LEGO Mindstorms EV3, smarttelefoner og andre Bluetooth-enheter. Kommunikasjonsrekkevidde via Bluetooth er opptil 25 m.

Du kan koble opptil 7 blokker til én LEGO Mindstorms EV3. EV3 Master Brick lar deg sende og motta meldinger til hver EV3-slave. EV3-slaver kan bare sende meldinger til EV3-mesterklossen, ikke til hverandre.

EV3-tilkoblingssekvens via Bluetooth

For å koble to eller flere EV3-blokker til hverandre via Bluetooth, må du utføre følgende trinn:

1. Åpne en fane Innstillinger.

2. Velg blåtann og trykk på midtknappen.

3. Vi legger Avmerkingsboks synlighet Blåtann.

4. Sjekk at Bluetooth-skiltet ("<") виден на верхней левой стороне.

5. Utfør prosedyren ovenfor for det nødvendige antallet EV3-klosser.

6. Gå til kategorien Tilkobling:

7. Klikk på Søk-knappen:

8. Velg EV3-en du vil koble til (eller som du vil koble til) og trykk på midtknappen.

9. Vi kobler den første og andre blokken med tilgangsnøkkelen.

Hvis du gjør alt riktig, vil ikonet " vises i øvre venstre hjørne<>", koble til andre EV3-blokker på samme måte hvis det er mer enn to av dem.

Hvis du slår av LEGO EV3, vil forbindelsen bli brutt, og du må gjenta alle trinnene.

Viktig: hver blokk må ha sitt eget program skrevet.

Eksempel program:

Første blokk: Når berøringssensoren trykkes, sender den første EV3-blokken teksten til den andre blokken med en forsinkelse på 3 sekunder (hovedblokk).

Eksempelprogram for blokk 2:

Den andre blokken venter på å motta teksten fra den første blokken, og når den mottar den, vil den vise et ord (i vårt eksempel ordet "Hei") i 10 sekunder (slaveblokken).

Koble til via Wi-Fi

Kommunikasjon med lengre rekkevidde er mulig ved å koble Wi-Fi-dongelen til USB-porten på EV3.

For å bruke Wi-Fi, må du installere en spesiell modul på EV3-blokken ved hjelp av en USB-kontakt (Wi-Fi-adapter (Netgear N150 Wireless Adapter (WNA1100), eller du kan koble til en Wi-Fi-dongel).

Hvis du, som oss, mangler egenskapene til standard EV3-sensorer, er 4 porter for sensorer i robotene dine ikke nok, eller du ønsker å koble noen eksotiske periferiutstyr til roboten din – denne artikkelen er for deg. Tro meg, en hjemmelaget sensor for EV3 er enklere enn det ser ut til. En "volumknapp" fra en gammel radio eller et par spiker stukket ned i bakken i en blomsterpotte som jordfuktighetssensor er perfekt for eksperimentet.

Overraskende nok skjuler hver EV3-sensorport en rekke forskjellige protokoller, hovedsakelig for kompatibilitet med NXT- og tredjepartssensorer. La oss se på hvordan EV3-kabelen fungerer


Det er rart, men den røde ledningen er jordet (GND), den grønne ledningen er plusset til 4,3V-strømforsyningen. Den blå ledningen er både SDA for I2C-bussen og TX for UART-protokollen. I tillegg er den blå ledningen inngangen til analog-til-digital-omformeren for EV3. Den gule ledningen er både SCL for I2C-bussen og RX for UART-protokollen. Den hvite ledningen er inngangen til analog-til-digital-omformeren for NXT-sensorer. Sort - digital inngang, for sensorer som er kompatible med NXT - den dupliserer GND. Ikke lett, er det ikke? La oss gå i rekkefølge.

EV3 analog inngang

Hver sensorport har en analog-til-digital omformerkanal. Den brukes til sensorer som berøringssensor (knapp), NXT lyssensor og fargesensor i reflektert lys og omgivelseslysmodus, NXT lydsensor og NXT termometer.

En motstand på 910 ohm, koblet i henhold til diagrammet, forteller kontrolleren at denne porten må byttes til analog inngangsmodus. I denne modusen kan du koble en hvilken som helst analog sensor til EV3, for eksempel fra Arduino. Valutakursen med en slik sensor kan nå flere tusen meningsmålinger per sekund, dette er den raskeste typen sensor.

Lyssensor

Termometer

Jordfuktighetssensor

Du kan også koble til: en mikrofon, en knapp, en IR-avstandsmåler og mange andre vanlige sensorer. Hvis 4,3V strøm ikke er tilstrekkelig for sensoren, kan du strømme den med 5V fra USB-porten på siden av EV3-kontrolleren.

Den ovennevnte "volumknappen" (også kjent som en variabel motstand eller potensiometer) er et utmerket eksempel på en analog sensor - den kan kobles til slik:

For å lese verdier fra en slik sensor i standard LEGO programmeringsmiljø, må du bruke den blå RAW-blokken

I2C-protokoll

Dette er en digital protokoll; for eksempel NXT-ultralydsensoren og mange Hitechnic-sensorer, som IR Seeker eller Color Sensor V2, jobber med den. For andre plattformer, for eksempel for Arduino, er det mange i2c-sensorer, du kan også koble dem til. Opplegget er som følger:

En motstand på 82 ohm anbefales av LEGO Group, men ulike kilder nevner 43 ohm eller mindre. Faktisk prøvde vi å forlate disse motstandene helt og alt fungerer, i det minste "på bordet". I en ekte robot som opererer under forhold med ulike typer interferens, bør SCL- og SDA-linjene fortsatt være koblet til strømforsyningen gjennom motstander, som angitt i diagrammet ovenfor. i2c-driftshastigheten i EV3 er ganske lav, omtrent 10 000 kbps, og derfor er alles favoritt Hitechnic Color Sensor V2 så ​​treg :)

Dessverre, for standard EV3-G fra LEGO er det ingen fullverdig blokk for toveis kommunikasjon med en i2c-sensor, men ved å bruke tredjeparts programmeringsmiljøer som RobotC, LeJOS eller EV3 Basic kan du samhandle med nesten alle i2c-sensorer .

EV3s evne til å operere ved hjelp av i2c-protokollen åpner for en interessant mulighet for å koble flere sensorer til én port. I2C-protokollen lar deg koble opptil 127 slaveenheter til én buss. Kan du forestille deg? 127 sensorer for hver EV3-port :) Dessuten er ofte en haug med i2c-sensorer kombinert i en enhet, for eksempel på bildet nedenfor er det en 10 i 1 sensor (inneholder et kompass, gyroskop, akselerometer, barometer, etc.)

UART

Nesten alle standard ikke-EV3-sensorer, med unntak av berøringssensor, bruker UART-protokollen, og det er derfor de ikke er kompatible med NXT-kontrolleren, som selv om den har de samme kontaktene, ikke har UART implementert på sensoren. havner. Ta en titt på diagrammet, det er litt enklere enn i tidligere tilfeller:

UART-sensorer matcher automatisk operasjonshastigheten med EV3. Når de først kobler til med en hastighet på 2400 kbit/s, blir de enige om driftsmoduser og valutakurser, og går deretter til økt hastighet. Typiske valutakurser for ulike sensorer er 38400 og 115200 kbit/s.
LEGO har implementert en ganske komplisert protokoll i UART-sensorene sine, så det er ingen tredjepartssensorer som opprinnelig ikke var ment for denne plattformen, men som er kompatible med den. Likevel er denne protokollen veldig praktisk for å koble til "hjemmelaget"
sensorer basert på mikrokontrollere.
Det er et fantastisk bibliotek for Arduino kalt EV3UARTEmulation, skrevet av den berømte LeJOS-utvikleren Lawrie Griffiths, som lar dette brettet utgi seg for å være en UART-LEGO-kompatibel sensor. LeJOS News-bloggen hans har mange eksempler på tilkobling av gasssensorer, en IMU-sensor og et digitalt kompass ved hjelp av dette biblioteket.

Nedenfor i videoen er et eksempel på bruk av en hjemmelaget sensor. Vi har ikke nok originale LEGO avstandssensorer, så vi bruker en hjemmelaget på roboten:


Robotens oppgave er å starte fra den grønne cellen, finne en vei ut av labyrinten (rød celle) og returnere til startpunktet med den korteste ruten, uten å gå inn i blindveier.

Artikkelen beskriver opplevelsen av å bruke Lego Mindstorms EV3-konstruktøren til å lage en prototype av en robot med påfølgende programvare og manuell kontroll ved hjelp av Robot Control Meta Language (RCML).

  • Sette sammen en robotprototype basert på Lego Mindstorms EV3
  • Rask installasjon og konfigurering av RCML for Windows
  • Programvarekontroll av roboten basert på EV3-kontrolleren
  • Manuell kontroll av robotperiferiutstyr ved hjelp av tastatur og gamepad
Ser jeg litt fremover, vil jeg legge til at for å implementere kontroll av en Lego-robot ved hjelp av et tastatur, må du lage et program som inneholder bare 3 linjer med programkode. Flere detaljer om hvordan du gjør dette er skrevet under kuttet.

1. Til å begynne med ble det laget en robotprototype fra Lego Mindstorms EV3-konstruktøren, som skal brukes til programmering og manuell pilotering.

Beskrivelse av robotprototypen

Roboten har en design som ligner på et bilchassis. To motorer montert på rammen har én felles rotasjonsakse, som er koblet til bakhjulene gjennom en girkasse. Girkassen konverterer dreiemoment ved å øke vinkelhastigheten på bakakselen. Styringen er satt sammen på grunnlag av et vinkelgir.



2. Neste trinn er å forberede RCML for arbeid med Lego Mindstorms EV3-konstruktøren.

Du bør laste ned arkiver med kjørbare filer og bibliotekfiler og .

De nedlastede arkivene må trekkes ut til en katalog med et vilkårlig navn, men du bør unngå Russiske bokstaver i tittelen.

Innholdet i katalogen etter å ha pakket ut arkivene i den



Deretter må du opprette en konfigurasjonsfil config.ini, som må ligge i samme katalog. For å implementere muligheten til å kontrollere EV3-kontrolleren ved hjelp av et tastatur og gamepad, må du koble til lego_ev3-, tastatur- og gamepad-modulene.

Liste over config.ini-konfigurasjonsfilen for RCML

Modul = lego_ev3 modul = tastaturmodul = gamepad


Deretter må du pare EV3-kontrolleren og adapteren.

Instruksjoner for sammenkobling av EV3-kontrolleren og Bluetooth-adapteren

Instruksjonene inneholder et eksempel på sammenkobling av Lego Ev3-kontrolleren og en PC som kjører Windows 7-operativsystemet.

1. Du må gå til innstillingsdelen av Ev3-kontrolleren, deretter til menypunktet "Bluetooth".

2. Kontroller at konfigurasjonsparameterne er riktig innstilt. Avmerkingsboksene skal være merket ved siden av "Synlighet", "Bluetooth"-elementene.

3. Du må gå til "Kontrollpanel", deretter "Enheter og skrivere", deretter "Bluetooth-enheter".

4. Du må klikke på "Legg til enhet"-knappen. Et vindu åpnes for å velge tilgjengelige Bluetooth-enheter.

5. Velg "EV3"-enheten og klikk på "Neste"-knappen.

6. EV3-kontrolleren viser dialogboksen "Koble til?". Du må velge avmerkingsboksen og bekrefte valget ved å trykke på midttasten.

7. Deretter vil "PASSKEY"-dialogboksen vises, tallene "1234" skal angis i inntastingslinjen, deretter bør du bekrefte nøkkelfrasen for sammenkobling av enheter ved å trykke på midttasten på posisjonen med et hakemerke.

8. I enhetsparingsveiviseren vises et skjema for inntasting av nøkkelen for sammenkobling av enheter. Du må skrive inn koden "1234" og trykke på "Neste" -knappen.

10. På PC-en må du gå tilbake til "Kontrollpanel", deretter "Enheter og skrivere", deretter "Bluetooth-enheter". Listen over tilgjengelige enheter vil vise enheten som ble paret med.

11. Dobbeltklikk for å gå til "EV3"-tilkoblingsegenskapene.

14. COM-portindeksen spesifisert i egenskapene skal brukes i konfigurasjonsfilen config.ini til lego_ev3-modulen. Eksemplet viser Bluetooth-tilkoblingsegenskapene til en Lego EV3-kontroller som bruker en standard COM14 seriell port.


Videre konfigurasjon av modulen kommer ned til det faktum at det er nødvendig å skrive i konfigurasjonsfilen til lego_ev3-modulen adressen til COM-porten som kommunikasjon med Lego-roboten utføres gjennom.

Liste over config.ini-konfigurasjonsfilen for lego_ev3-modulen

Tilkobling = COM14 dynamisk_tilkobling = 0


Nå må du konfigurere tastaturmodulen. Modulen ligger i katalogen control_modules, deretter tastaturet. Du bør opprette en konfigurasjonsfil config.ini ved siden av filen keyboard_module.dll. Før du oppretter en konfigurasjonsfil, må du bestemme hvilke handlinger som skal utføres når du trykker på taster.

Tastaturmodulen lar deg bruke taster som har en spesifikk numerisk kode. Du kan se tabellen over virtuelle nøkkelkoder.

Som et eksempel vil jeg bruke følgende tastetrykk:

  • Opp/ned-pilene brukes til å rotere bakhjulsmotoren forover/bakover
  • Venstre/høyre piler dreier hjul til venstre/høyre
Tastaturmodulens konfigurasjonsfil beskriver hvilke akser som er tilgjengelige for programmereren for å samhandle med roboten i manuell kontrollmodus. I eksemplet er det således to kontrollgrupper - disse er tastaturaksene. For å legge til en ny akse, må du følge følgende regler for beskrivelse av akser.

Regler for beskrivelse av akser for tastaturmodulen

1. Når du legger til en ny akse, er det nødvendig i avsnittet legg til en egenskap hvis navn er aksenavnet og tilordne den verdien til tastaturknappen i HEX format, og en lignende post opprettes for hver knapp, dvs. et aksenavn kan brukes flere ganger. Generelt, å skrive til en seksjon vil se slik ut:

Axis_name = keyboard_button_value_in_HEX_format
2. Det er nødvendig å angi maksimums- og minimumsverdien som kan plottes langs denne aksen. For å gjøre dette må du legge til en seksjon i konfigurasjonsfilen på en ny linje config.ini, det samme som aksenavnet, og angi egenskapene øvre_verdi Og lavere_verdi, som tilsvarer henholdsvis maksimum og minimum for aksen. Generelt ser denne delen slik ut:

[akse_navn] øvre_verdi = maksimum_akse_verdi nedre_verdi = minimum_akse_verdi
3. Deretter må du bestemme hvilken verdi aksen vil ha hvis du trykker på en knapp på tastaturet som tidligere var festet til den. Verdiene bestemmes ved å lage en seksjon, hvis navn består av navnet på aksen og verdien av tastaturknappen i HEX format, atskilt med et understrek. For å angi standard (utrykket) og trykket tilstand, bruk egenskapene unpressed_value Og trykket_verdi henholdsvis som verdiene overføres til. Den generelle visningen av seksjonen i dette tilfellet ser slik ut:

[akse-navn_tastatur-tast-verdi] pressed_value = akse_verdi når_tast_trykkes unpressed_value = akse_verdi_når_tast_trykkes
Spoilerteksten er kopiert fra RCML-dokumentasjonen for enkel visning.


For å implementere kontroll av robotprototypen ble det laget en konfigurasjonsfil for tastaturmodulen, som inkluderer gå- og rotasjonsaksene. Go-aksen brukes til å angi bevegelsesretningen til roboten. Når du trykker på "pil opp"-tasten, vil aksen motta en verdi på 100; når du trykker på "pil ned"-tasten, vil aksen motta en verdi på -50. Rotasjonsaksen brukes til å stille inn styrevinkelen til forhjulene. Når du trykker på venstre piltast vil akseverdien være -5, når du trykker på høyre piltast vil akseverdien være 5.

Liste over config.ini-konfigurasjonsfilen for tastaturmodulen

;Påkrevd seksjon ;axis_name = key_code (i HEX-format) ;go-akse mottar verdier fra pil opp go = 0x26 ;go-akse mottar verdier fra go_down_arrow = 0x28 ;rotere akse mottar verdier fra venstre_pil rotere = 0x25 ; mottar verdier fra høyre_pil rotere = 0x27 ;Beskrivelse av gå-aksen, må alltid ha begge tastene ;Øvre grense for gå-akseverdier øvre_verdi = -100 ;Nedre grense for gå-akseverdier nedre_verdi = 100 ;Beskrivelse av roter akse, må alltid ha begge nøklene; Øvre grense for rotasjonsakseverdier Upper_value = - 100 ; Nedre grense for akseverdier rotate lower_value = 100 ;Beskrivelse av oppførselen til gå-aksen for *up_arrow*-tasten (0x26 ) ;Når du trykker på *up_arrow*-tasten, setter du akseverdien til 50 pressed_value = 100 ;Når du slipper *up_arrow*-tasten, setter du akseverdien til 0 unpressed_value = 0 ;Beskrivelse av oppførselen til go-aksen for *down_arrow * tast (0x28) ;Når du trykker på *ned_pil*-tasten, setter du akseverdien til -50 presset_verdi = -50 ;Når du slipper *pil ned*-tasten, setter du akseverdien til 0 unpressed_value = 0 ;Beskrivende virkemåte for den roterende aksen for *venstre_pil*-tasten (0x25) ;Når du trykker på *venstre_pil*-tasten, setter du akseverdien til -5 pressed_value = -5 ;Når du slipper *venstre_pil*-tasten, setter du akseverdien til 0 unpressed_value = 0 ;Beskrivelse av oppførselen til rotasjonsaksen for tasten *høyrepil* (0x27) ;Når du trykker på *høyrepiltasten*, setter du akseverdien til 5 presset_verdi = 5 ;Når du slipper *høyrepiltasten*, setter du akseverdien til 0 unpressed_value = 0


Deretter, for å implementere kontroll ved hjelp av en gamepad, må du konfigurere gamepad-modulen. Konfigurering av en modul innebærer å lage en konfigurasjonsfil config.ini ved siden av gamepad_module.dll, plassert i katalogen control_modules, deretter gamepad.

Universell modulkonfigurasjonsfil for samhandling med en gamepad

;Nødvendig del som beskriver aksene som brukes ;Akse for å avslutte manuell kontrollmodus Avslutt = 9 ; 11 binære akser som tilsvarer gamepad-knappene B1 = 1 B2 = 2 B3 = 3 B4 = 4 L1 = 7 L2 = 5 R1 = 8 R2 = 6 start = 10 T1 = 11 T2 = 12; 4 pinneakser; Høyre pinne opp/ned bevegelse RTUD = 13; Høyre pinne venstre/høyre bevegelse RTLR = 16; Venstre pinne opp/ned bevegelse LTUD = 15; Venstre pinne venstre/høyre bevegelse LTLR = 14; 2 akser av krysset; Bevegelse av krysset opp/ned pilerUD = 17 ;Bevegelse av kryss venstre/høyre pilerLR = 18 ;Beskrivelse av oppførselen til B1-aksen;Når du trykker på B1-knappen, sett akseverdien til 1 øvre_verdi = 1;Når du slipper B1-knappen, setter du akseverdien til 0 nedre_verdi = 0 øvre_verdi = 1 nedre_verdi = 0 øvre_verdi = 1 nedre_verdi = 0 øvre_verdi = 1 nedre_verdi = 0 øvre_verdi = 1 nedre_verdi = = 1 øvre_verdi = 0 øvre_verdi = 1 øvre_verdi 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 ;Beskrivelse av oppførselen til høyre pinneakse som beveger seg opp/ned ;Akseverdi ved flytting til maksimalverdi mulig øvre posisjon upper_value = 0 ;Akseverdi når du flytter til maksimal mulig nedre posisjon lower_value = 65535 upper_value = 0 lower_value = 65535 upper_value = 0 lower_value = 65535 upper_value = 0 lower_value = 65535 oppførselen til oppførselen av xi-scriptet ; /nedbevegelse ;Akseverdi når du trykker på pil opp øvre_verdi = 1 ;Akseverdi når du trykker på pil ned nedre_verdi = -1 øvre_verdi = 1 nedre_verdi = -1


Ytterligere informasjon om spesifikasjonene for å sette opp gamepad-modulen vises i RCML-referansehåndboken.

3. Neste trinn er å skrive et program i RCML.

I roten til den opprettede katalogen må du lage en programfil. Navnet på programfilen og filtypen kan være hva som helst, men du bør unngå russiske bokstaver i navnet. Filnavnet brukt i eksemplet er hello.rcml.

For lego_ev3-modulen har robotreservasjonskoden følgende skjema:

@tr = robot_lego_ev3;

Tilkoblingssiden for lego_ev3-modulen beskriver de fleste funksjonene som støttes av kontrolleren. Som et testeksempel ble det laget et program for automatisk å føre roboten inn i en skli.

Programalgoritmen er som følger:

Etter å ha reservert den første ledige roboten, opprettes en forbindelse mellom de to motorene for påfølgende arbeid med dem som om de var én. Så begynner roboten å utføre drifter. En programvarebeskrivelse av robotens handlinger lar deg nøyaktig stille inn rotasjonsvinklene til forhjulene og rotasjonshastigheten til bakhjulene. Ved å bruke denne teknikken kan du oppnå resultater som er vanskelige å gjenskape under manuell pilotering med et tastatur eller gamepad.

Programoppføring for Lego-robot på RCML-språk

funksjon main() ( @tr = robot_lego_ev3; //Reserver roboten @tr->setTrackVehicle("B","C",0,0); //Sett motorsynkronisering @tr->motorMoveTo("D",100 , 0,0); system.sleep(500); @tr->trackVehicleForward(-100); system.sleep(1000); @tr->motorMoveTo("D",50,-50,0); system. sleep (4000); @tr->motorMoveTo("D",50,50,0); system.sleep(4000); @tr->trackVehicleOff(); system.sleep(1000); )


For å kompilere programmet må du bruke vinduets kommandolinje. Først bør du flytte til den opprettede katalogen med de kjørbare filene rcml_compiler.exe og rcml_intepreter.exe. Deretter må du skrive inn følgende kommandoer.

Kommando for å kompilere hello.rcml-filen:

Rcml_compiler.exe hello.rcml hello.rcml.pc
Som et resultat av kompileringen vil en ny fil hello.rcml.pc vises i den opprettede katalogen.

Skjermbilde av kommandolinjen etter vellykket kompilering



Nå må du sørge for at EV3-kontrolleren er slått på og paret med Bluetooth-adapteren. Gamepaden må være koblet til PC-en. Etter dette må du utføre kommandoen for å kjøre programfilen:

Rcml_intepreter.exe hello.rcml

Utseendet til kommandolinjen under programkjøring



En video som demonstrerer robotens bevegelsesprogram er plassert nederst i artikkelen.

4. Neste trinn er å kontrollere roboten manuelt ved hjelp av tastaturet.

Ved hjelp av tastaturet kan du kontrollere hvilken som helst robotmotor. Eksemplet implementerer kontroll over følgende mekanismer:

  • Forhjulets styrevinkel
  • Rotasjonsretning for bakhjulene

Liste over programmet for interaksjon mellom tastaturet og Lego-roboten basert på EV3-kontrolleren

funksjon main() ( @tr = robot_lego_ev3; //Reserver roboten @tr->setTrackVehicle("B","C",0,0); //Synkroniseringssystem for innstilling av motor.hand_control(@tr,"keyboard", "rett","gå", "speedMotorD","rotere"); )


Deretter må du kompilere programmet og kjøre det. Resultatet av å manuelt styre en Lego-robot ved hjelp av et tastatur vises i videoen nederst på siden.

5. I tillegg til tastaturet er en gamepad-modul tilgjengelig som lar deg manipulere roboten ved hjelp av en gamepad. For å implementere robotkontroll ved hjelp av en gamepad, er det nødvendig å beskrive på programnivå hvilke akser til roboten som tar verdiene til gamepad-aksene.

Liste over programmet for interaksjon mellom gamepad og Lego-roboten

function main() ( @tr = robot_lego_ev3; //Reserver roboten @tr->setTrackVehicle("B","C",0,0); //Innstilling av motorsynkroniseringssystem.hand_control(@tr,"gamepad", " straight", "RTUD", "speedMotorD", "RTLR"); )


Deretter bør du gjenta prosessen med å kompilere programmet og deretter kjøre det. Følgende viser resultatet av manuell styring av en Lego-robot ved hjelp av en gamepad, og alle tidligere tilkoblede metoder:

Denne artikkelen demonstrerer kort bare noen av egenskapene til RCML. Den mest detaljerte beskrivelsen finner du i referansehåndboken.

Beskrivelse av presentasjonen ved individuelle lysbilder:

1 lysbilde

Lysbildebeskrivelse:

2 lysbilde

Lysbildebeskrivelse:

EV3 Brick Interface EV3 Brick er kontrollsenteret som driver robotene dine. Med skjermen, Brick-kontrollknapper og EV3 Brick-grensesnittet, som inneholder fire hovedvinduer, har du tilgang til et fantastisk utvalg unike EV3 Brick-funksjoner. Dette kan være enkle funksjoner, som å starte og stoppe et program, eller komplekse, som å skrive selve programmet.

3 lysbilde

Lysbildebeskrivelse:

Grensesnitt: EV3-menyen har en meny som består av 4 deler: Nylige programmer Filnavigering Klossapplikasjoner Klossinnstillinger

4 lysbilde

Lysbildebeskrivelse:

Nylige programmer Start programmer som nylig er lastet ned fra din stasjonære PC. Dette vinduet forblir tomt til du begynner å laste ned og kjøre programmer. Dette vinduet viser programmene du nylig har startet. Programmet øverst på listen, som er valgt som standard, er programmet som ble lansert sist.

5 lysbilde

Lysbildebeskrivelse:

Filbehandling Få tilgang til og administrer alle filer som er lagret i mikrodatamaskinens minne, så vel som på minnekortet. Fra dette vinduet får du tilgang til og administrerer alle filene i EV3-klossen, inkludert filer som er lagret på SD-kortet. Filene er organisert i prosjektmapper, som i tillegg til selve programfilene også inneholder lydene og bildene som brukes i hvert prosjekt. Filer kan flyttes eller slettes ved hjelp av filnavigatoren. Programmer opprettet ved hjelp av modulprogrammeringsmiljøet og moduldataloggingsapplikasjoner lagres separat i mappene BrkProg_SAVE og BrkDL_SAVE.

6 lysbilde

Lysbildebeskrivelse:

EV3 Control Box Applications har 4 forhåndsinstallerte programmer: A. Port View. B. Motorstyring. B. IR-kontroll. D. Modulprogrammeringsmiljø.

7 lysbilde

Lysbildebeskrivelse:

A. Port View I det første vinduet i Port View-applikasjonen kan du raskt se hvilke porter som har sensorer eller motorer koblet til. Bruk EV3 Brick-kontrollknappene for å navigere til en av de okkuperte portene, og du vil se gjeldende avlesninger fra sensoren eller motoren. Installer flere sensorer og motorer og eksperimenter med forskjellige innstillinger. For å se eller endre gjeldende innstillinger for installerte motorer og sensorer, trykk på midtknappen. For å gå tilbake til hovedprogramvinduet til modulen, klikk på "Tilbake"-knappen.

8 lysbilde

Lysbildebeskrivelse:

B. Motorkontroll Kontroller bevegelsen forover eller bakover til enhver motor koblet til en av de fire utgangsportene. Det er to forskjellige moduser. I én modus vil du kunne kontrollere motorer koblet til port A (ved hjelp av opp- og ned-knappene) og til port D (ved hjelp av venstre- og høyre-knappene). I den andre modusen styrer du motorer koblet til port B (ved hjelp av opp- og ned-knappene) og port C (ved hjelp av venstre- og høyre-knappene). Bytte mellom disse to modusene gjøres ved å bruke den sentrale knappen. For å gå tilbake til hovedprogramvinduet til modulen, klikk på "Tilbake"-knappen.

Lysbilde 9

Lysbildebeskrivelse:

IR-kontroll Kontroller forover- eller bakoverbevegelsen til enhver motor som er koblet til en av de fire utgangsportene ved å bruke det eksterne infrarøde beacon som fjernkontroll og den infrarøde sensoren som mottaker (den infrarøde sensoren må kobles til port 4 på EV3-klossen) . Det er to forskjellige moduser. I én modus vil du bruke kanal 1 og 2 på det eksterne infrarøde beaconet. På kanal 1 vil du kunne kontrollere motorer koblet til port B (ved hjelp av knappene 1 og 2 på det eksterne IR-beaconet) og port C (ved å bruke knappene 3 og 4 på det eksterne IR-beaconet). På kanal 2 vil du kunne styre motorene koblet til port A (ved hjelp av knapper 1 og 2) og til port D (ved hjelp av knapper 3 og 4). I en annen modus kan du kontrollere motorene på samme måte, ved å bruke kanal 3 og 4 på det eksterne infrarøde beaconet i stedet. Bytte mellom disse to modusene gjøres ved å bruke den sentrale knappen. For å gå tilbake til hovedprogramvinduet til modulen, klikk på "Tilbake"-knappen.

10 lysbilde

Lysbildebeskrivelse:

Klossprogrammeringsmiljø EV3-klossen leveres med programvare installert på den. Applikasjonen ligner på programvare installert på datamaskinen din. Disse instruksjonene inneholder den grunnleggende informasjonen du trenger for å komme i gang.

11 lysbilde

Lysbildebeskrivelse:

Innstillinger for EV3-klossen Dette vinduet lar deg vise og justere ulike generelle innstillinger i EV3-klossen.

12 lysbilde

Lysbildebeskrivelse:

Justere volumet Du kan øke eller redusere volumet i kategorien Innstillinger i EV3.

Lysbilde 13