Fjärrstyrning av roboten Lego Mindstorms via JMX och IP Video. Kommer det att finnas hjälpmaterial tillgängligt i pdf-format som visar hur man programmerar på EV3-klossen samt använder LEGO® MINDSTORMS® EV3 Home Software

Det här avsnittet presenterar olika legorobotar. Börjar med Mindstorms - en robot för avancerade användare och till och med proffs, som slutar med legendernas karaktärer: Hero Factory, Ninjago, Chima, etc.


Låt oss börja vår historia med en ovanlig Lego-leksak - elektronisk interaktiv robot baserad på NXT 2.0-processor! Även ett 10-12-årigt barn kan montera det med hjälp av instruktioner! LEGO mindstorms-robotar kommer att tilltala inte bara barn, utan även deras föräldrar, eftersom den är mycket funktionell och möjligheterna med dess programmering är verkligen oändliga! Du kan designa dina egna programmerbara modeller!

Programmering av roboten är mycket bekvämt genom programmets användarvänliga gränssnitt, som kan installeras från disken! Om så önskas kan du välja en uppsättning funktioner med en tangentkombination på den centrala styrenheten. Robot har en mycket bra funktionalitet, vilket uppnås tack vare interaktiva servomotorer och speciella sensorer som reagerar på ljus, ljud, mekanisk påverkan och andra yttre stimuli!

Mindstorms kan röra sig i olika riktningar, spela upp ljud, särskilja färger, lösa en Rubiks kub, plocka upp lätta föremål, vakta ett rum, styra ett legotåg eller bil på avstånd och mycket mer! Utöver de vanliga sensorerna som medföljer i startpaketet kan du köpa diverse andra tillbehör: olika sensorer, adaptrar, motorer, batterier och mycket mer, vilket avsevärt kommer att utöka kapaciteten hos din lego-robot!

Instruktionen som finns på mjukvarudisken erbjuder flera inledande, lättmonterade mindstorms-modeller: Robogator, Color Ball Sorter, Room Keeper och några andra.

Ditt barn kommer aldrig att bli uttråkad och lär sig färdigheterna att designa och programmera in spelform också väldigt lärorikt!

En annan serie är Hero Factory. Hjältar från Hero Factory-serien är väldigt färgglada varelser, de är en hybrid av en människa och en robot och de kallas cyborgs! Robotfigurer har rörliga armar och ben, de håller olika vapen som hjälper dem att bekämpa horderna av mutanter som tjänar Eldherren.

Denna Hero Factory-serie är en analog till Bionicles, så fans av tecknade serier om robotar kommer gärna att acceptera den.

Bland karaktärerna finns både bra: Stormer, Furno, Breeze och andra, samt negativa hjältar: Drilldozer, Jetbug, Vaughn Nebula, som lyder den kraftfulla och ondskefulla Eldherren. Försök att samla hela samlingen av Lego Robot Hero Factory-figurer och arrangera din egen kamp för godhetens och rättvisans triumf!

Vilken är den mest kända designern i världen? Lego såklart! Och vilken är den mest kända plattformen för att lära ut robotik? Säkert Lego Mindstorms! Låt oss se varför.

Lego: Från snickare till leksaksledare

Företag Lego grundades 1932. Dess grundare är en dansk Ole Kirk Christiansen. Som snickare startade han först ett husgerådsföretag och började senare med att tillverka träklossar för barn. Företaget fick namnet Lego genom att kombinera danska ord. ben - att spela Och bra - bra.

1947 började Lego-företaget tillverka plastleksaker, och redan 1949 dök de berömda Lego-snäppklossarna upp.

Huvudidéerna med Lego är modularitet och kompatibilitet. Även om tegelstenarna har ändrat design och form under de 65 år de funnits, är de absolut kompatibla med varandra. Moderna element kan mycket väl kopplas till element för 40 år sedan.

Idag är Legos verksamhetsområde givetvis mycket bredare än tillverkningen av leksaker. Företaget skapar kläder, filmer, spel, anordnar tävlingar, inklusive robotar. Legomuseer är öppna över hela världen, nöjesparker – Legolands, som nästan är helt byggda av legokuber.

Från Lego kan du samla modeller av bilar, flygplan, fartyg, byggnader och, naturligtvis, robotar. Sedan slutet av förra seklet har Lego släppt en special robotkonstruktör, som idag har blivit ledande inom pedagogisk robotik.

Lego Mindstorms: robotik för alla

Idén att lägga till ett elektroniskt programmerbart block, sensorer och elmotorer till standarddelar från Lego, vilket gör programmering enkel och begriplig för barn och att utveckla en speciell konstruktör för att skapa robotar, återupplivade inte bara Lego-strukturer utan hela företaget. Sedan 1991 har företaget lidit förluster i 11 år i rad. Och det var robotinriktningen som räddade situationen.

Första robotdesigner Lego Mindstorms introducerades 1998. 2006 släpptes den andra versionen av konstruktören - NXT, och dök upp i början av 2013 EV3(Förkortning av Evolution 3).

Från vänster till höger, boxade versioner av Lego Minstorms 1998, 2006, 2013

Hjärtat hos designern är en mikrodator (mikrokontroller), även känd som P-brick, eller P-brick (från Programmerbar tegelsten- programmerbar tegelsten). Standard Lego delar (balkar, växlar, axlar, hjul) förändras lite med utvecklingen av designern, det är mikrodatorn som genomgår de största förändringarna.

Den första versionen av designern var utrustad med en mikrodator RCX, den andra - NXT, och i kompositionen modern versionEV3.

Vänster till höger Lego mikrodatorer: RCX (1998), NXT (2006), EV3 (2013)

Med utvecklingen av konstruktören följer tillverkaren bakåtkompatibilitetspolicyn, d.v.s. delar från äldre versioner kan delas med den nya konstruktören. Så till exempel kan sensorer från NXT-versionen användas med EV3. Utvecklingen av designern i takt med tiden är för det första utvecklingen av en mikrodator och en programmeringsmiljö. En viktig skillnad mellan den moderna EV3 Brick är att den körs på det kostnadsfria operativsystemet Linux.

Specifikationer för Lego EV3 mikrodator:

  • Processor - ARM9 (ARM7 användes i NXT 2.0-konstruktorn);
  • RAM - 64 megabyte;
  • FLASH-minne - 16 megabyte;
  • SD expansionsplats;
  • USB 2.0 med stöd för Wi-Fi-anslutning;
  • Bluetooth 2.1;
  • monokrom skärm med en upplösning på 178 × 128 pixlar;
  • fyra ingångsportar;
  • fyra utgångsportar;
  • kontrollgränssnitt med sex knappar;
  • högkvalitativ integrerad högtalare;
  • autonom strömförsörjning från sex AA-batterier, eller med en ackumulator likström EV3 2050 mAh;
  • Linux operativsystem.

Videorecension av Lego EV3 mikrodator:

Lego Mindstorms EV3-komposition

Lego Mindstormsär en uppsättning vanliga Lego-delar, en mikrodator och sensorer.

Lego Mindstorms EV3-komponenter

