LEGO Mindstorms Education EV3 - Recension av designern. Läs de senaste nyheterna från legos värld – EduCube. LEGO Mindstorms EV3. Toy Skynet. Hem Hur man lägger till ytterligare lego ev3-moduler

Om du har några frågor som du vill veta om den nya designern (hur något specifikt fungerar, gör ett experiment med sensorer eller motorer) - skriv till oss - vi kommer att prova dina förslag. På så sätt kan du lära dig mycket mer om EV3 redan innan den börjar säljas.

Nu börjar allt med en recension programvara EV3-block (EV3-firmware).

En av funktionerna med den nya enheten är att det tar lång tid att slå på och av. Tidsmässigt är processen jämförbar med inkluderingen mobiltelefon eller hemmarouter, dvs. 20-30 sekunder. Efter påslagning visas följande meny:


Som du kan se, jämfört med NXT-blocket, har mycket förändrats: kvaliteten på typsnitten har förbättrats, grafiska element har ritats mer och fönstergränssnittet har förbättrats. Först och främst beror det på att skärmstorleken nu har ökat – den har blivit 178 gånger 128 pixlar, istället för 100 gånger 64, som NXT-blocket. Baserat på närvaron av ett fönstergränssnitt med inbyggda knappar och rullningslister kan det antas att enheter som en extern Pekplatta det blir ännu mer vettigt nu.


Från det första fönstret är det möjligt att anropa program som laddats på blocket, såväl som program skapade direkt på blocket. De där. för att starta programmet behöver du nu utföra färre klick än på NXT-blocket.

Navigering genom laddade program, såväl som till andra och efterföljande skärmar (menyalternativ), utförs med kontrollknappar, av vilka det nu finns 4.


Andra skärmen - låter dig navigera genom filsystemobjekt på blocket. Filsystem stöder nu traditionell hierarki: filer och kataloger.


Den tredje skärmen innehåller en undermeny - applikationer som låter dig utföra olika åtgärder med blocket:


I aktuell version Det finns fyra programvarublock för sådana applikationer:

  • Se sensorer
  • Motor kontroll
  • Fjärrkontroll
  • Programmering på blocket
Den fjärde skärmen är konfiguration. Förutom grund inställningar: ljudnivå, inaktivitetstimer, slå på BlueTooth och WiFi, låter dig ta reda på information om enhetens programvara:



Val av en specifik menypost/applikation sker med mittknappen på tangentbordet. Och för att avsluta en menypost eller applikation måste du trycka på knappen "Avsluta", som nu finns separat från huvudknapparna - på vänster sida under skärmen.

Nu ska du gå tillbaka till den tredje skärmen och börja bekanta dig med applikationerna. Så, applikationen "Visa sensorer" (Port View).

Till skillnad från ett liknande läge på NXT-blocket kan du nu se information om alla 8 enheter som är anslutna till blocket samtidigt. Dessutom tillåter den deklarerade funktionen för automatisk detektering av sensorer dig att inte manuellt ange vilken sensor som är ansluten var.

Information från motorgivare visas längst upp, information från sensorer visas längst ner. I mitten av skärmen - information om specifik enhet(V specifik port), som kan väljas genom att trycka på kontrollknapparna på tangentbordet. Informationen inkluderar en grafisk representation av sensorn, dess namn och aktuella avläsningar:

Peksensor:


Gyrosensor:


Färgsensor i reflekterat ljusläge:


Ultraljudsavståndssensor:

Här kan man för övrigt se att sensorn nu hävdar att den kan mäta avstånd med en noggrannhet på millimeter, och det minsta uppmätta avståndet är nu 3 cm.

Information från vänster motorgivare.


Nästa applikation är motorstyrning. I huvudsak låter det dig använda knappar för att rotera motorerna. Med mittknappen måste du välja vilka motorer som ska roteras. Och använd sedan par av knappar upp och ner eller vänster och höger för att rotera specifika motorer.


Det var inte möjligt att prova den tredje applikationen, eftersom standardleveransen av den pedagogiska versionen av EV3-satsen inte inkluderar en infraröd avståndssensor och en infraröd beacon. Men tydligen kan du på den här skärmen konfigurera vilka motorer som kommer att styras från den infraröda fyren.


Naturligtvis mest intressant applikation programmerar på ett block. Det har gjorts om avsevärt: ett program kan nu innehålla upp till 16 programelement (block), och skapade program kan sparas och, naturligtvis, öppnas igen för modifiering.


När programskrivningsapplikationen öppnas visas en tom exekveringsslinga (endast en iteration kommer att exekveras) och ett förslag om att infoga det första blocket. Du kan infoga ett block med "Upp"-knappen.


