EV3 blok: izbornik, senzori za pregled, programiranje. LEGO Mindstorms Education EV3 - Pregled konstruktora. Pročitajte najnovije vijesti iz svijeta Lego - EduCube Lego mindstorms ev3 blok zvučni opis

Opis prezentacije za pojedinačne slajdove:

1 slajd

Opis slajda:

2 slajd

Opis slajda:

EV3 Brick sučelje EV3 Brick je kontrolni centar koji pokreće vaše robote. Zaslon, kontrolne tipke Brick Control Button i EV3 Brick sučelje, koje sadrži četiri glavna prozora, daju vam pristup nevjerojatnom nizu jedinstvenih značajki EV3 Brick. To mogu biti jednostavne funkcije, poput pokretanja i zaustavljanja programa, ili složene, poput pisanja samog programa.

3 slajd

Opis slajda:

Sučelje: EV3 izbornik ima izbornik koji se sastoji od 4 dijela: Nedavni programi Navigacija datotekama Brick Applications Brick Settings

4 slajd

Opis slajda:

Nedavni programi Pokrenite programe nedavno preuzete s vašeg stolnog računala. Ovaj prozor će ostati prazan dok ne počnete preuzimati i pokretati programe. Ovaj prozor će prikazati programe koje ste nedavno pokrenuli. Zadani program na vrhu popisa je posljednji pokrenut program.

5 slajd

Opis slajda:

Upravitelj datoteka Pristup i upravljanje svim datotekama pohranjenim u memoriji mikroračunala kao i na memorijskoj kartici. Iz ovog prozora moći ćete pristupiti i upravljati svim datotekama na vašem EV3 Bricku, uključujući datoteke pohranjene na vašoj SD kartici. Datoteke su organizirane u projektne mape, koje, osim stvarnih programskih datoteka, sadrže i zvukove i slike korištene u svakom projektu. Datoteke se mogu premještati ili brisati pomoću navigatora datoteka. Programi stvoreni korištenjem okruženja za programiranje modula i aplikacija za bilježenje podataka modula odvojeno su pohranjeni u mapama BrkProg_SAVE i BrkDL_SAVE.

6 slajd

Opis slajda:

Aplikacije Upravljačka jedinica EV3 ima 4 unaprijed instalirane aplikacije: A. Port View. B. Upravljanje motorom. B. IR kontrola. D. Okolina za programiranje modula.

7 slajd

Opis slajda:

A. Port View U prvom prozoru aplikacije Port View možete brzo vidjeti na koje su portove spojeni senzori ili motori. Koristite EV3 kontrolne tipke za navigaciju do jednog od zauzetih priključaka i vidjet ćete trenutna očitanja senzora ili motora. Instalirajte više senzora i motora i eksperimentirajte s različitim postavkama. Za pregled ili promjenu trenutnih postavki za instalirane motore i senzore, pritisnite središnju tipku. Za povratak na glavni prozor aplikacije modula, pritisnite gumb "Natrag".

8 slajd

Opis slajda:

B. Kontrola motora Kontrolirajte kretanje naprijed ili natrag bilo kojeg motora spojenog na jedan od četiri izlazna priključka. Postoje dva različita načina rada. U jednom načinu rada, moći ćete kontrolirati motore spojene na priključak A (pomoću tipki gore i dolje) i na priključak D (pomoću tipki lijevo i desno). U drugom načinu rada upravljate motorima spojenim na priključak B (pomoću tipki gore i dolje) i na priključak C (pomoću tipki lijevo i desno). Prebacivanje između ova dva načina rada vrši se uz pomoć središnje tipke. Za povratak na glavni prozor aplikacije modula, pritisnite gumb "Natrag".

9 slajd

Opis slajda:

IR kontrola Kontrolirajte kretanje naprijed ili natrag bilo kojeg motora spojenog na jedan od četiri izlazna porta koristeći daljinski infracrveni svjetionik kao daljinski upravljač i infracrveni senzor kao prijemnik (infracrveni senzor mora biti spojen na port 4 na EV3 kocki). Postoje dva različita načina rada. U jednom načinu rada, koristit ćete kanale 1 i 2 na udaljenom infracrvenom svjetioniku. Na kanalu 1 moći ćete kontrolirati motore spojene na priključak B (pomoću tipki 1 i 2 na udaljenom infracrvenom svjetioniku) i na port C (pomoću tipki 3 i 4 na udaljenom infracrvenom svjetioniku). Na kanalu 2 moći ćete kontrolirati motore spojene na priključak A (pomoću tipki 1 i 2) i na priključak D (pomoću tipki 3 i 4). U drugom načinu rada možete upravljati motorima na isti način, umjesto pomoću kanala 3 i 4 na daljinskom infracrvenom svjetioniku. Prebacivanje između ova dva načina rada vrši se uz pomoć središnje tipke. Za povratak na glavni prozor aplikacije modula, pritisnite gumb "Natrag".

10 slajd

Opis slajda:

EV3 Brick programsko okruženje dolazi sa softverom instaliranim na njemu. Aplikacija je slična softveru instaliranom na vašem računalu. Ove upute sadrže osnovne informacije koje su vam potrebne za početak.

11 slajd

Opis slajda:

Postavke EV3 Brick Ovaj prozor vam omogućuje pregled i podešavanje različitih općih postavki na EV3 Brick.

12 slajd

Opis slajda:

Podešavanje glasnoće Glasnoću možete povećati i smanjiti na kartici Settings na EV3.

13 slajd

Tradicionalno roboti izgrađeni na platformi Lego Mindstorms EV3 programirani su pomoću LabVIEW grafičkog okruženja. U tom slučaju, programi se pokreću na EV3 kontroleru i robot radi autonomno. Ovdje ću govoriti o alternativnom načinu upravljanja robotom - korištenjem .NET platforme koja radi na računalu.

No prije nego što prijeđemo ravno na programiranje, pogledajmo neke slučajeve u kojima ovo može biti korisno:

  • Zahtijeva daljinsko upravljanje robotom s prijenosnog računala (na primjer, pritiskom na tipke)
  • Potrebno je prikupiti podatke iz EV3 kontrolera i obraditi ih na vanjskom sustavu (na primjer, za IoT sustave)
  • Sve druge situacije kada želite napisati kontrolni algoritam u .NET i pokrenuti ga s računala spojenog na EV3 kontroler

LEGO MINDSTORMS EV3 API za .NET

EV3 kontrolerom se upravlja s vanjskog sustava slanjem naredbi na serijski port. Sam format naredbe opisan je u Communication Developer Kitu.

Ali ručna implementacija ovog protokola je dosadna. Stoga možete koristiti gotov .NET omot koji je pažljivo napisao Brian Peek. Izvorni kod ove biblioteke nalazi se na Githubu, a paket spreman za korištenje može se pronaći na Nugetu.

Spajanje na EV3 kontroler

Klasa Brick koristi se za komunikaciju s EV3 kontrolerom. Prilikom kreiranja ovog objekta, trebate proći implementaciju ICommunication sučelja u konstruktor – objekt koji opisuje kako se spojiti na EV3 kontroler. Dostupne su implementacije UsbCommunication, BluetoothCommunication i NetworkCommunication.

Najpopularniji način povezivanja je putem Bluetootha. Pogledajmo pobliže ovu metodu povezivanja.

Prije nego što se možemo programski povezati s kontrolerom putem Bluetootha, kontroler mora biti spojen na računalo pomoću postavki operacijskog sustava.

Nakon što je kontroler spojen, idite na Bluetooth postavke i odaberite karticu COM portovi. Pronašli smo našeg kontrolora, koji nam je potreban odlazni luka. Navest ćemo ga prilikom stvaranja BluetoothCommunication objekta.

Kod za povezivanje s kontrolerom izgledat će ovako:

Public async Task Connect (komunikacija ICommunication) (var communication = nova BluetoothCommunication ("COM9"); var brick = _brick = new Brick (komunikacija); await _brick.ConnectAsync ();)

Opcionalno, možete odrediti vremensko ograničenje za povezivanje s kontrolerom:

Await _brick.ConnectAsync (TimeSpan.FromSeconds (5));

Povezivanje s jedinicom putem USB-a ili WiFi-a provodi se na isti način, osim što se koriste objekti UsbCommunication i NetworkCommunication.

Sve daljnje radnje koje se izvode s kontrolerom provode se preko objekta Brick.

Okrenimo motore