Konstruktören var designad för två målgrupp: för hemmabruk (barn och älskare) och för använda i läroinstitut (elever och lärare). För varje grupp har en grunduppsättning skapats - resp förpackad version Lego EV3 Och pedagogisk version av Lego EV3.

Dessutom, för varje grupp, flera ytterligare uppsättningar. Till exempel är en resursuppsättning som är valfri helt enkelt en uppsättning ytterligare standardlegobitar som utökar designerns möjligheter. Det finns ingen tydlig gräns mellan box- och utbildningsversionen - det här är samma konstruktör med ett lite annorlunda paket.

Idag implementeras denna uppsättning aktivt i Ryssland i pedagogisk robotik för förskolebarn och yngre skolbarn.

En sådan konstruktör låter dig montera och programmera många grundläggande modeller med hjälp av en dator enligt instruktionerna, samt uppfinna din egen. Inkluderar delar som är kompatibla med vanliga legoklossar.

Innehållet i Lego Education WeDo-setet:

  • 158 byggnadselement;
  • USB Lego-omkopplare;
  • motor;
  • lutningssensor;
  • avståndsgivare.

Genom omkopplaren styrs sensorer och motorer med hjälp av programvaran WeDo. Ström tillförs motorerna genom brytarkontakterna och data utbyts mellan sensorerna och datorn.

Videopresentation av Lego WeDo-setet:

Lego Education WeDo är inte bara en konstruktör, utan ett komplett metodstöd, redo för implementering i studieprocess. Det här är en bra start på robotteknik.

Du kan hitta robotcirklar där Lego WeDo används i våra.

LEGO Education WeDo 2.0

Uppd. 4.12.2017: LEGO Education i början av 2016 en ny version av det pedagogiska robotpaketet för barn WeDo 2.0 (art. 45300).

Del grunduppsättning Lego WeDo 2.0 innehåller nya versioner av switchen, lutnings- och rörelsesensorer och motorn. Tyvärr är den nya byggsatsen inte kompatibel med motorerna och sensorerna i Lego WeDo från den tidigare versionen, eftersom dess mikroprocessor (SmartHub) har olika anslutningskontakter. SmartHub WeDo 2.0 ansluts till en dator eller surfplatta via Bluetooth 4.0.

Finns det ett alternativ till Lego inom pedagogisk robotik?

Idag är Lego-plattformen den obestridda ledaren inom pedagogisk robotik. Lego Mindstorms-set är utrustade med robotcirklar i många länder i världen. I ledande positioner för Lego Mindstorms och på ryska.

Vilka är anledningarna till ett sådant ledarskap? Det finns flera.

För det första är detta verkligen kvaliteten på plattformen, den är å ena sidan pedagogisk, å andra sidan dess designmöjligheter. Från denna konstruktör kan du bygga inte bara leksaksrobotar utan även prototyper av så allvarliga strukturer som till exempel, etc. Dessutom kan barn uppfinna och implementera allt detta. Och från Mindstorms kan du göra en robot som!

Robotrover vid WRO-2014 i Kazan

Finns det funktionella alternativ? I allmänhet, ja. Dessa är till exempel koreanska, tyska, inhemska TRIC och andra. De listade plattformarna liknar Legos pris. Det finns också dyrare mönster.

För det andra är detta en kraftfull Lego-baserad olympisk robotrörelse. Tävlingar i världsklass – som och, samt många regionala evenemang och festivaler innehåller ett krav på att använda Lego i sina regler.

Tillverkare av alternativa legoklossar marknadsför också tävlingar baserade på deras plattformar, så ungdomsrobottävlingar är helt baserade på HUNA-klossar. Flerplattformstävlingar blir också populära. I Ryssland, detta och det nyss meddelade IKAR.

För det tredje, Lego Mindstorms kontinuitet. Innan det kan beskrivas ovan Vi gör, efter - TETRIX Och MATRIS. De två sistnämnda använder NXT- och EV3-kontrollerna, men erbjuder betydande mekanisk och strukturell expansion. Med tanke på att dagens barn introduceras till Lego före ett års ålder, så verkar det naturligt och enklare att fortsätta arbeta med det.

För det fjärde spelar tidsfaktorn också in i Legos popularitet - det var helt enkelt först på detta område och erövrade marknaden. Det finns etablerade samhällen i olika länder, det finns många utvecklingar, det finns stor erfarenhet av att använda dem i utbildning.

Roboten, sammansatt av LEGO Mindstorms EV3-konstruktör, kan enkelt fjärrstyras från första person. För att göra detta behöver du dessutom två smartphones, med RoboCam-applikationen installerad på en av dem. Låt oss ta en närmare titt på RoboCam-appen och lära oss hur man använder den.

Artikeln beskriver de nya funktionerna som dök upp i den första versionen av version 1.0 av RoboCam-applikationen. Du kan hitta alla artiklar om RoboCam-applikationen. RoboCam-appen kan installeras från Google Play Store.

Låt oss först titta på en video som visar en förstapersonsrobot som jag har döpt till EV3 Explorer. Förutom att roboten kan röra sig i vilken riktning som helst kan den höja och sänka huvudet, d.v.s. ramen som smarttelefonen är fäst vid. Och det betyder att du inte bara kan se dig omkring utan också upp/ned.

Vad krävs för att genomföra experimentet?

För att upprepa experimentet du ser i videon behöver du följande:

  1. Robot, monterad från LEGO Mindstorms EV3-konstruktören.
  2. android smartphone med en kamera och RoboCam-applikationen installerad på den. Stöder Android 2.3 och senare. Smarttelefonen måste ha minst en kamera, samt Bluetooth- och Wi-Fi-moduler.
  3. Smartphone eller surfplatta med en modern webbläsare med HTML5-stöd. Välpassade och testade webbläsare Google Chrome, Yandex.Browser, Firefox och Opera senaste versionerna. Operativsystemet kan i princip vara vilket som helst (Android, iOS eller Windows), men fullfjädrade tester utfördes endast på Android. Din smartphone eller surfplatta måste ha minst pekskärm(helst med igenkänning av minst 2 beröringspunkter) och en Wi-Fi-modul.

Kopplingsschema

Låt oss först se hur alla enheter som anges ovan är anslutna till varandra. Detta illustreras bäst i figuren nedan.

Som du kan se är RoboCam-appen installerad på smartphone 1. Denna smartphone är ansluten till roboten och ansluten till den via Bluetooth. Från smartphone 1 till EV3 finns det kommandon som styr motorerna, information från sensorerna kommer tillbaka.

2:a smartphone eller surfplatta, ansluter till smartphone 1 via Wi-Fi. Smartphone 1 och smartphone eller surfplatta 2 måste vara anslutna till samma router. Joystick-koordinaterna går från smartphone eller surfplatta 2 till smartphone 1, och videoströmmen från kameran går tillbaka.

Hur EV3 styrs

För att bättre förstå hur EV3-roboten styrs, ta en titt på följande diagram.

När du börjar röra styrspakarna A och B, skickar Smartphone eller Tablet 2 beröringskoordinaterna till Smartphone 1, vilket översätter dem till kommandon för EV3-motorer. Hur koordinaterna kommer att konverteras beror på inställningarna för RoboCam-applikationen. Vi kommer att prata mer om inställningarna nedan.