I blockvalsfönstret som visas är 17 block tillgängliga (6 åtgärdsblock och 11 vänteblock) plus åtgärden att radera det aktuella blocket.



Ordningen för urval och sekvens av block bestäms av programmeraren. Det innebär inte att det efter varje åtgärdsblock måste finnas ett vänteblock, som tidigare var fallet med NXT-blocket.

Det valda blocket i programmet ser ut så här:


Blockets beteende kan specificeras genom att trycka på mittknappen. För detta block kan du till exempel ändra vinkeln och riktningen för robotens rotation eller stoppa motorerna helt (till exempel efter föregående vänteblock).


Genom att flytta "markören" åt vänster eller höger kan du infoga ett annat block:


Till exempel, ett händelsevänteblock på en avståndssensor:


Och ändra dess beteende (händelsen kommer att inträffa om avståndet blir mer än 60 cm):


Block kan infogas mellan befintliga block eller till och med i början av ett program.


Här är fler exempel på vänteblock:

Tidsvänteblockering (du kan ställa in exakt hur länge du ska vänta):


Eller ett block för att vänta på en händelse från en gyroskopisk sensor (du kan ställa in sensorns rotationsvinkel).


Det bör återigen noteras att sensorns autodetekteringsfunktion förenklar programmeringsprocessen på enheten. Det finns inte längre något behov av att följa regeln att vissa sensorer måste anslutas till vissa portar.

Om programmet måste köras flera gånger kan antalet iterationer av kontrollslingan ändras:


Programmet startas genom att välja det allra första blocket:


När du startar programmet kommer följande att visas på skärmen:


Programmet kan sparas och du kan ange ett filnamn för senare sökning:



Bokstäver väljs med tangentbordet (hej, pekplatta!)

Om du försöker stänga ett osparat program kommer följande inte särskilt tydliga meddelande att visas och ett obehagligt ljud kommer att höras:


Du kan senare öppna det skapade programmet och göra ändringar i det.


Naturligtvis öppnas bara program skapade på blocket.

Avslutningsvis skulle jag vilja visa hur det ser ut att stänga av ett block:


USB-anslutning

LEGO Mindstorms EV3 kan anslutas till en PC eller en annan EV3 via en USB-anslutning. Anslutningshastigheten och stabiliteten i det här fallet är bättre än med någon annan metod, inklusive Bluetooth.

LEGO Mindstorms EV3 har två USB-portar.

Kommunikation mellan LEGO EV3 och andra LEGO EV3-block i kedjeläge.

Kedjeläge används för att ansluta två eller flera LEGO EV3-block.

Detta läge:

  • designad för att ansluta mer än en LEGO Mindstorms EV3;
  • tjänar till anslutning Mer sensorer, motorer och andra enheter;
  • tillåter kommunikation mellan flera LEGO Mindstorms EV3 (upp till 4), vilket ger oss upp till 16 externa portar och samma antal interna portar;
  • gör det möjligt att styra hela kedjan från huvud LEGO Mindstorms EV3;
  • kan inte fungera när den är aktiv Wi-Fi-anslutning eller Bluetooth.

För att aktivera kopplingsläget för seriekoppling, gå till fönstret för projektinställningar och markera rutan.

När detta läge är valt kan vi för vilken motor som helst välja EV3-blocket som kommer att användas och de nödvändiga sensorerna.

Tabellen visar alternativ för att använda EV3-block:

Handling

Medium motor

Stor motor

Styrning

Oberoende ledning

Gyroskopisk

Infraröd

Ultraljuds

Motorrotation

Temperaturer

Energimätare

Ljud

Anslutning via Bluetooth

Bluetooth gör att LEGO Mindstorms EV3 kan ansluta till en PC, andra LEGO Mindstorms EV3, smartphones och andra Bluetooth-enheter. Kommunikationsräckvidden via Bluetooth är upp till 25 m.

Du kan ansluta upp till 7 block till en LEGO Mindstorms EV3. Med EV3 Master Brick kan du skicka och ta emot meddelanden till varje EV3-slav. EV3-slavar kan bara skicka meddelanden till EV3 Master Brick, inte till varandra.

EV3-anslutningssekvens via Bluetooth

För att ansluta två eller flera EV3-block till varandra via Bluetooth, måste du utföra följande steg:

1. Öppna en flik inställningar.

2. Välj Blåtand och tryck på mittknappen.

3. Vi sätter Kryssruta synlighet Blåtand.

4. Kontrollera att Bluetooth-tecknet ("<") виден на верхней левой стороне.

5. Gör ovanstående procedur för det antal EV3-klossar som krävs.

6. Gå till fliken Anslutning:

7. Klicka på knappen Sök:

8. Välj den EV3 du vill ansluta till (eller som du vill ansluta till) och tryck på mittknappen.