Za izvršavanje naredbi na EV3 kontroleru, pogledajte svojstvo DirectCommand objekta Brick. Prvo, pokušajmo pokrenuti motore.

Pretpostavimo da je naš motor spojen na priključak A kontrolera, tada će pokretanje ovog motora pri 50% snage izgledati ovako:

Pričekajte _brick.DirectCommand.TurnMotorAtPowerAsync (OutputPort.A, 50);

Postoje i druge metode za upravljanje motorom. Na primjer, možete rotirati motor za određeni kut pomoću metoda StepMotorAtPowerAsync () i StepMotorAtSpeedAsync (). Ukupno je dostupno nekoliko metoda, a to su varijacije načina uključivanja motora - u vremenu, brzini, snazi ​​itd.

Prisilno zaustavljanje izvodi se metodom StopMotorAsync ():

Čekajte _brick.DirectCommand.StopMotorAsync (OutputPort.A, istina);

Drugi parametar označava korištenje kočnice. Ako je postavljeno na false, motor će se zaustaviti.

Čitanje vrijednosti sa senzora

EV3 kontroler ima četiri ulaza za senzore. Osim toga, motori imaju i ugrađene enkodere, što im omogućuje da se koriste kao senzori. Kao rezultat, imamo 8 portova s ​​kojih možemo čitati vrijednosti.

Portovima za čitanje vrijednosti može se pristupiti kroz svojstvo Ports objekta Brick. Portovi su skup portova dostupnih na kontroleru. Stoga, da biste radili s određenim portom, morate ga odabrati. InputPort.One ... InputPort.Four su portovi senzora, a InputPort.A ... InputPort.D su motorni koderi.

Var port1 = _brick.Priključci;

Senzori u EV3 mogu raditi u različitim načinima rada. Na primjer, EV3 senzor boje može se koristiti za mjerenje ambijentalnog svjetla, mjerenje reflektirane svjetlosti ili detekciju boje. Stoga, da bismo senzoru "rekli" točno kako ga želimo koristiti, moramo postaviti njegov način rada:

Brick.Ports.SetMode (ColorMode.Reflective);

Sada kada je senzor povezan i njegov način rada postavljen, možete čitati podatke s njega. Možete dobiti neobrađene podatke, obrađenu vrijednost i postotnu vrijednost.

Float si = _brick.Ports.SIValue; int raw = _brick.Ports.RawValue; postotak bajta = _brick.Ports.PercentValue;

Svojstvo SIValue vraća obrađene podatke. Sve ovisi o tome koji se senzor koristi i u kojem načinu rada. Na primjer, pri mjerenju reflektirane svjetlosti dobivamo vrijednosti od 0 do 100 ovisno o intenzitetu reflektirane svjetlosti (crno/bijelo).

Svojstvo RawValue vraća sirovu vrijednost primljenu od ADC-a. Ponekad ga je prikladnije koristiti za daljnju obradu i korištenje. Usput, u razvojnom okruženju EV3 postoji i mogućnost dobivanja "sirovih" vrijednosti - za to morate koristiti blok s plave ploče.

Ako senzor koji koristite očekuje da će se vrijednosti dobiti u postocima, možete koristiti i svojstvo PercentValue.

Izvršavanje naredbi u "batch"

Pretpostavimo da imamo robotska kolica s dva kotača i želimo ih postaviti na mjesto. U tom se slučaju dva kotača moraju okretati u suprotnom smjeru. Ako koristimo DirectCommand i šaljemo dvije naredbe uzastopno kontroleru, može proći neko vrijeme između njihovog izvršenja:

Pričekajte _brick.DirectCommand.TurnMotorAtPowerAsync (OutputPort.A, 50); čekati _brick.DirectCommand.TurnMotorAtPowerAsync (OutputPort.B, -50);

U ovom primjeru šaljemo naredbu za rotaciju motora A brzinom 50, nakon uspješnog završetka slanja ove naredbe, isto ponavljamo s motorom spojenim na port B. Problem je što se naredbe ne šalju odmah, pa se motori se mogu početi okretati u različito vrijeme - dok se naredba prenosi za priključak B, motor A već počet će se vrtjeti.

Ako nam je kritično da se motori vrte u isto vrijeme, možemo slati naredbe kontroleru u "seriji". U ovom slučaju, trebali biste koristiti svojstvo BatchCommand umjesto DirectCommand:

Brick.BatchCommand.TurnMotorAtPower (OutputPort.A, 50); _brick.BatchCommand.TurnMotorAtPower (OutputPort.B, -50); čekati _brick.BatchCommand.SendCommandAsync ();

Sada se pripremaju dvije naredbe odjednom, nakon čega se šalju kontroleru u jednom paketu. Kontroler, nakon što je primio ove naredbe, počet će rotirati motore u isto vrijeme.

Što još možete učiniti

Osim rotacije motora i očitavanja vrijednosti senzora, postoji niz drugih stvari koje možete učiniti na EV3 kontroleru. Neću se zadržavati na svakom od njih detaljno, navest ću samo popis onoga što se može učiniti:

  • CleanUIAsync (), DrawTextAsync (), DrawLineAsync (), itd. - manipulacija ugrađenim zaslonom EV3 kontrolera
  • PlayToneAsync () i PlaySoundAsync () - korištenje ugrađenog zvučnika za reprodukciju zvukova
  • WriteFileAsync (), CopyFileAsync (), DeleteFileAsync () (iz SystemCommand) - rad s datotekama

Zaključak

Korištenje .NET-a za upravljanje robotima Mindstorms EV3 dobar je primjer kako tehnologije "iz različitih svjetova" mogu raditi zajedno. Kao rezultat istraživanja EV3 API-ja za .NET, stvorena je mala aplikacija koja vam omogućuje upravljanje EV3 robotom s računala. Nažalost, za NXT postoje slične aplikacije, a zaobišle ​​su EV3. Istodobno, korisni su u brzim kontroliranim robotima, na primjer u robotskom nogometu.

Aplikaciju možete preuzeti i instalirati s ove poveznice:

Odaberite način rada zaslona

Odabir načina rada
Blokiraj tekstni okvir
Ulazi
Gumb za pregled

Odaberite vrstu teksta ili grafike koju želite vidjeti pomoću odabira načina. Nakon odabira načina rada, možete odabrati ulazne vrijednosti. Dostupni ulazi će se razlikovati ovisno o načinu rada. Načini rada i ulazi su opisani u nastavku.

Možete kliknuti gumb Pregled da biste pregledali što će zaslonski blok prikazati na EV3 zaslonu. Možete ostaviti pregled otvoren dok birate ulazne vrijednosti za blok.

Koordinate zaslona

Mnogi načini prikaza bloka koriste koordinate X i Y za lociranje stavke. Koordinate određuju položaj piksela na zaslonu EV3 Brick. Položaj (0, 0) je u gornjem lijevom kutu zaslona, ​​kao što je prikazano na donjoj slici.

Dimenzije zaslona: 178 piksela širine i 128 piksela visine. Raspon koordinata X je od 0 na lijevoj strani zaslona do 177 na desnoj strani. Raspon Y koordinata je od 0 na vrhu do 127 na dnu.

Savjeti i savjeti

Možete upotrijebiti gumb Pregled u gornjem lijevom kutu bloka zaslona kako biste lakše pronašli ispravne koordinate zaslona.

Tekst - Pikseli

Tekst – način rada piksela omogućuje vam prikaz teksta bilo gdje na zaslonu EV3 Brick.

Poništi prozor postavki

Način Reset Window vraća zaslon EV3 Brick na standardni zaslon s informacijama prikazanim dok je program pokrenut. Ovaj zaslon prikazuje naziv programa i druge povratne informacije. Kada pokrenete program na EV3 bloku, ovaj se zaslon prikazuje sve dok se ne izvrši prvi blok zaslona programa.

Učiniti prikazane stavke vidljivima

Po završetku programa EV3, zaslon EV3 Brick se briše i vraća na zaslon izbornika EV3 Brick. Svaki tekst ili grafika prikazana u programu bit će izbrisana. Ako, na primjer, vaš program ima jedan blok "Screen" i ništa drugo, tada će zaslon biti obrisan tako brzo odmah nakon završetka programa da nećete vidjeti rezultate bloka "Screen".

Ako želite da se zaslon prikaže nakon završetka programa, morate dodati blok na kraj programa kako biste izbjegli trenutni završetak programa, kao što je prikazano u sljedećim primjerima.