Montering av roboten

För att upprepa experimentet måste du först och främst sätta ihop en robot som du ska styra. Det kan vara en enkel tvåhjulig robot, en bilrobot, eller en robot med komplex mekanism rörelse. I stort sett spelar det ingen roll vad din robot kommer att vara, eftersom RoboCam-programmet är flexibelt konfigurerat och du kan använda det för att styra en robot av vilken design som helst. Huvudsaken är att du kan montera en smartphone på din robot på ett sådant sätt att kameran är riktad framåt, i färdriktningen.

Jag rekommenderar att börja med en enkel modell. Om du har LEGO Mindstorms EV3 Education Kit kan du bygga EV3 Explorer som du ser på bilden och videon överst i den här artikeln. Här är byggschemat för EV3 Explorer:

Bygginstruktioner för EV3 Explorer Version:2

Instruktioner för att bygga EV3 Explorer Robot från LEGO Mindstorms Education EV3 Basic Educational Set (45544).

I version 2: ramen fixeras fastare och faller inte av.

06/04/2016 4,95 MB 5783

Förbereda en Android-smartphone och RoboCam-appen

RoboCam-appen fungerar på smartphones eller surfplattor som kör Android 2.3 och senare. Det är obligatoriskt att enheten har valfri inbyggd kamera och Bluetooth-moduler och WiFi. Appen är gratis, du kan installera den med google butik spela. Här är RoboCam-ansökningssidan. För att installera, klicka på knappen "INSTALLERA" och acceptera de nödvändiga behörigheterna genom att klicka på knappen "ACCEPTERA".

Öppna appen när den är installerad. På Android 6 och senare kommer du omedelbart att se en uppmaning om tillåtelse att använda kameran. Vi behöver definitivt en kamera, så klicka på "TILLÅT".

Efter att applikationen öppnats kommer du att se tre runda knappar för grundläggande åtgärder, och i bakgrunden en bild från kameran.

Den gröna knappen till vänster ansvarar för att starta och stoppa RoboCam-servern, som behövs för att ansluta en smartphone eller surfplatta 2, se diagrammet ovan. Samtidigt visar knappen om servern är igång eller inte. På bilden är bakgrunden på knappen vit, vilket betyder att servern inte fungerar. Tipset ovan säger detsamma. Du kan starta eller stoppa servern när som helst genom att klicka på den här knappen.

Den mellersta magentafärgade knappen är ansvarig för att ansluta till EV3-roboten. Samtidigt visar knappen om smarttelefonen är ansluten till roboten eller inte. På bilden är bakgrunden på knappen vit, vilket betyder att roboten inte är ansluten. Den här knappen har också ett verktygstips, precis under knappen, där den översta raden visar anslutningsstatus (det står "EV3 Not Connected" på bilden) och namnet på robotens nuvarande inställningar på den nedre raden (på bilden är det " EV3 Explorer").

Knappen till höger öppnar inställningarna för RoboCam-programmet. Om du använder min EV3 Explorer behöver du inte ställa in något. omedelbart efter att appen har startat för första gången kommer en standardinställning med namnet "EV3 Explorer" att väljas. Om du har en annan robot måste du först gräva djupare i inställningarna. Men vi ska prata om detta nedan.

Startar RoboCam-servern och ansluter till den

Jag ska genast säga att det inte spelar någon roll vad du gör först, starta RoboCam-servern eller anslut din smartphone till roboten. Detta kan göras i valfri ordning.

Så efter att applikationen har installerats på smartphone 1 (se diagram ovan) och öppnats kan du starta RoboCam-servern. För att göra detta, klicka på den gröna knappen till vänster, medan knappen blinkar, och verktygstipset kommer att säga "Initialisera RoboCam-servern ...". Efter ett tag, efter att servern startar, kommer bakgrunden på knappen att förvandlas till grön färg, och verktygstipset kommer att säga "RoboCam Server körs."

Om smarttelefonen ännu inte är ansluten till din Wi-Fi-router (som vi har på bilden), är det dags att göra det. När den är ansluten kommer det övre verktygstipset på den andra raden att visa adressen för att ansluta till RoboCam-servern. När du slår på servern är det ingen skillnad vad du ska slå på först, RoboCam-servern eller Wi-Fi.

Nu kan du ansluta till RoboCam-servern. För att göra detta, ta en andra smartphone eller surfplatta (jag kommer att använda en surfplatta), se till att den är ansluten till samma Wi-Fi-router, öppna en webbläsare och gå till sidan med adressen som visas i verktygstipset i RoboCam-applikationen (på bilden är det "http ://192.168.1.153:8088"). Webbläsaren du behöver använda är en av dem som det skrevs om ovan. Om du gjorde allt korrekt, kommer en sida för att ange ett användarnamn och lösenord att laddas i webbläsaren. Ange ditt användarnamn och lösenord här och klicka på knappen "Logga in". Om du inte ändrade något i inställningarna efter installationen är standardinloggningen "admin" och lösenordet är "123".

Efter det öppnas huvudsidan för RoboCam-servern, där du kommer att se en bild från kameran på smartphone 1 (se diagrammet ovan).

Som du kan se är orienteringen av smartphone 1 stående, och min surfplatta är liggande. Du kan vända på smartphone 1 så att den också är inne Landskapsorientering. I det här fallet ändras bilden på surfplattan automatiskt till liggande.

Observera att orienteringen inte ändras om du låser din smartphone 1.

För att nu göra bilden i helskärm, klicka på ikonen längst upp till höger på sidan. Detta tar bort alla onödiga knappar, webbläsarbokmärken etc. och bilden från kameran blir större.

Ansluter RoboCam till EV3

Innan du ansluter RoboCam-appen till din EV3, se till att din EV3 Robot och smartphone har både Bluetooth aktiverat och ihopparat. Se också till att motorerna är anslutna exakt till de portar som anges i robotinställningarna. Namnet på de aktuella inställningarna är skrivet i verktygstipset i mitten på den andra raden, på bilden nedan är det "EV3 Explorer". Om du byggde EV3 Explorer enligt mitt schema (se ovan) och inte ändrade inställningarna efter att du installerat RoboCam-appen, kan du vara säker på att allt är korrekt inställt. Detaljer om inställningarna kommer att skrivas nedan.

Så, om allt är klart, klicka på den centrala lila knappen. Om Bluetooth är avstängt på din smartphone kommer du att se en uppmaning att slå på den. Klicka på Ja.

Därefter kommer du att se att knappen blinkar, och istället för en ledtråd visas en lista över enheter som är ihopparade via Bluetooth. Välj din EV3-robot här (det är "EV3" på bilden, men dina EV3-inställningar kan ha ett annat namn).

Appen ansluter sedan till EV3.

Om klienten vid denna tidpunkt är ansluten till RoboCam-servern kommer du att se hur joysticks ser ut (rektangulära och runda joysticks i bilden nedan). Efter det kan du omedelbart styra roboten.