9. Vi ansluter det första och andra blocket med åtkomstnyckeln.

Om du gör allt korrekt kommer ikonen " att visas i det övre vänstra hörnet<>", anslut andra EV3-block på samma sätt om det finns fler än två av dem.

Om du stänger av LEGO EV3 bryts anslutningen och du måste upprepa alla steg.

Viktigt: varje block måste ha ett eget program skrivet.

Exempel på program:

Första blocket: När peksensorn trycks ned sänder det första EV3-blocket texten till det andra blocket med en fördröjning på 3 sekunder (huvudblocket).

Exempelprogram för block 2:

Det andra blocket väntar på att ta emot texten från det första blocket, och när det väl tar emot det kommer det att visa ett ord (i vårt exempel ordet "Hej") i 10 sekunder (slavblocket).

Anslut via Wi-Fi

Kommunikation med längre räckvidd är möjlig genom att ansluta Wi-Fi-dongeln till USB-porten på EV3.

För att använda Wi-Fi måste du installera en specialmodul på EV3-blocket med en USB-kontakt (Wi-Fi-adapter (Netgear N150 trådlös adapter (WNA1100), eller så kan du ansluta en Wi-Fi-dongel).

Om du, som vi, saknar kapaciteten hos vanliga EV3-sensorer, räcker det inte med fyra portar för sensorer i dina robotar, eller om du vill ansluta några exotiska kringutrustning till din robot – den här artikeln är för dig. Tro mig, en hemmagjord sensor för EV3 är lättare än det verkar. En ”volymknapp” från en gammal radio eller ett par spikar nedstuckna i marken i en blomkruka som jordfuktighetssensor är perfekta för experimentet.

Överraskande nog döljer varje EV3-sensorport ett antal olika protokoll, främst för kompatibilitet med NXT- och tredjepartssensorer. Låt oss titta på hur EV3-kabeln fungerar


Det är konstigt, men den röda ledningen är jordad (GND), den gröna ledningen är pluset med 4,3V strömförsörjningen. Den blå ledningen är både SDA för I2C-bussen och TX för UART-protokollet. Dessutom är den blå ledningen ingången till analog-till-digital-omvandlaren för EV3. Den gula ledningen är både SCL för I2C-bussen och RX för UART-protokollet. Den vita ledningen är ingången till analog-till-digital-omvandlaren för NXT-sensorer. Svart - digital ingång, för sensorer kompatibla med NXT - den duplicerar GND. Inte lätt, eller hur? Låt oss gå i ordning.

EV3 analog ingång

Varje sensorport har en analog-till-digital-omvandlarkanal. Den används för sensorer som peksensor (knapp), NXT ljussensor och färgsensor i läge för reflekterat ljus och omgivande ljus, NXT ljudsensor och NXT termometer.

En resistans på 910 ohm, ansluten enligt diagrammet, talar om för styrenheten att denna port måste kopplas om till analogt ingångsläge. I det här läget kan du ansluta vilken analog sensor som helst till EV3, till exempel från Arduino. Växelkursen med en sådan sensor kan nå flera tusen undersökningar per sekund, detta är den snabbaste typen av sensor.

Ljussensor

Termometer

Markfuktighetssensor

Du kan också ansluta: en mikrofon, en knapp, en IR-avståndsmätare och många andra vanliga sensorer. Om 4,3V ström inte räcker för sensorn kan du strömförsörja den med 5V från USB-porten på sidan av EV3-kontrollern.

Den ovan nämnda "volymknappen" (även känd som ett variabelt motstånd eller potentiometer) är ett utmärkt exempel på en analog sensor - den kan anslutas så här:

För att läsa värden från en sådan sensor i standard LEGO-programmeringsmiljön måste du använda det blå RAW-blocket

I2C-protokoll

Detta är ett digitalt protokoll; till exempel NXT-ultraljudssensorn och många Hitechnic-sensorer, som IR Seeker eller Color Sensor V2, fungerar på det. För andra plattformar, till exempel för Arduino, finns det en hel del i2c-sensorer, du kan även koppla in dem. Schemat är som följer:

Ett motstånd på 82 ohm rekommenderas av LEGO Group, men olika källor nämner 43 ohm eller mindre. Faktum är att vi försökte överge dessa motstånd helt och hållet och allt fungerar, åtminstone "på bordet". I en riktig robot som arbetar under förhållanden med olika typer av störningar, bör SCL- och SDA-ledningarna fortfarande vara anslutna till strömförsörjningen genom motstånd, som visas i diagrammet ovan. I2c-driftshastigheten i EV3 är ganska låg, cirka 10 000 kbps, vilket är anledningen till att allas favorit Hitechnic Color Sensor V2 är så långsam :)