Prikaz više stavki

Ako želite prikazati više tekstualnih ili grafičkih elemenata na zaslonu u isto vrijeme, važno je ne brisati zaslon EV3 Brick između elemenata. Svaki način rada bloka "Screen" ima ulaz "Clear screen". Ako je Clear Screen postavljeno na true, tada će se cijeli zaslon izbrisati prije prikaza stavke. To znači da za prikaz više stavki morate postaviti Clear Screen na False za svaki blok zaslona osim prvog.

Prikaz brojeva

Za prikaz numeričke vrijednosti u svom programu, spojite sabirnicu podataka na ulaz "Text" bloka "Display Text". Numerička podatkovna sabirnica automatski će se pretvoriti u tekst korištenjem pretvorbe tipa podatkovne sabirnice (vidi odjeljak

Ideja o zamjeni mikroračunala u konstruktoru s Beagleboneom ili nekim drugim nije nova. Ali s izdavanjem EV3, postalo je moguće ne samo dobiti 100% analogni, već i povećati performanse vašeg svjetlosnog robota.

Video prezentacija projekta:

E VB u potpunosti podržava sustav Lego Mindstorms Ev3 u hardveru i softveru, 100% kompatibilan sa svim Lego senzorima i motorima. Blok radi na isti način kao Lego Mindstorms EV3 blok:

Beaglebone crna- jednopločno Linux računalo. To je konkurent Raspberry Pi. Ima snažan procesor AM335x 720MHz ARM® procesor, velik broj ulaza/izlaza, mogućnosti se mogu proširiti dodatnim pločama.

Lego Mindstorms EV3 ima ARM9 procesor (TI Sitara AM180x) 300MHz pa se nadogradnja na ARM Cortex-A8 procesor (TI Sitara AM335x) 1GHz BeagleBone Black povećava produktivnost, plus postaje moguće spojiti dodatne kartice za proširenje!

Što je najvažnije, Lego Mindstorms EV3 ima otvoren opis svih softvera i hardvera!

Na primjer, sastavljena je i demonstrirana poznata robotska Rubikova kocka koja skuplja. Samo umjesto EV3 ugrađen je razvijeni EVB. Predlažemo da pogledate video:

Autori projekta već objavljuju i prodaju EVB. Planiraju značajno proširiti proizvodnju do kraja travnja 2015. Osim toga, razvili su i proizvode nekoliko kompatibilnih senzora.

Ako vam, kao i nama, nedostaju mogućnosti standardnih EV3 senzora, 4 porta za senzore u vašim robotima nisu dovoljna ili želite spojiti neke egzotične periferne uređaje na svog robota, ovaj članak je za vas. Vjerujte mi, DIY EV3 senzor je lakši nego što zvuči. "Gumb za glasnoću" sa starog radija ili par čavala zabodenih u zemlju u loncu za cvijeće kao senzor vlažnosti tla savršeni su za eksperiment.

Iznenađujuće, svaki priključak EV3 senzora skriva niz različitih protokola, uglavnom za kompatibilnost s NXT i senzorima trećih strana. Pogledajmo kako funkcionira EV3 kabel


Čudno, ali crvena žica je uzemljena (GND), zelena je plus napajanja od 4,3V. Plava žica je istovremeno SDA za I2C sabirnicu i TX za UART protokol. Osim toga, plava žica je ulaz za analogno-digitalni pretvarač za EV3. Žuta žica je i SCL za I2C sabirnicu i RX za UART protokol. Bijela žica - ulaz A/D pretvarača za NXT senzore. Crna - digitalni ulaz, za NXT kompatibilne senzore - duplira GND. Nije lako, zar ne? Idemo redom.

Analogni ulaz EV3

Svaki priključak senzora ima kanal analogno-digitalnog pretvarača. Koristi se za senzore kao što su senzor dodira (tipka), senzor svjetla NXT i senzor boje u načinu rada reflektirane svjetlosti i ambijentalnog svjetla, senzor zvuka NXT i termometar NXT.

Otpor od 910 ohma, spojen prema dijagramu, obavještava kontroler da se ovaj priključak mora prebaciti u način analognog ulaza. U ovom načinu rada možete spojiti bilo koji analogni senzor na EV3, na primjer iz Arduina. Istodobno, tečaj s takvim senzorom može doseći nekoliko tisuća anketa u sekundi, ovo je najbrža vrsta senzora.

Svijetli senzor

Termometar

Senzor vlažnosti tla

Također možete spojiti: mikrofon, tipku, IR daljinomjer i mnoge druge uobičajene senzore. Ako vaš senzor nema dovoljno napajanja od 4,3 V, možete ga napajati s 5 V iz USB priključka koji se nalazi sa strane EV3 kontrolera.

Gore spomenuti "gumb za glasnoću" (tzv. varijabilni otpornik ili potenciometar) izvrstan je primjer analognog senzora - može se spojiti na sljedeći način:

Za čitanje vrijednosti s takvog senzora u standardnom okruženju LEGO programiranja, morate koristiti plavi RAW blok

I2C protokol

Ovo je digitalni protokol, na primjer ultrazvučni senzor NXT, mnogi Hitechnic senzori, kao što su IR Seeker ili Color Sensor V2. Za druge platforme, na primjer za Arduino, postoji puno i2c senzora, možete ih i spojiti. Shema je sljedeća:

Impedanciju od 82 oma preporučuje LEGO Group, međutim, različiti izvori spominju 43 oma ili manje. Dapače, pokušali smo potpuno napustiti te otpore i sve funkcionira, barem "na stolu". U stvarnom robotu koji radi u uvjetima različitih vrsta smetnji, SCL i SDA vodovi i dalje bi trebali biti povučeni do napajanja kroz otpore, kao što je prikazano na gornjoj shemi. Brzina i2c u EV3 je prilično niska, oko 10.000 kbps, zbog čega je svima omiljeni Hitechnic Color Sensor V2 tako spor :)