I standardinställningarna för EV3 Explorer kommer du att ha två joysticks: en rund och en vertikal (se bilden ovan). Den vertikala joysticken styr ramhållaren på smartphonen och den runda joysticken styr robotens rörelser. Palmikonen längst upp till höger byter joysticks för att snabbt växla mellan vänster- och högerhänta kontroller. Mer om joysticks kommer att skrivas nedan.

Stoppa RoboCam-servern och koppla från EV3

När du är klar med att kontrollera roboten, innan du stänger RoboCam-applikationen, rekommenderas det att stoppa RoboCam-servern och koppla bort EV3 från smarttelefonen. Detta kan göras i valfri ordning. För att stoppa servern, klicka på grön knapp vänster. Efter det blir knappbakgrunden vit och verktygstipset visar "RoboCam-servern är nere". För att stänga av EV3, tryck på den lila mittknappen. Efter det blir bakgrunden på knappen vit, och på verktygstipset i den översta raden ser du inskriptionen "EV3 är inte ansluten". I detta fall kommer motorerna att stanna eller återgå till sitt ursprungliga läge, beroende på inställningarna.

För att gå till inställningar, klicka på grå knapp till höger.

Inställningarna är uppdelade i 2 delar: serverinställningar och robotinställningar. Låt oss först se vad som finns i serverinställningarna. Välj "Server".

Serverinställningarna är indelade i 2 grupper: kamerainställningar och säkerhetsinställningar. I kamerainställningarna kan du välja kamera (fram eller bak), bildstorlek och jpeg-kvalitet. Ju mindre du ställer in bildstorleken, desto mjukare och snabbare blir videoöverföringen till klienten, men bildkvaliteten försämras. Videoöverföring och JPEG-kvalitet har en liknande effekt: ju bättre JPEG-kvalitet (90 procent eller mer), desto bättre bättre bild, men lägre hastighet, och vice versa än sämre kvalitet JPEG (40 procent eller mindre) snabbare hastighet, men sämre bild. Välj det som är bäst för dig.

I säkerhetsinställningarna kan du ändra förarens namn och lösenord (som standard är namnet "admin" och lösenordet är "123"). Observatörer är också aktiverade som standard. Observatörer kan se bilden från kameran parallellt med dig, men de kan inte styra roboten. Du kan också ställa in ett namn och lösenord för observatören (standardnamnet är "gäst" och lösenordet "123"). För att inaktivera observatörer, avmarkera kryssrutan "Tillåt observatörer".

Antalet förare och observatörer är inte begränsat, men att ansluta mer än en drivrutin kan orsaka konflikter när man styr och sänder en videoström samtidigt. Det rekommenderas inte att ansluta mer än en drivrutin till RoboCam-servern. Ett stort antal observatörer kan också påverka videoöverföringen negativt. Det är tillrådligt att minska antalet observatörer till ett minimum eller inaktivera denna funktion helt och hållet.

Efter att ha ändrat inställningarna kan du spara dem genom att klicka på knappen "SPARA" uppe till höger eller avsluta utan att spara genom att klicka på knappen "AVBRYT" eller pilen uppe till vänster. Efter att ha sparat serverinställningarna kan klienter kopplas bort och måste anslutas igen.

Lista över robotinställningar

Den andra delen av RoboCam-programinställningarna är robotinställningarna. Klicka på "Robot" för att gå till listan över robotinställningar.

I listan med robotinställningar kan du se inställningarna för alla dina robotar. Du kan lägga till eller ta bort inställningar när som helst genom att klicka på LÄGG TILL respektive BORT-knappen längst upp till höger. Och precis under knapparna kan du se de aktuella inställningarna. Det här objektet används för att växla mellan inställningarna för dina robotar. Låt oss nu titta på EV3 Explorer-inställningarna. För att göra detta, välj EV3 Explorer från listan.

Allra högst upp är allmän information: robotens namn och beskrivning. Titeln och beskrivningen visas i listan så att du enkelt kan hitta önskade inställningar. Namnet visas också i programmets huvudskärm under mittknappen, med vilken du ansluter till EV3. Nedan finns joystickinställningarna.

Totalt kan du konfigurera upp till 4 joysticks, men endast ett par joysticks 1-2 eller 3-4 kommer att vara synliga på klientens skärm åt gången. Men om du använder joystick 1 och 3 kommer de fortfarande inte att synas samtidigt, eftersom tillhör olika par och du kommer att se antingen joystick 1 eller joystick 3. Synligheten för varje joystick aktiveras av " Synlighet". Om du har aktiverat 2 par joysticks, kommer en knapp att dyka upp på klientskärmen för att växla mellan par.

Så i inställningarna kan du se grupperna Joystick 1, Joystick 2, Joystick 3 och Joystick 4. Var och en av dem innehåller inställningar för en joystick. Låt oss se inställningarna för "Joystick 1". Kryssrutan "Synlighet", som du redan förstått, visar eller döljer joysticken. Om kryssrutan inte är markerad kommer inställningarna för denna joystick att döljas.

Lite lägre i rullgardinsmenyn " Formuläret» Du kan välja formen på joysticken, och tillsammans med formen och dess egenskaper. Följande joystick-former är tillgängliga: vertikala, horisontella, runda, kvadratiska, pilar, vertikala pilar och horisontella pilar. Så här ser de listade joysticks ut:

Den vertikala joysticken uppfattar endast höjden av att röra den, d.v.s. han bryr sig inte om du rörde honom till vänster eller höger, huvudsaken är på vilken höjd. Beröringskoordinaten för den kommer att variera från -100 vid den lägsta punkten till 100 vid den högsta punkten med 0 i mitten.

Den horisontella joysticken fungerar på liknande sätt, men horisontellt. För honom spelar det ingen roll på vilken höjd beröringen sker, det viktigaste är till vänster eller till höger. Här beräknas beröringskoordinaten horisontellt från -100 vid den vänstra punkten till 100 vid den högra punkten med 0 i mitten.

Runda och fyrkantiga joysticks liknar varandra. Här definieras beröringskoordinaterna längs de horisontella och vertikala axlarna, också i intervallet från -100 till 100 med 0 i mitten. Men i en cirkulär joystick kan beröring inte gå utanför cirkeln. De där. om kontaktpunkten är utanför cirkeln, kommer punkten att tas vid skärningspunkten för linjen från kontaktpunkten till cirkelns mitt med cirkeln. Detta kan ses tydligare i figuren nedan.

Pil-joysticks är inte känsliga för beröringspunkten, huvudsaken är vilken pil du rör. Om du trycker på uppåtpilen anses joystickens vertikala koordinat vara 100 och den horisontella koordinaten är 0. För nedåtpilen kommer joystickens horisontella koordinat också att vara 0, och den vertikala koordinaten blir -100. På samma sätt med vänster- och högerpilarna: den vertikala koordinaten för joysticken kommer att vara 0, och den horisontella koordinaten kommer att vara -100 respektive 100.

Direkt under formuläret väljs typ av joystick i rullgardinsmenyn " Typ". Här kan du välja ett av följande värden: Independent Motors, Steering 1, Steering 2 och Mailbox.