Tyvärr, för standarden EV3-G från LEGO finns det inget fullvärdigt block för tvåvägskommunikation med en i2c-sensor, men med hjälp av tredjepartsprogrammeringsmiljöer som RobotC, LeJOS eller EV3 Basic kan du interagera med nästan alla i2c-sensorer .

EV3:s förmåga att använda i2c-protokollet öppnar upp för en intressant möjlighet att ansluta flera sensorer till en port. I2C-protokollet låter dig ansluta upp till 127 slavenheter till en buss. Kan du föreställa dig? 127 sensorer för varje EV3-port :) Dessutom kombineras ofta ett gäng i2c-sensorer i en enhet, till exempel på bilden nedan finns en 10 i 1-sensor (innehåller en kompass, gyroskop, accelerometer, barometer, etc.)

UART

Nästan alla vanliga icke-EV3-sensorer, med undantag för Touch Sensor, arbetar med UART-protokollet och det är därför de inte är kompatibla med NXT-kontrollern, som, även om den har samma kontakter, inte har UART implementerad på sin sensor hamnar. Ta en titt på diagrammet, det är lite enklare än i tidigare fall:

UART-sensorer matchar automatiskt hastigheten på deras drift med EV3. De ansluter till en början med en hastighet av 2400 kbit/s, de kommer överens om driftslägen och växelkurser, och går sedan över till en ökad hastighet. Typiska växelkurser för olika sensorer är 38400 och 115200 kbit/s.
LEGO har implementerat ett ganska komplicerat protokoll i sina UART-sensorer, så det finns inga tredjepartssensorer som ursprungligen inte var avsedda för denna plattform, men som är kompatibla med den. Ändå är detta protokoll mycket bekvämt för att ansluta "hemlagad"
sensorer baserade på mikrokontroller.
Det finns ett underbart bibliotek för Arduino som heter EV3UARTEmulation, skrivet av den berömda LeJOS-utvecklaren Lawrie Griffiths, vilket gör att det här brädan kan låtsas vara en UART-LEGO-kompatibel sensor. Hans LeJOS News-blogg har många exempel på att ansluta gassensorer, en IMU-sensor och en digital kompass med hjälp av detta bibliotek.

Nedan i videon är ett exempel på att använda en hemmagjord sensor. Vi har inte tillräckligt med original LEGO avståndssensorer, så vi använder en hemmagjord på roboten:


Robotens uppgift är att utgå från den gröna cellen, hitta en väg ut ur labyrinten (röd cell) och återvända till startpunkten med den kortaste vägen, utan att gå in i återvändsgränder.

Artikeln beskriver upplevelsen av att använda Lego Mindstorms EV3-konstruktör för att skapa en prototyp av en robot med efterföljande mjukvara och manuell kontroll med hjälp av Robot Control Meta Language (RCML).

  • Montering av en robotprototyp baserad på Lego Mindstorms EV3
  • Snabb installation och konfiguration av RCML för Windows
  • Mjukvarustyrning av roboten baserad på EV3-styrenheten
  • Manuell styrning av robottillbehör med tangentbord och gamepad
Om jag blickar framåt lite, ska jag tillägga att för att implementera kontroll av en Lego-robot med ett tangentbord måste du skapa ett program som bara innehåller 3 rader programkod. Mer information om hur man gör detta finns under klippet.

1. Till att börja med skapades en robotprototyp från Lego Mindstorms EV3-konstruktör, som kommer att användas för programmering och manuell pilotering.

Beskrivning av robotprototypen

Roboten har en design som liknar ett bilchassi. Två motorer monterade på ramen har en gemensam rotationsaxel, som är ansluten till bakhjulen genom en växellåda. Växellådan omvandlar vridmoment genom att öka vinkelhastigheten på bakaxeln. Styrningen är monterad på basis av en konisk växel.



2. Nästa steg är att förbereda RCML för att arbeta med Lego Mindstorms EV3-konstruktör.

Du bör ladda ner arkiv med körbara filer och biblioteksfiler och .

De nedladdade arkiven måste extraheras till en katalog med ett godtyckligt namn, men du bör undvika Ryska bokstäver i titeln.

Innehållet i katalogen efter uppackning av arkiven i den



Därefter måste du skapa en konfigurationsfil config.ini, som måste finnas i samma katalog. För att implementera möjligheten att styra EV3-kontrollern med ett tangentbord och en gamepad måste du ansluta modulerna lego_ev3, tangentbord och gamepad.

Lista över config.ini-konfigurationsfilen för RCML

Modul = lego_ev3 modul = tangentbordsmodul = gamepad


Därefter måste du para ihop EV3-kontrollern och adaptern.

Instruktioner för att para ihop EV3-kontrollern och Bluetooth-adaptern