Nažalost za standardni LEGO EV3-G ne postoji potpuni blok za dvosmjernu komunikaciju s i2c senzorom, ali korištenjem programskih okruženja treće strane kao što su RobotC, LeJOS ili EV3 Basic možete komunicirati s gotovo svim i2c senzorima.

Sposobnost EV3 da radi s i2c protokolom otvara zanimljivu priliku za povezivanje više senzora na jedan port. I2C protokol omogućuje spajanje do 127 slave uređaja na jednu sabirnicu. Možeš li zamisliti? 127 senzora za svaki od EV3 portova :) Štoviše, često se hrpa i2c senzora kombinira u jednom uređaju, na primjer, na fotografiji ispod, 10-u-1 senzor (sadrži kompas, žiroskop, akcelerometar, barometar, itd.)

UART

Gotovo svi standardi za EV3 senzore, s iznimkom Touch Sensora, rade preko UART protokola i zato nisu kompatibilni s NXT kontrolerom koji, iako ima iste konektore, nema UART na senzoru lukama. Pogledajte dijagram, malo je jednostavniji nego u prethodnim slučajevima:

UART senzori automatski usklađuju svoju brzinu s EV3. U početku, nakon povezivanja brzinom od 2400 kbps, dogovaraju se o načinima rada i tečajevima, a zatim prelaze na veću brzinu. Tipične brzine prijenosa za različite senzore su 38400 i 115200 kbps.
LEGO je implementirao prilično zamršen protokol u svoje UART senzore, tako da ne postoje senzori treće strane koji izvorno nisu bili namijenjeni ovoj platformi, ali su kompatibilni s njom. Ipak, ovaj je protokol vrlo prikladan za povezivanje "samostalnih"
senzori bazirani na mikrokontrolerima.
Postoji prekrasna knjižnica za Arduino, EV3UARTEmulation, koju je napisao poznati LeJOS developer Lawrie Griffiths, koja omogućuje ovoj ploči da se pretvara da je UART-LEGO kompatibilan senzor. Njegov blog LeJOS News ima mnoštvo primjera povezivanja plinskih senzora, IMU senzora i digitalnog kompasa pomoću ove biblioteke.

Video ispod je primjer korištenja domaćeg senzora. Nemamo dovoljan broj originalnih LEGO senzora udaljenosti, pa koristimo jedan od senzora domaće izrade na robotu:


Zadatak robota je krenuti iz zelene ćelije, pronaći izlaz iz labirinta (crvene ćelije) i vratiti se na početnu točku najkraćim putem bez vožnje u slijepe ulice.