Joysticks med typer " Taxikörning 1"och" Taxi 2» låter dig styra en robot med två oberoende drivande hjul, som EV3 Explorer. Koordinaterna för att röra sådana joysticks kommer automatiskt att omvandlas till kommandon för motorerna. För joysticken behöver du bara välja vilken port som ska ha vänster och vilken som ska ha rätt hjul. Men detta kommer att diskuteras nedan.

"Steering 1" låter dig köra en tvåhjulig robot som en bil. Här kommer du inte att kunna placera ut roboten på plats. Ju närmare beröringen är den vertikala mitten, desto långsammare är hastigheten. "Steering 2" låter roboten snurra på plats.

Joystick typ " oberoende motorer» omvandlar den horisontella koordinaten för beröringen till kommandon till motorn, oavsett den vertikala koordinaten. För joysticken måste du ange vilken motor som ska styras vid ändring av den horisontella koordinaten och vilken vid ändring av den vertikala koordinaten. Denna typ av joystick kan användas för att styra en maskin där en motor vrider ratten och den andra motorn vrider drivhjulen. I det här fallet måste ändringen i den horisontella koordinaten ställas in på rotationen av den första motorn, och ändringen i den vertikala koordinaten - till rotationen av den andra motorn.

Joystick typ " Brevlåda' kommer helt enkelt att skicka beröringskoordinaterna till brevlådor EV3. För att få din robot till liv måste du skriva ett EV3-program som bearbetar dessa koordinater. Med den här typen av joystick kan du göra mer komplexa robotstyrningsmodeller, eftersom. Du kan implementera din egen algoritm för att konvertera koordinater från joysticken till motorkommandon. Till exempel kommer du att kunna styra Gyroboy EV3. Joystick 1 skickar koordinater till brevlådor som heter x och y, joystick 2 till brevlådor w och z, joystick 3 till brevlådor a och b och joystick 4 till brevlådor c och d.

Nästa två inställningar End touch (för horisontell axel)"och" Sluttryck (för vertikal axel) ” styr vad som händer när du slutar röra joysticken. Här kan du välja ett av två alternativ: "Återgå till noll" eller "Behåll position". Återgå till noll är vettigt i de flesta situationer, om du till exempel behöver att roboten ska stanna när du slutar röra joysticken, är alternativet Återgå till noll precis rätt. Alternativet Spara position är användbart när du behöver komma ihåg den senaste beröringskoordinaten. Det här alternativet används till exempel för att luta ramen på EV3 Explorer. Den här inställningen är tillgänglig för alla joystickformer utom pilspakar.

Om du använder typen av joystick "Independent motors", "Steering 1" eller "Steering 2", så nedan hittar du portinställningarna för denna joystick. De portar som styrspaken kommer att styra kan läggas till och tas bort. För att göra detta finns knapparna "ADD" och "DELETE". Antalet portar är inte begränsat. Längst ner visar den första bilden inställningarna för joysticktypen "Independent Motors", och den andra bilden visar inställningarna för joysticktyperna "Steering 1" och "Steering 2". Som du kan se är det en liten skillnad.

Låt oss gå igenom portinställningarna. Inställning " joystick axel" visas endast för joysticken "Oberoende motorer". Det finns två alternativ här: "Horisontell" och "Vertikal". Om du väljer "Horisontell", kommer motorn att reagera endast när koordinaten för beröringen på den horisontella axeln ändras, och om du väljer "Vertikal", då vid beröring på den vertikala axeln.

Inställning " Motor" visas endast för en joystick med typen "Steering 1" eller "Steering 2". Här väljer du mellan "Vänster" och "Höger".

Inställning " EV3-tegel” kommer att behövas om du har satt ihop en robot med hjälp av flera EV3-klossar kopplade i en “girland”. Här kan du välja ett Brick-nummer från 1 till 4. Om du bara har en EV3 Brick, ska detta alltid vara 1.

Inställning " Portnummer» Du kan välja motorport från A till D.

Inställning " Variabelt värde " visas endast för joysticken "Oberoende motorer". Två alternativ är möjliga här: "Motoreffekt" och "Motorrotationsvinkel". Om du väljer " Motor kraft”, så kommer joysticken att påverka motorns effekt, d.v.s. ju längre från mitten av joysticken du rör, desto snabbare snurrar motorn. Om du väljer " Motorns rotationsvinkel”, så kommer joysticken att påverka motorns rotationsvinkel, d.v.s. ju längre från mitten av joysticken du rör, desto större vinkel motorn kommer att snurra. I detta fall kommer effekten för motorn att justeras genom att ställa in " Kraft". Ju större detta nummer, desto snabbare kommer motorn att reagera på en förändring i beröringskoordinaten, och desto bättre håller den vinkeln.

Ställa in kryssrutan " Invertera" låter dig invertera den beräknade effekten eller vinkeln, och " Koefficient» öka eller minska det beräknade värdet.

När du markerar rutan " Att bromsa”, kommer motorerna att stanna snabbt, d.v.s. kommer att sakta ner. När den här kryssrutan är avmarkerad kommer motorerna att snurra under en tid av tröghet tills de stannar helt.

Det är faktiskt alla inställningar som finns i RoboCam-programmet. Om något är oklart, skriv i kommentarerna.

Anslutning utan router

Nu några knep som kan göra det lite bekvämare att använda RoboCam-appen. Om det inte finns någon router i närheten, till exempel om du är utomhus, kan du upprätta en anslutning mellan smartphone 1 och smartphone eller surfplatta 2 direkt. För att göra detta måste du aktivera hotspot på din smartphone 1 (hotspot in Android-system vanligtvis aktiverat i nätverksanslutningsinställningar). Efter att ha slagits på förvandlas smartphone 1 till en W-Fi-router och du kan enkelt ansluta en surfplatta eller smartphone 2. Så här kommer anslutningen att se ut schematiskt.

Du kan ta reda på adressen till RoboCam-servern på samma sätt från verktygstipset till knappen. I de flesta fall, för en sådan åtkomstpunkt, kommer adressen alltid att vara http://192.168.43.1:8088.

Använda smartphone 1 som joystick

Det finns ett annat knep du kan göra med RoboCam-appen. På smartphone 1 (på vilken du har RoboCam-applikationen installerad), starta servern, anslut till roboten och sedan på samma smartphone, starta en webbläsare (naturligtvis en som stöder HTML5) och gå till http://localhost :8088. Du kommer att se en sida för att ange ett användarnamn och lösenord. Logga in som förare. Efter att ha gått in kommer du att se joysticks och kunna styra roboten. Sant, i det här fallet kommer bilden från kameran inte att överföras. Wi-Fi kan stängas av.

Resultat

Jag hoppas att jag har gett tillräckligt med information om hur RoboCam-appen kan användas. Om du har några frågor om programmet eller har förslag kan du lämna dem i kommentarerna till den här artikeln eller i communityn.

Byggrobotar - perfekt tillfälle att kombinera att spela och lära sig grundläggande programmeringsfärdigheter. Det är därför de är så populära i världen.

De skiljer sig inte bara från tillverkare utan också genom programmeringsmetoder och kapaciteter, typer av fästelement, såväl som material.