Instruktionerna innehåller ett exempel på att koppla ihop Lego Ev3-kontrollern och en PC som kör operativsystemet Windows 7.

1. Du måste gå till inställningssektionen på Ev3-kontrollern och sedan till menyalternativet "Bluetooth".

2. Se till att konfigurationsparametrarna är korrekt inställda. Kryssrutorna ska vara markerade bredvid "Synlighet", "Bluetooth" objekt.

3. Du måste gå till "Kontrollpanelen", sedan "Enheter och skrivare", sedan "Bluetooth-enheter".

4. Du måste klicka på knappen "Lägg till enhet". Ett fönster öppnas för att välja tillgängliga Bluetooth-enheter.

5. Välj "EV3"-enheten och klicka på knappen "Nästa".

6. EV3 Controller visar dialogrutan "Anslut?". Du måste markera kryssrutan och bekräfta ditt val genom att trycka på mittknappen.

7. Därefter kommer dialogrutan "LÖSENORD" att visas, siffrorna "1234" ska anges på inmatningsraden, sedan ska du bekräfta nyckelfrasen för ihopparning av enheter genom att trycka på mittknappen på positionen med en bock.

8. I enhetsparningsguiden visas ett formulär för att ange nyckeln för ihopparning av enheter. Du måste ange koden "1234" och trycka på knappen "Nästa".

10. På datorn måste du gå tillbaka till "Kontrollpanelen", sedan "Enheter och skrivare", sedan "Bluetooth-enheter". Listan över tillgängliga enheter visar enheten som parades ihop med.

11. Dubbelklicka för att gå till "EV3"-anslutningsegenskaperna.

14. COM-portindexet som anges i egenskaperna ska användas i konfigurationsfilen config.ini för modulen lego_ev3. Exemplet visar Bluetooth-anslutningsegenskaperna för en Lego EV3-kontroller som använder en standard COM14 seriell port.


Ytterligare konfiguration av modulen beror på det faktum att det är nödvändigt att skriva i konfigurationsfilen för lego_ev3-modulen adressen till COM-porten genom vilken kommunikationen med Lego-roboten utförs.

Lista över konfigurationsfilen config.ini för modulen lego_ev3

Anslutning = COM14 dynamic_connection = 0


Nu måste du konfigurera tangentbordsmodulen. Modulen finns i katalogen control_modules, sedan tangentbordet. Du bör skapa en konfigurationsfil config.ini bredvid filen keyboard_module.dll. Innan du skapar en konfigurationsfil måste du bestämma vilka åtgärder som ska utföras när du trycker på tangenter.

Tangentbordsmodulen låter dig använda tangenter som har en specifik numerisk kod. Du kan se tabellen över virtuella nyckelkoder.

Som ett exempel kommer jag att använda följande tangenttryckningar:

  • Upp/ned-pilarna används för att rotera bakhjulsmotorn framåt/bakåt
  • Vänster/högerpilarna vrider hjulen åt vänster/höger
Tangentbordsmodulens konfigurationsfil beskriver vilka axlar som är tillgängliga för programmeraren för att interagera med roboten i manuellt styrläge. I exemplet finns det alltså två kontrollgrupper - dessa är tangentbordsaxlarna. För att lägga till en ny axel måste du följa följande regler för att beskriva axlar.

Regler för att beskriva axlar för tangentbordsmodulen

1. När du lägger till en ny axel är det nödvändigt i avsnittet lägg till en egenskap vars namn är axelnamnet och tilldela den värdet på tangentbordsknappen HEX format, och en liknande post skapas för varje knapp, dvs. ett axelnamn kan användas flera gånger. I allmänhet, att skriva till en sektion kommer se ut så här:

Axis_name = keyboard_button_value_in_HEX_format
2. Det är nödvändigt att ställa in det maximala och lägsta värdet som kan plottas längs denna axel. För att göra detta måste du lägga till ett avsnitt i konfigurationsfilen på en ny rad config.ini, samma som axelnamnet, och ställ in egenskaperna övre_värde Och lägre_värde, som motsvarar axelns maximala respektive minimum. I allmänhet ser det här avsnittet ut så här:

[axis_name] upper_value = maximum_axis_value lower_value = minimum_axis_value
3. Därefter måste du bestämma vilket värde axeln kommer att ha om du trycker på en knapp på tangentbordet som tidigare var ansluten till den. Värdena bestäms genom att skapa en sektion, vars namn består av namnet på axeln och värdet på tangentbordsknappen i HEX format, avgränsade med ett understreck. För att ställa in standardläge (otryckt) och nedtryckt läge, använd egenskaperna unpressed_value Och tryckt_värde till vilket värdena överförs. Den allmänna uppfattningen av avsnittet i det här fallet ser ut så här:

[axis-name_keyboard-key-value] pressed_value = axis_value when_key_pressed unpressed_value = axis_value_when_key_pressed
Spoilertexten är kopierad från RCML-dokumentationen för enkel visning.


För att implementera kontroll av robotprototypen skapades en konfigurationsfil för tangentbordsmodulen, som inkluderar gå- och rotationsaxlarna. Go-axeln används för att ställa in robotens rörelseriktning. När du trycker på "uppåtpil"-tangenten kommer axeln att få värdet 100, när du trycker på "nedåtpil"-tangenten får axeln värdet -50. Rotationsaxeln används för att ställa in framhjulens styrvinkel. När du trycker på vänsterpilen blir axelvärdet -5, när du trycker på högerpilen blir axelvärdet 5.

Lista över config.ini-konfigurationsfilen för tangentbordsmodulen

;Obligatoriskt avsnitt ;axis_name = key_code (i HEX-format) ;go-axel tar emot värden från up_arrow go = 0x26 ;go-axel tar emot värden från go_down_arrow = 0x28 ;rotate axis tar emot värden från left_arrow rotate = 0x25 ; tar emot värden från högerpil rotera = 0x27 ;Beskrivning av go-axeln, måste alltid ha båda nycklarna ;Övre gräns för go-axelns värden upper_value = -100 ; Nedre gräns för go-axelns värden lägre_värde = 100 ;Beskrivning av rotera axel, måste alltid ha båda nycklarna;Övre gräns för rotationsaxelvärden upper_value = - 100 ;Lägre gräns för axelvärden rotate lower_value = 100 ;Beskrivning av beteendet för gå-axeln för *upp_pil*-tangenten (0x26 ) ;När du trycker på *up_arrow*-tangenten, ställ in axelvärdet till 50 pressed_value = 100 ;När du släpper *up_arrow*-tangenten, ställ in axelvärdet till 0 unpressed_value = 0 ;Beskrivning av beteendet för go-axeln för *down_arrow *-tangent (0x28) ;När du trycker på *nedåtpil*-tangenten, ställ in axelvärdet till -50 pressad_värde = -50 ;När du släpper tangenten *nedåtpil*, ställ in axelvärdet till 0 unpressed_value = 0 ;Beskrivning av den roterande axeln för *vänsterpil*-tangenten (0x25) ;När du trycker på *vänsterpil*-tangenten, ställ in axelvärdet till -5 pressed_value = -5 ;När du släpper *left_arrow*-tangenten, ställ in axelvärdet till 0 unpressed_value = 0 ;Beskrivning av beteendet hos den roterande axeln för tangenten *högerpil* (0x27) ;När du trycker på tangenten *högerpil*, ställ in axelvärdet till 5 pressed_value = 5 ;När du släpper *högerpil*-tangenten, ställ in axelvärdet till 0 unpressed_value = 0


Därefter, för att implementera kontroll med en gamepad, måste du konfigurera gamepad-modulen. Att konfigurera en modul innebär att skapa en konfigurationsfil config.ini bredvid gamepad_module.dll, som finns i katalogen control_modules, sedan gamepad.

Universell modulkonfigurationsfil för interaktion med en gamepad

;Obligatoriskt avsnitt som beskriver de använda axlarna ;Axel för att avsluta manuellt styrläge Avsluta = 9 ; 11 binära axlar som motsvarar spelplattans knappar B1 = 1 B2 = 2 B3 = 3 B4 = 4 L1 = 7 L2 = 5 R1 = 8 R2 = 6 start = 10 T1 = 11 T2 = 12; 4 stickaxlar; Höger stick upp/ner rörelse RTUD = 13; Höger stick vänster/höger rörelse RTLR = 16; Vänster stick upp/ner rörelse LTUD = 15; Vänster stick vänster/höger rörelse LTLR = 14; 2 korsaxlar;Korsets rörelse upp/nedpilarUD = 17 ;Korsrörelser vänster/högerpilarLR = 18 ;Beskrivning av B1-axelns beteende;När du trycker på B1-knappen, ställ in axelvärdet till 1 upper_value = 1;När du släpper B1-knappen, ställ in axelvärdet till 0 nedre_värde = 0 övre_värde = 1 lägre_värde = 0 upper_värde = 1 lägre_värde = 0 upper_värde = 1 lägre_värde = 0 övre_värde = 1 lägre_värde = 0 övre_värde = 0 övre_värde = 0 övre_värde 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 ;Beskrivning av beteendet hos den högra stickaxeln som rör sig upp/ned ;Axelvärde vid förflyttning till maxvärdet möjlig övre position upper_value = 0 ;Axelvärde vid förflyttning till maximalt möjliga nedre position lower_value = 65535 upper_value = 0 lower_value = 65535 upper_value = 0 lower_value = 65535 upper_value = 0 lower_value = 65535 uppförandet av DX-skriptet uppåt; /nedåtrörelse ;Axelvärde när du trycker på uppåtpilen upper_value = 1 ;Axelvärde när du trycker på nedåtpilen lower_value = -1 upper_value = 1 lower_value = -1