De flesta av de förenklade (för nybörjare) och robotar kommer med en speciell programvara, vilket gör att du enkelt kan ställa in kommandon till din skapelse. I mer avancerade modeller måste du först lära dig C-baserade språk.

LEGO Mindstorms

Konstruktören finns i två typer:

  • barn;
  • Avancerad.

I barnkammaren, endast ett fåtal motorer, glödlampor, och instruktioner med möjliga alternativ församlingar. Men med LEGO behövs ofta instruktionerna inte längre efter den första monteringen, och fantasin spelar in.

Det är värt att notera att även om programmering av dessa robotar är möjlig, finns det inga styrenheter i denna uppsättning, vilket innebär att roboten alltid kommer att vara ansluten till datorn med en USB-kabel.

Ett avancerat set öppnar upp för mycket mer utrymme för fantasi. Det finns i flera varianter och generationer (på det här ögonblicket tre generationer). De skiljer sig åt i antalet delar, närvaron av ytterligare mikrodatorer, såväl som olika sensorer och andra enheter. Mikrodatorer i denna serie är utrustade med operativsystemet Linux. Dessa system stöder inte bara speciella programmeringsspråk, utan även C++, C och till och med Python.

För att underlätta omprogrammering av roboten kan du använda det officiella programmet från LEGO, som låter dig anpassa elementen med ett intuitivt gränssnitt.

Lego har legat i framkant när det gäller att bygga robotar i över ett decennium. Tävlingar anordnas för att skapa, där huvudpriset oftast är en budgetplats på ett prestigefyllt universitet.

LEGO Mindstorms är ett av 17 byggalternativ

HUNA

Detta är ett relativt nytt varumärke, ursprungligen från Sydkorea, som gradvis vinner popularitet i kretsarna för ung cybernetik. Det finns två typer av HUNA-kit. Deras grundläggande skillnad ligger i det faktum att delarna i ett fall är gjorda av plast och i det andra - av metall. Men samtidigt kan de kombineras, eftersom de har en gemensam princip för att ansluta delar.

Du kan lära dig mer om fascinerande metallkonstruktörer för pojkar.

HUNA plastsatser är designade för barn över sex år, eftersom de inte ens kräver kunskap om grunderna i programmering.

"Hjärnan" i järnsatser är Arduino kontroller, som redan har en speciell firmware. Programmeringsmiljön här är det vanliga C-formade språket för Arduino, men för större bekvämlighet visualiserades det.

Tack vare Arduino, såväl som mer avancerade system, är dessa kit specialiserade för en publik som har nått femton års ålder. Det vill säga de som redan vuxit ur Mindstorms.

Makeblock

Nästa konstruktör på vår lista är den kinesiska Makeblock. Liksom i föregående fall används Arduino-elektronik här. Antalet set som säljs på den officiella webbplatsen är helt enkelt enormt. Du kan hitta både billiga kit med vanliga bilar, och ganska seriösa kit som låter dig skapa din egen 3D-skrivare.

Alla Makeblock-delar är tillverkade av aluminium som är elektrostatiskt lackerade (precis som på bilar). Sannolikheten för att detaljerna med tiden kommer att se fula ut tenderar alltså till noll.

Från intressanta modeller det bör noteras de som utför ritningar, bland dem:

  • mScara– en robotarm, på vilken du kan sätta en laser istället för en markör;
  • mSpider- han ritar i vertikala plan, rör sig som en spindel på snören;
  • mCar- en maskin som ritar med en markör där den åker.

Också för dessa robotar finns det speciell programvara som låter dig skapa en ritning av vilken komplexitet som helst. För att göra detta, ladda bara upp den till grafikredigerare program.

#Struktor

Denna konstruktör är tillverkad i Ryssland och skiljer sig från andra genom att dess delar är gjorda av skummad PVC. Deras tjocklek är fem millimeter, vilket gör att du kan skapa små, men tillräckligt starka strukturer.

Och det faktum att PVC är ett mjukt material låter oss bestämma eviga problem designers - detaljerna är inte som du vill se dem. I det här fallet allt löses med en vanlig kontorskniv eller skalpell.

Fördelar med PVC:

  • låg kostnad;
  • enkel bearbetning - bara beväpna dig med en kniv, penna och linjal;
  • hög styrka;
  • fuktmotstånd;
  • brandsäkerhet - antändningstemperaturen för PVC-plåt överstiger 400 grader Celsius.

Tillverkare erbjuder att lösa låg strukturell styrka på två sätt. Det första är att helt enkelt limma delarna. Bäst av allt för sådana ändamål är ett speciellt lim "Cosmofen" lämpligt. Det andra sättet är att kombinera #Structor med sovjetisk (eller liknande) järnkonstruktör.

#Structor från "Amperka"

Även om delarna från en sådan behandling inte kommer att hålla länge, kan du alltid köpa ett plastark och klippa nya. Ritningar av delar är fritt tillgängliga, och ingen uteslöt fantasi.

#Struktorelement styrs av Arduino. Och på grund av mångsidigheten hos materialet från vilket designelementen är gjorda, integreras alla sensorer, servodrivare eller motorer enkelt i designen.

Förarga

Företaget är främst känt för sina vibrationsrobotar. Men få människor vet att den också tillverkar byggsatser för att bygga fullfjädrade robotar. Satsen är designade för barn över tio år. Men tack vare det breda utbudet av produkter kan de även användas i skolor eller universitet.

Om en vara saknas kan du alltid köpa den separat. Tillverkarens webbplats har många olika sensorer, motorer och andra delar av designern. Dessutom, genom att köpa ytterligare delar, kan du öka produkternas komplexitet.

Endast i uppsättningarna av det koreanska företaget Vex finns växellådor eller Elon-hjul.

Programmering sker i en av flera miljöer. Det är tre onsdagar. Den första är en skärm där blocken helt enkelt dras i stället för att skriva kommandon. Den andra är klassiska flödesscheman, som i datavetenskapslektioner. Den tredje miljön är väldigt lik programvaran från LEGO – samma dra och släpp-block med kommandon och värden.

En anmärkningsvärd funktion är också närvaron av VEX Assembler-programvara. Det här är en 3D-redigerare där du kan designa och testa din robot innan du börjar bygga den live.

VEX Robotics från HEXBUG

fischertechnik

Uppsättningar av designers produceras av ett tyskt företag. ROBOTICS-serien, som öppnar upp en värld av robotar för barn, har sex set. Alla erbjuder sig att skapa flera robotar som utför vissa funktioner. Som med alla byggsatser börjar det roliga i det ögonblick som alla instruktioner har prövats.

För att undvika brist på delar och elektroniska komponenter kan expansionssatser köpas separat, fjärrkontroll och mycket mer.

Styrenheter som säljs separat förtjänar särskild uppmärksamhet.Även om deras kostnad är jämförbar med kostnaden för en hel uppsättning, åsidosätter gränserna de öppnar lätt detta faktum.

Det finns två typer av kontroller på marknaden:

  • RoboTX;
  • Robo TXT.

Det höga priset för dem beror på det faktum att dessa inte bara är kontroller, utan riktiga mikrodatorer med Wi-Fi, Bluetooth-stöd och ganska kraftfull "fyllning" för sin lilla storlek. För att förbättra prestandan kan dessa kontroller kombineras till ett nätverk.

Programmering sker på gratis program Robopro. Alla kommandon ställs in med logiska block, vilket gör att du kan lära ditt barn grunderna i programmering på ett lekfullt sätt.

TRIC

Konstruktören kommer från "född" i Ryssland. Dess tillverkare bestämde sig för att hjälpa robotentusiaster som använder sovjetiska metallkonstruktörer. Därför har alla delar hål med samma tio millimeter som järndesigners.
Denna konstruktör är ny på marknaden, men har redan etablerat sig som mångsidig och mycket bekväm.

Det finns för närvarande fyra typer av kit:

  • startande;
  • pedagogisk;
  • skola;
  • konkurrenskraftig.

Deras skillnad är i antalet delar och elektronik. I alla set hittar du en mikrokontroller, en mikrofon och en videokamera eller sensorer, lysdioder och hjul.

TRIK-mikrokontrollern körs på Linux och har en processor med 24 megahertz och hela 256 MB ombord. random access minne. Den kan även utökas med ett Flash-kort.

TRIX monteringssats

Skapare given konstruktör beslutade att inte koppla styrenheten till en programmeringsmiljö. Därför stöder den C, C++, Python och till och med Java. För den som bara ska lära sig programmering finns det en speciell programmeringsmiljö designad för TRIK-styrenheten.

Eftersom kontrollern stöder många kommandon finns det en app för smartphones under Android kontroll. Kommandon överförs via Wi-Fi.

MOSSA


Det amerikanska företaget som kom med MOSS tog en icke-standardiserad väg - det övergav ledningarna.
Istället används kubformade delar som har färgade kanter. Deras syfte är följande:

  1. Grön - överföring av el från batteriet.
  2. Röd - datainmatning.
  3. De bruna kanterna är datautgången.
  4. Blå - dessa kanter överför både el och data. De behövs för att ansluta delar med hjälp av ett flexibelt element.

Ja, designen är ganska komplicerad, men om du förstår det kommer fantasin att skapa robotar inte längre att stoppas. Och för att förstå vad som är kärnan i det, kan även ett barn på 8 år, som designern är designad för, göra det. Modulerna är anslutna till varandra med hjälp av metallkulor fästa på magneter. Dessa magneter är placerade i hörnen på modulerna.

Robo Wunderkind av MOSS

Programmering av mikrokontroller kan göras på två program. Den första är en visualizer med ytterligare alternativ. Den är lämplig för dem som inte är så väl insatta i C-kod.

Det andra programmet riktar sig till dem som är väl insatta i det. Den kompilerar din kod och överför den till styrenheten. Båda dessa program fungerar på Windows och Mac OS men stöds inte av Linux.

För fjärrstyrning av MOSS-roboten finns flera program för Mobil enheter. Detta inkluderar kontrollpaneler, export av data från sensorer, ritning av grafer och mycket mer. Alla program är tillgängliga för iOS, och några för Android.

För barn förskoleåldern du kan välja ett kit för montering utan en elektrisk komponent, till exempel.

Det är värt att notera att recensionen inte tog hänsyn till designers värda över hundra tusen rubel, såväl som de som kräver någon form av lödning.

MECCANO-robot styrd av smartphone eller surfplatta

Video

Den här videon kommer att berätta i detalj om programmerbara robotar: vad de är och vilken som är bättre att välja.

För att välja en konstruktör måste du bestämma vem den är för:

  • LEGO Mindstorms passar bäst för ett barn som gillar robotar. Och eftersom de flesta barn har en omfattande LEGO-samling, är ett barns fantasi verkligen obegränsad.
  • Om du letar efter en konstruktör för dig själv, bör du vara uppmärksam på TRIK eller #Struktor, eftersom de båda är kompatibla med den sovjetiska järnkonstruktören, och den andra är också gjord av PVC.
  • Men på ett eller annat sätt kommer dessa konstruktörer att avsevärt förbättra ditt barns förmåga att tänka logiskt, samt förbereda honom för vad som kommer att vänta honom i skolan eller college.

Det kommer inte att vara överflödigt, innan du köper, att studera i detalj varje monteringssats du gillar. Och tänk också på att ge barnet till amatörradioklubben, om han gillar det här ämnet.

Huvudmodulen i Lego Mindstorms EV3-konstruktören kan fungera med leJOS firmware, som låter dig köra Java-applikationer. Speciellt för detta har Oracle släppt och underhåller en separat version av den fullfjädrade Java SE.

Den normala JVM tillät mig att använda inbyggd i den Java-protokoll Management Extensions (JMX) för att implementera fjärrstyrning av robotarmen. För att kombinera kontrollelement, sensoravläsningar och bilder från IP-kameror installerade på roboten används ett minnesdiagram som gjorts på AggreGate-plattformen.


Roboten i sig består av två huvuddelar: chassit och armmanipulatorn. De styrs av två helt oberoende EV3-datorer, där all koordinering sker via kontrollservern. Det finns ingen direkt koppling mellan datorer.

Båda datorerna är anslutna till lokalens IP-nätverk via WiFi-adaptrar NETGEAR WNA1100. Roboten styrs av åtta Mindstorms-motorer - 4 av dem är "stora" och 4 är "små". Det finns även infraröda och ultraljudssensorer för att automatiskt stanna vid ett hinder vid backning, två beröringssensorer för att stoppa rotationen av manipulatorn på grund av ett hinder, och en gyroskopisk sensor som underlättar förarens orientering genom att visualisera axelns position.

Två motorer är installerade i chassit, som var och en överför kraft till ett par larvdrifter. En annan motor roterar hela manipulatorarmen 360 grader.

I själva manipulatorn är två motorer ansvariga för att höja och sänka "axeln" och "underarmen". Ytterligare tre motorer är sysselsatta med att höja/sänka borsten, vrida den 360 grader och klämma/frigöra "fingrarna".

Den mest komplexa mekaniska enheten är "borsten". På grund av behovet av att flytta tre tunga motorer till "armbågsområdet" visade sig designen vara ganska knepig.

I allmänhet ser allt ut så här (en låda med tändstickor hittades knappast för skala):

Två kameror är installerade för att överföra bilden:

  • Vanlig Android-smartphone med installerad IP-webbkameraapplikation för Översikt(bilden HTC One)
  • Autonom Wi-Fi mikrokamera AI-Ball, installerad direkt på "borsten" på manipulatorn och hjälper till att ta tag i föremål med komplex form

EV3-programmering

Robotens mjukvara visade sig vara så enkel som möjligt. De två datorernas program är väldigt lika, de startar JMX-servern, registrerar MBeans som motsvarar motorerna och sensorerna och går i viloläge i väntan på JMX-operationer.

Kod för huvudprogramvaruklasserna för armmanipulatorn