Ytterligare information om detaljerna för att ställa in gamepad-modulen visas i RCML-referensmanualen.

3. Nästa steg är att skriva ett program i RCML.

I roten av den skapade katalogen måste du skapa en programfil. Namnet på programfilen och dess tillägg kan vara vad som helst, men du bör undvika ryska bokstäver i namnet. Filnamnet som används i exemplet är hello.rcml.

För lego_ev3-modulen har robotreservationskoden följande form:

@tr = robot_lego_ev3;

Anslutningssidan för lego_ev3-modulen beskriver de flesta funktioner som stöds av styrenheten. Som ett testexempel skapades ett program för att automatiskt föra in roboten i en sladd.

Programalgoritmen är som följer:

Efter att ha reserverat den första lediga roboten upprättas en förbindelse mellan de två motorerna för efterföljande arbete med dem som om de vore en. Sedan börjar roboten utföra drifter. En mjukvarubeskrivning av robotens handlingar låter dig ställa in framhjulens rotationsvinklar och bakhjulens rotationshastighet exakt. Genom att använda denna teknik kan du uppnå resultat som är svåra att replikera under manuell styrning med ett tangentbord eller en gamepad.

Programlista för Lego-robot på RCML-språk

funktion main() ( @tr = robot_lego_ev3; //Reservera roboten @tr->setTrackVehicle("B","C",0,0); //Ställa in 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); )


För att kompilera programmet måste du använda kommandoraden i fönstret. Först bör du flytta till den skapade katalogen med de körbara filerna rcml_compiler.exe och rcml_intepreter.exe. Därefter måste du ange följande kommandon.

Kommando för att kompilera filen hello.rcml:

Rcml_compiler.exe hello.rcml hello.rcml.pc
Som ett resultat av kompileringen kommer en ny fil hello.rcml.pc att dyka upp i den skapade katalogen.

Skärmdump av kommandoraden efter framgångsrik kompilering



Nu måste du se till att EV3-kontrollen är påslagen och parad med Bluetooth-adaptern. Spelplattan måste vara ansluten till datorn. Efter detta måste du köra kommandot för att köra programfilen:

Rcml_intepreter.exe hello.rcml

Kommandoradens utseende under programkörning



En video som visar robotens rörelseprogram finns längst ner i artikeln.

4. Nästa steg är att styra roboten manuellt med hjälp av tangentbordet.

Med tangentbordet kan du styra vilken robotmotor som helst. Exemplet implementerar kontroll av följande mekanismer:

  • Framhjulets styrvinkel
  • Rotationsriktning för bakhjulen

Lista över programmet för interaktion mellan tangentbordet och Lego-roboten baserat på EV3-kontrollern

function main() ( @tr = robot_lego_ev3; //Reservera roboten @tr->setTrackVehicle("B","C",0,0); //Ställa in motorsynkroniseringssystem.hand_control(@tr,"keyboard", " rakt", "gå", "speedMotorD", "rotera"); )


Därefter måste du kompilera programmet och köra det. Resultatet av att manuellt styra en Lego-robot med hjälp av ett tangentbord visas i videon längst ner på sidan.

5. Förutom tangentbordet finns en gamepad-modul tillgänglig som låter dig manipulera roboten med hjälp av en gamepad. För att implementera robotstyrning med hjälp av en gamepad är det nödvändigt att på programnivå beskriva vilka axlar hos roboten som tar värdena för gamepad-axlarna.

Lista över programmet för interaktion mellan gamepad och Lego-roboten

function main() ( @tr = robot_lego_ev3; //Reservera roboten @tr->setTrackVehicle("B","C",0,0); //Ställa in motorsynkroniseringssystem.hand_control(@tr,"gamepad", " rakt", "RTUD", "speedMotorD", "RTLR"); )


Därefter bör du upprepa processen med att kompilera programmet och sedan köra det. Följande visar resultatet av manuell styrning av en Lego-robot med hjälp av en gamepad, och alla tidigare anslutna metoder:

Den här artikeln visar kortfattat bara några av funktionerna hos RCML. Den mest detaljerade beskrivningen finns i referensmanualen.

Beskrivning av presentationen med individuella bilder:

1 rutschkana

Bildbeskrivning:

2 rutschkana

Bildbeskrivning:

EV3 Brick Interface EV3 Brick är kontrollcentret som driver dina robotar. Med skärmen, Brick-kontrollknappar och EV3 Brick-gränssnittet, som innehåller fyra huvudfönster, har du tillgång till en fantastisk mängd unika EV3 Brick-funktioner. Dessa kan vara enkla funktioner, som att starta och stoppa ett program, eller komplexa, som att skriva själva programmet.

3 rutschkana

Bildbeskrivning:

Gränssnitt: EV3-menyn har en meny som består av 4 delar: Senaste program Filnavigering Brick Applications Brick Settings

4 rutschkana

Bildbeskrivning:

Senaste program Starta program som nyligen laddats ner från din stationära PC. Det här fönstret förblir tomt tills du börjar ladda ner och köra program. Det här fönstret visar de program du nyligen har startat. Programmet högst upp på listan, som är valt som standard, är det program som lanserades senast.

5 rutschkana

Bildbeskrivning:

Filhanterare Få åtkomst till och hantera alla filer som är lagrade i mikrodatorns minne, såväl som på minneskortet. Från det här fönstret kommer du åt och hanterar alla filer i din EV3 Brick, inklusive filer lagrade på SD-kortet. Filerna är organiserade i projektmappar, som förutom själva programfilerna även innehåller de ljud och bilder som används i varje projekt. Filer kan flyttas eller raderas med hjälp av filnavigatorn. Program skapade med modulprogrammeringsmiljön och moduldataloggningsapplikationer lagras separat i mapparna BrkProg_SAVE och BrkDL_SAVE.

6 rutschkana

Bildbeskrivning:

EV3 Control Box Applications har 4 förinstallerade applikationer: A. Port View. B. Motorstyrning. B. IR-kontroll. D. Modulprogrammeringsmiljö.

7 rutschkana

Bildbeskrivning:

A. Port View I det första fönstret i Port View-applikationen kan du snabbt se vilka portar som har sensorer eller motorer anslutna till dem. Använd EV3 Brick-kontrollknapparna för att navigera till en av de ockuperade portarna och du kommer att se aktuella värden från sensorn eller motorn. Installera flera sensorer och motorer och experimentera med olika inställningar. För att se eller ändra aktuella inställningar för installerade motorer och sensorer, tryck på mittknappen. För att återgå till modulens huvudprogramfönster, klicka på "Tillbaka"-knappen.

8 glida

Bildbeskrivning:

B. Motorkontroll Styr rörelsen framåt eller bakåt för alla motorer som är anslutna till en av de fyra utgångsportarna. Det finns två olika lägen. I ett läge kommer du att kunna styra motorer anslutna till port A (med upp- och nedknapparna) och till port D (med vänster- och högerknapparna). I det andra läget styr du motorer som är anslutna till port B (med upp- och nedknapparna) och port C (med vänster- och högerknapparna). Växling mellan dessa två lägen görs med hjälp av mittknappen. För att återgå till modulens huvudprogramfönster, klicka på "Tillbaka"-knappen.

Bild 9

Bildbeskrivning:

IR-kontroll Styr rörelsen framåt eller bakåt för alla motorer som är anslutna till en av de fyra utgångsportarna med hjälp av den fjärrstyrda infraröda beaconen som fjärrkontroll och den infraröda sensorn som mottagare (den infraröda sensorn måste anslutas till port 4 på EV3-klotet) . Det finns två olika lägen. I ett läge kommer du att använda kanal 1 och 2 på den fjärrstyrda infraröda beaconen. På kanal 1 kommer du att kunna styra motorer som är anslutna till port B (med knapparna 1 och 2 på den fjärrstyrda IR-beaconen) och port C (med knapparna 3 och 4 på den fjärranslutna IR-beaconen). På kanal 2 kommer du att kunna styra motorerna anslutna till port A (med knapparna 1 och 2) och till port D (med knapparna 3 och 4). I ett annat läge kan du styra motorerna på samma sätt genom att använda kanal 3 och 4 på den fjärrstyrda infraröda fyren istället. Växling mellan dessa två lägen görs med hjälp av mittknappen. För att återgå till modulens huvudprogramfönster, klicka på "Tillbaka"-knappen.

10 rutschkana

Bildbeskrivning:

Brick Programmeringsmiljö EV3 Brick levereras med programvara installerad på den. Applikationen liknar programvara som är installerad på din dator. Dessa instruktioner innehåller den grundläggande informationen du behöver för att komma igång.

11 rutschkana

Bildbeskrivning:

EV3 Brick Settings I det här fönstret kan du visa och justera olika allmänna inställningar i EV3 Brick.

12 rutschkana

Bildbeskrivning:

Justera volymen Du kan öka eller minska volymen på fliken Inställningar i EV3.

Bild 13