public class Arm ( public static void main(String args) ( try ( EV3Helper.printOnLCD("Starting..."); EV3Helper.startJMXServer("192.168.1.8", 9000); MBeanServer mbs = ManagementFactory.getPlatformMBeanEV3Large(); motor = new EV3LargeRegulatedMotor(BrickFinder.getDefault().getPort("A")); LargeMotorMXBean m = new LargeMotorController(motor); ObjectName n = new ObjectName("robot:name=MotorA"); mbs.registerMBean(m, n ); // Registrera andra motorer här EV3TouchSensor touchSensor = ny EV3TouchSensor(SensorPort.S1); TouchSensorMXBean tos = new TouchSensorController(touchSensor); n = new ObjectName("robot:namn=Sensor1"); mbs.registerMBean)(tos,tos ; // Registrera andra sensorer här EV3Helper.printOnLCD("Running"); Sound.beepSequenceUp(); Thread.sleep(Integer.MAX_VALUE); ) catch (Throwable e) ( e.printStackTrace(); ) ) ) public class EV3Helper ( statisk void startJMXServer(Strängadress, int port) ( MBeanServer server = ManagementFactory.getPlatf ormMBeanServer(); försök ( java.rmi.registry.LocateRegistry.createRegistry(port); JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + adress + ":" + String.valueOf(port ) + "/server"); rekvisita = ny HashMap (); props.put("com.sun.management.jmxremote.authenticate", "false"); props.put("com.sun.management.jmxremote.ssl", "false"); JMXConnectorServer connectorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, rekvisita, server); connectorServer.start(); ) catch (Undantag e) ( e.printStackTrace(); ) ) static void printOnLCD(String s) ( LCD.clear(); LCD.drawString(s, 0, 4); ) )

För varje typ av sensor och motor har ett MBean-gränssnitt och en implementeringsklass skapats, som direkt delegerar alla anrop till klassen som ingår i leJOS API.

Exempel på gränssnittskod

offentligt gränssnitt LargeMotorMXBean (public abstract void forward(); public abstract boolean suspendRegulation(); public abstract int getTachoCount(); public abstract float getPosition(); public abstract void flt(); public abstract void flt(boolean immediateReturn); public abstract void stop(boolean omedelbarReturn); public abstract boolean isMoving(); public abstract void waitComplete(); public abstract void rotateTo(int limitAngle, boolean immediateReturn); public abstract void setAcceleration(int acceleration); public abstract int getAcceleration(); public abstrakt int getLimitAngle(); public abstract void resetTachoCount(); public abstract void rotate(int angle, boolean immediateReturn); public abstract void rotate(int angle); public abstract void rotateTo(int limitAngle); public abstract boolean isStalled(); public abstract void setStallThreshold(int error, int time); public abstract int getRotationSpeed(); public abstract float getMaxSpeed(); public abstract void bakåt(); public abstract void stop(); public abstract int getSpeed(); public abstract void setSpeed(int speed); )

Exempel på MBean-implementeringskod

public class LargeMotorController implementerar LargeMotorMXBean ( final EV3LargeRegulatedMotor motor; public LargeMotorController(EV3LargeRegulatedMotor motor) ( this.motor = motor; ) @Override public void forward() ( motor.forward(); ) @Override public boolean suspendRegulation() ( return motor. suspendRegulation(); ) @Override public int getTachoCount() ( return motor.getTachoCount(); ) @Override public float getPosition() ( return motor.getPosition(); ) @Override public void flt() ( motor.flt() ; ) @Override public void flt(boolean immediateReturn) ( motor.flt(immediateReturn); ) // Liknande delegeringsmetoder hoppades över )

Konstigt nog slutade programmeringen där. Inte en enda rad kod skrevs på serversidan och operatörens arbetsplats.

Serveranslutning

Roboten styrs direkt av AggreGate IoT-plattformsservern. Installerad gratis version Produkten AggreGate Network Manager inkluderar en JMX-protokolldrivrutin och låter dig ansluta upp till tio JMX-värdar. Vi kommer att behöva ansluta två - en för varje EV3-block.

Först och främst måste du skapa ett enhets-JMX-konto genom att ange URL-adressen som anges när du startar JMX-servern i inställningarna:

JMX-enhetsanslutningsegenskaper


Därefter väljer du tillgångarna (d.v.s. MBeans i det här fallet) som kommer att läggas till i enhetsprofilen:

Att välja MBeans


Och efter några sekunder tittar vi och ändrar de aktuella värdena för alla undersökta MBean-egenskaper:

Enhetens ögonblicksbild


Du kan också testa olika operationer genom att manuellt anropa MBean-metoder som forward() och stop().

Lista över operationer


Konfigurera sedan avfrågningsperioderna för sensorerna. Hög frekvens polling (100 gånger per sekund) används eftersom kontrollservern är i det lokala nätverket tillsammans med roboten och det är servern som bestämmer sig för att stoppa rotationen när den träffar ett hinder osv. Lösningen är naturligtvis inte industriell, men i ett väl fungerande Wi-Fi-nätverk inom samma lägenhet visade det sig vara ganska lagom.

Omröstningsperioder


Operatörsgränssnitt

Låt oss nu gå vidare till att skapa operatörsgränssnittet. För att göra detta skapar vi först ny widget och kasta i den nödvändiga komponenter. I den slutliga fungerande versionen ser det ut så här:

Faktum är att hela gränssnittet består av flera paneler med knappar, reglage och indikatorer, grupperade i olika rutnätslayouter, och två stora videospelare som sänder bilder från kameror.

Visa inifrån gränssnittsredigeraren

Hela formen:

Vy med containerpaneler som visas:


Nu, som processkontrollarbetarna säger, återstår det att "återuppliva mnemoniken". För detta, den sk bindningar binda egenskaper och metoder för grafiska gränssnittskomponenter med egenskaper och metoder för serverobjekt. Eftersom EV3-datorerna redan är anslutna till servern kan vår robots MBeans också vara serverobjekt.

Hela operatörsgränssnittet innehåller cirka 120 bindningar, varav de flesta är av samma typ:

Hälften av bindningarna av samma typ implementerar kontroll genom att klicka på knapparna som finns på mnemoniken. Detta är vackert, bekvämt att testa, men helt olämpligt för robotens verkliga rörelse och godsrörelse. Bindande aktivatorer från denna grupp är händelser mus nedtryckt Och mus släppt olika knappar.

Den andra halvan av bindningarna låter dig styra roboten från tangentbordet genom att först trycka på tangentbordskontrollknappen. Dessa bindningar reagerar på händelser knapptryckt Och nyckel släppt, och i tillståndet för varje bindning skrivs det vilken knappkod du behöver svara på.

Alla kontrollbindningar anropsmetoder fram(), bakåt() Och sluta() olika MBeans Eftersom händelseleverans är asynkron är det viktigt att funktion anropar fram()/bakåt() och efterföljande samtal sluta() inte förvirrad. För detta läggs bindningar som anropar metoder för en MBean "a till en kö (kö).

Två separata grupper av bindningar ställer in starthastigheterna och accelerationerna för motorerna (nu implementeras detta på serversidan med modellen, så dessa bindningar är inaktiverade) och ändrar hastigheter/accelerationer när du flyttar skjutreglagen för hastighet och acceleration.