Pokazywanie postów oznaczonych etykietą Lego. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą Lego. Pokaż wszystkie posty

piątek, 3 marca 2023

EV3 Python. Lego

Wgrywanie programu python na Lego EV3

Tematyka dla użytkowników zaawansowanych w programowaniu EV3. Wymaga podstawowej znajomości języka python 3.

2. ev3-micropython
3. liknij  to google site

4. Instrukcja wgrywania

Beyond Basics Ex 7-11

Ćwiczenie 7: 'czujnik Blocks'

Ja zachowałem oryginalny tytuł tego ćwiczenia, „czujnik Blocks”, choć EV3 Python nie korzysta z bloków programowych jak oprogramowanie Lego robi. 

Cel:
Gdy czujnik dotykowy nie jest wciśnięty robot okaże na miejscu w prawo z prędkością, która jest proporcjonalna do natężenia światła otoczenia. Gdy czujnik dotyku jest wciśnięty następnie robot zatrzyma się dopóki przełącznik jest wciśnięty, a kontrolka stanu będzie świecić na czerwono. Ten program nie zatrzyma sama więc trzeba zmusić program aby zatrzymać naciskając przycisk Wstecz na EV3 lub przycisk stop w Kodeksie VS jeśli uruchomił skrypt stamtąd.

Rozwiązanie:

#!/usr/bin/env python3
from ev3dev2.motor import MoveSteering, OUTPUT_B, OUTPUT_C
from ev3dev2.sensor.lego import TouchSensor, ColorSensor
from ev3dev2.led import Leds
from time import sleep

steer_pair = MoveSteering(OUTPUT_B, OUTPUT_C)
cl = ColorSensor()
ts = TouchSensor()
leds = Leds()

while True:     # forever
    if ts.is_pressed==0:    # touch sensor NOT pressed
        leds.all_off()   # turn off LEDs
        # turn motors at opposite speeds to turn on the spot
        steer_pair.on(steering=100, speed=cl.ambient_light_intensity)
    else:   #  touch sensor is pressed
        steer_pair.off()
        leds.set_color('LEFT', 'RED')
        leds.set_color('RIGHT', 'RED')

Uwagi:
1.  Proponowane rozwiązanie jest bardzo różny oficjalnej roztworu EV3-G, przedstawionym poniżej:



















Oficjalne rozwiązanie wykorzystuje dwa wątki , które poruszają się równocześnie, ponieważ są one przyłączone do bloku Start. Kiedy dolna pętla wykryje, że czujnik dotykowy został naciśnięty to wydaje polecenie zatrzymania silnika, ale to wydaje się być w konflikcie z dowództwem Samochodowego w górnej pętli, która opowiada silniki przenieść. Przypuszczalnie polecenie zatrzymania silnika ma pierwszeństwo, ale jak może, ponieważ polecenie zatrzymania silnika i komenda startu silnika są w różnych pętli i będą realizowane w różnym czasie? Więc to rozwiązanie może działać, ale jest trudne do zrozumienia i niepotrzebnie skomplikowane - dlaczego używać dwóch wątków dla tego rozwiązania? 

Ćwiczenie 8: Tekst

To ćwiczenie jest jak ćwiczenia 5, ale prostsze. 

Cel:
Czujnik ultradźwiękowy mierzy odległość. Wartość odległość będzie wyświetlany  w centymetrach  na ekranie LCD, po którym następuje ciąg „CM”. Tekst zostanie wyświetlony w courB24 czcionki. Na wyświetlaczu będzie stale aktualizowana o aktualnym czytaniu odległość czujnika.

Rozwiązanie:

#! / Usr / bin / env python3
od ev3dev2.sensor.lego importu UltrasonicSensor
Wyświetlanie od ev3dev2.display importowej
od czasu snu importowej

LCD = Wyświetlacz ()
Us = UltrasonicSensor ()

podczas gdy prawdziwe: # wiecznie
    distance = us.distance_centimeters # pływak
    lcd.text_pixels (łańcuch (w) cm '+', X = 40, Y = 50, czcionki = 'courB24')
    lcd.update ()
    sleep (0,1) # więc wyświetlacz nie zbyt często zmieniać

Uwagi:
  1. Zatrzymać program, naciskając przycisk Wstecz na EV3 lub przycisk stop w Kodeksie VS jeśli uruchomił skrypt stamtąd.
  2. Ten skrypt czasami wyświetla odczyty takich jak 63.40000000000 cm zamiast oczekiwanych 63,4 cm.
  3. Jest to możliwe, aby przepisać powyższy skrypt do pracy z czujnikiem podczerwieni, chociaż odczyty odległość będzie znacznie mniej dokładne. Tylko raz, nie da ci rozwiązanie - można popracować na zmiany!

Ćwiczenie 9: Zakres

Cel:
Dokonaj robot śledzić obiekt, który oddala się od niego - powinien poruszać się do przodu w kierunku obiektu, o ile obiekt jest między 10 a 20 cm z przodu robota, ale zatrzyma się, jeśli robi się bliżej niż 10 cm, co pozwala na uniknięcie kolizja. Będzie również zatrzymywać się (zrezygnować) jeśli prowadzi przedmiot jest większa niż 20 cm przed robota.

Rozwiązanie:

#!/usr/bin/env python3
from ev3dev2.motor import MoveTank, OUTPUT_B, OUTPUT_C
from ev3dev2.sensor.lego import UltrasonicSensor
from time import sleep

tank_pair = MoveTank(OUTPUT_B, OUTPUT_C)
us = UltrasonicSensor()

while True:    # forever
    distance = us.distance_centimeters
    if distance > 10 and distance < 20:
        tank_pair.on(left_speed=50, right_speed=50)
    else:
        tank_pair.off()
    sleep(0.1)

Uwagi:
  1. Jak w poprzednim ćwiczeniu, powinno być bardzo możliwe (i to dobre wyzwanie) przekonwertować ten program do pracy z czujnikiem podczerwieni, a następnie czujnik USA.

Ćwiczenie 10: Matematyka - Basic

Cel:
Ten program obliczy, jak wiele obrotów kół konieczne, aby robot przodu 50 cm, a następnie uczyni to ruch robota, a następnie będzie obliczyć prędkość robota podczas ruchu.

Rozwiązanie:
Za każdym razem gdy koło obraca się o jeden robota obrót całego obwodu rolki koła wzdłuż ziemi.
  • Średnica EV3 Education opon wersja gumy wynosi około 5,6 cm, a więc obwód wynosi 5,6 cm x π = 5,6 cm x 3,14 = 17,6 cm ok.
  • Średnica EV3 domowe opon gumowych wersja 4.32 cm, a więc obwód wynosi 4,32 cm * π = 4,32  cm x 3,14 = 13,6 cm, odległość . 
Znaleźć ilości obrotów koniecznych do przemieszczania robota do przodu 50 musi podzielić 50 cm od odległości przesunięcia każdego obrotu koła (równy obwodowi koła).

Użyjemy functi on time () , która jest częścią czasu bibliotece - nie mylić z funkcji z biblioteki o tej samej nazwie. time () zwraca (jako pływaka) liczba sekund, które upłynęły od „epoki”. Nie musimy wiedzieć, kiedy „epoka” było (może to być bardzo początkiem 1970?), Ponieważ wszyscy jesteśmy zainteresowani jest wydłużenie czasu między początkiem a końcem ruchu ruchu. W tym skrypcie używam od czasu czasu importu więc w scenariuszu I wystarczy użyć time () , aby wywołać funkcję. Gdybym użył czasu import następnie w skrypcie musiałbym użyć time.time () , aby wywołać t on funkcję.

#!/usr/bin/env python3
from ev3dev2.motor import MoveSteering, OUTPUT_B, OUTPUT_C
from ev3dev2.display import Display
from time import sleep, time

steer_pair = MoveSteering(OUTPUT_B, OUTPUT_C)
lcd = Display()

# num_rots is number of wheel rotations needed for robot to advance 50 cm
num_rots = 50/17.6 # wheel circumference = 17.6 cm for education version
# num_rots = 50/13.6 # wheel circumference = 13.6 cm for home version


start_time = time() # time() returns seconds since the 'epoch'

steer_pair.on_for_rotations(steering=0, speed=40, rotations=num_rots)

travel_time = time() - start_time # calculate how long the movement took
speed = 50/travel_time # speed = distance in cm / time in s
lcd.text_pixels(str(round(speed)) + ' cm/s', x=40, y=50, font='helvB24')
lcd.update()
sleep(5) # Give enough time for the screen to be read

Uwagi:
  1. Jeśli używasz wersji Home następnie wypowiedzieć się wiersz, który wspomina o wersji edukacyjnej i usuń wiersz, który wspomina o wersji domowej.
  2. Oto oficjalne rozwiązanie EV3-G do tego samego problemu:

Ćwiczenie 11: Gyro - stawka

Cel:
Program powinien stale (co 0,5 sekundy) pokazują szybkość obrotu czujnika żyroskopowego w stopniach na sekundę. W EV3 Python v2 stopa kolei jest przez stopy własności czujnik żyroskopowy .

Rozwiązanie:
Przypomnijmy, że przy każdym użyciu czujnik żyroskopowy to jest niezwykle ważne, aby utrzymać czujnik absolutnie nieruchomy gdy  cegła EV3 jest zasilony lub czujnik żyroskopowy jest podłączony , w przeciwnym razie odczyt żyroskop będzie nieustannie wędrują od prawidłowej wartości.

#! / Usr / bin / env python3
od ev3dev2.sensor.lego importu GyroSensor
Wyświetlanie od ev3dev2.display importowej
ev3dev2.fonts import jak czcionki
od czasu snu importowej

żyroskop = GyroSensor ()
LCD = Wyświetlacz ()

podczas gdy prawda:
    lcd.text_pixels (STR ( gyro.rate ) +”deg / s', X = 40, Y = 50, czcionki = 'helvB24')
    lcd.update ()
    sleep (0,4) # więc wyświetlacz nie zbyt często zmieniać

Uwagi:
  1. Zauważ, kiedy robot obraca się w prawo wskaźnik jest pozytywny i odwrotnie, niezależnie od kierunku, w którym robot jest faktycznie wskazującego.
  2. gyro.rate szereg więc musi być przekształcony w ciąg ze str ()  zanim może być wykorzystany do LCD jako tekst.
Teraz jesteśmy gotowi do walki  Beyond Basics sprawuje 12-18 .

czwartek, 9 lutego 2023

Roboty Spice Gears

 Roboty Spice Gears

Liderzy robotyki w Polsce. Laureaci wielu nagród. Ich konstrukcje wygrywały światowe konkursy robotów. 

https://www.facebook.com/spicegears?locale=pl_PL


poniedziałek, 21 marca 2022

Scratch LEGO MINDSTORMS EV3

Robot fabryczny

 Pierwszy program  w scratch do EV3


https://scratch.mit.edu/projects/editor/?tutorial=ev3

 

 

 

 

 

 

 

 

 

 

 

 

 

Przykładowe rozwiązanie łączy następujące rozszerzenia:

 

 



  •  

 











środa, 26 stycznia 2022

Zestaw dla mechatronika ZST Kolbuszowa

Projektowanie układów ARduino on-line

** Arduino Leonardo 





Czujnik ruchu PIR HC-SR501 - zielony
Czujnik ruchu PIR HC-SR501 - zielony
botland.com.pl


2Płytka stykowa - duża płytka z osobnymi liniami zasilania umożliwiająca tworzenie układów.


3Zestaw diod LED 5 mm (9 szt.) - po 3 szt czerwonych, zielonych i żółtych elementów.
4Dioda RGB wspólna anoda - LED z czterema wyprowadzeniami potrafiąca świecić we wszystkich kolorach.
5Zestaw rezystorów (50 szt.) - po 5 szt. najpopularniejszych wartości, umożliwiających np. podłączenie diod LED.
6Dioda podczerwona LIRED5C 850 nm - nadajnik wykorzystywany do emitowania niewidocznego dla oka sygnału w zakresie podczerwieni.
7Odbiornik podczerwieni TSOP2236 36 kHz - odbiornik podczerwieni działający na częstotliwości 36 kHz, umożliwia dekodowanie kodu RC5 stosowanego w pilotach.
8Fotorezystor - czujnik umożliwiający pomiar natężenia padającego światła, pozwoli np. wykryć czy w pomieszczeniu jest ciemno czy jasno.
9Tranzystor NPN BC547 (5 szt.) - układy półprzewodnikowe pozwalające m.in. sterować elementami, które pobierają większy prąd niż może dostarczyć pojedynczy pin mikrokontrolera.
10Potencjometr obrotowy 10k liniowy - podobnie jak przyciski, podłączone do wyprowadzeń analogowych może służyć jako element interfejsu użytkownika - proste pokrętło.
11Mosfet typu N IRL540N THT - tranzystor unipolarny  dużym prądzie drenu pozwala sterować urządzeniami o większym poborze mocy.
12Czujnik temperatury cyfrowy DS18B20 - popularny, prosty w obsłudze termometr, podłączany poprzez magistralę 1-wire.
13Przyciski typu tact-switch - posłużą jako element wprowadzający dane do modułu Arduino.
14Rejestr przesuwny - umożliwia np. sterowanie większą ilością diod oszczędzając przy tym wyprowadzenia cyfrowe Arduino.
15Ekspander PCF8574 - pozwala zwiększyć liczbę wyprowadzeń Arduino.
16Buzzer z generatorem - zasilany napięciem 5 V prosty generator sygnałów dźwiękowych.


18Przewody połączeniowe 65 szt. męsko - męskie - umożliwiają tworzenie połączeń na płytce stykowej oraz pomiędzy płytką i Arduino. Uwaga dokupić przewody męsko męskie
19Przewód microUSB A-B o długości 1 m.
20Organizer ułatwiający przenoszenie zestawu.

   

 21    Czujnik poziomu wody Water Level Sensor ARDUINO    






 



22.  Ultradźwiękowy czujnik odległości HC-SR04 2-200cm







23. Moduł przekaźnika półprzewodnikowego SSR 2A 1 kanał - styki 240VAC / 2A cewka 5VDC

czwartek, 24 października 2019

15. Array Operations Blok szczegółowo

LEGO Mindstorms EV3:

 Array Operations Blok szczegółowo

Lego EV3 Programowanie Array Operations Blok -Example Program Krok 1 V2
W tym poście omówimy blok programowania Array Operations używane w oprogramowaniu LEGO Mindstorms EV3. omówimy wszystkie dostępne opcje, a także krok po kroku przykład programu.

Co jest tablicą?Lego EV3 Programowanie Array Operations Blok -Example Program Krok 1 V2

Zanim zaczniemy z działalności Array EV3 zablokować najlepiej określić, co jest tablicą. Tablica jest struktur danych, które mogą być używane do przechowywania zbioru danych (wykaz wartości)
Jeśli odczytane post zmiennych , jak to jest zmienna, ale zamiast posiadania jednego wartość danych dla określonego typu tablica posiada wiele wartości w jednej zmiennej (jak listy zmiennych).

Jaki jest Array Operations bloku?

Lego EV3 blok programowania Opcje tablicy jest używany do zarządzania tablicę wewnątrz programu. Korzystanie z tego bloku możemy:
  • Tworzenie i tablica
  • Dodaj nowy element do tablicy
  • Czytaj i aktualizowania elementów w tablicy
  • Pobiera długość i tablicę (czyli ilość elementów w tablicy)
Jest ona dostępna z czerwonego operacje na danych palety w programowaniu EV3.



Lego EV3 Programowanie Array Operations Blok
Blok operacyjny Macierz 2 rodzaje matryc:
Array RodzajOpisPrzykład
numerycznyPrzechowuje dane numeryczne1, 10, 8
LogikaPrzechowuje dane logicznychPrawda, prawda, fałsz

Jakie są Array EV3 Operacje Tryby bloku?

Jest 4 tryby dostępne na bloku Operations. Każdy tryb jest przedstawiony poniżej:

Dodać

tryb bloku Operations Dołącz doda nowy element do tablicy. Ten nowy element zostanie dodany na końcu układu, a nie na początku.
W tym trybie nie ma 2 wejścia i 1 wyjście dostępny:
wejścia :
  1. W tablicy: tablicę do dołączania do podłączony jest do tego wejścia. Należy pamiętać, że może to również być pusta.
  2. Wartość : Wartość dodać do końca tablicy
wyjście :
Wyjście musi być podłączony do zapisu o zmiennej długości bloku z tego samego typu tablicy jako macierz Operacje bloku. Wyjście będzie nie wpłynie to zupełnie nowa tablica i tablica przewodowy do „tablicy w” wejścia.
Tryb Dołącz mogą być również wykorzystywane do tworzenia zupełnie nową tablicę. Jeśli „Array In” wejście nie jest połączone z odczytu zmiennej bloku, wartości mogą być wprowadzane ręcznie do wejścia za pomocą oprogramowania do programowania i nowa tablica zostaną wykorzystane w nowej zmiennej.
Poniższa tabela pokazuje, jak zachowuje się w trybie dopisywania kilka scenariuszy. Używamy układ logiczny jako przykład:
W Array Dodaj wartość Wynik
  Prawdziwe [Prawdziwe]
[Prawdziwe; Fałszywe] Fałszywe [Prawdziwe; Fałszywe; Fałszywe]

Przeczytaj o indeksie

Odczytu w trybie indeksu odczyta wartość elementu w określonym indeksie (pozycja). Ten tryb powróci albo cyfrowe lub wartość liczbową w zależności od ustawionego trybu odczytu na indeks. W tym trybie nie ma 2 wejścia i 1 wyjście dostępny:
wejścia :
  1. Array W : tablicy do odczytu jest podłączony do tego wejścia
  2. Indeks : Indeks (lub numer elementu) do odczytu.
Należy zauważyć, że indeks jest wskaźnik zera, co znaczy, że pierwsza wartość w tablicy jest o indeksie 0, a drugi na 1 i tak dalej.
wyjście :
Wyjście w tym trybie jest zarówno liczby logikę (w zależności od rodzaju matrycy)
Poniższa tabela pokazuje, jak zachowuje się w trybie dopisywania kilka scenariuszy. Używamy tablicy numeryczny przykład:
Tablica I nIndeksWynik
[1;2;3;4;5] 3 4
[100;200;300] 0 100

Napisz o indeksie

Write w trybie indeksu zastąpi element w tablicy w określonym położeniu (indeks) z nową wartością. W tym trybie nie ma 3 wejścia i 1 wyjście dostępny:
wejścia :
  1. Array W : tablicy do odczytu jest podłączony do tego wejścia
  2. Indeks : Indeks (lub numer elementu) w celu zastąpienia
  3. Wartość : wartość zastąpić element o podanym indeksie
Należy zauważyć, że indeks jest wskaźnik zera, co znaczy, że pierwsza wartość w tablicy jest o indeksie 0, a drugi na 1 i tak dalej.
wyjście :
Wyjście z tego trybu jest nowa tablica, oryginalna tablica pozostało nietknięte. Jednak oryginalna tablica może być aktualizowana, jeżeli wyjście jest podłączone do zmiennej zapisu.
Poniższa tabela pokazuje, jak pisać w trybie indeksu zachowuje się w kilku scenariuszy. Używamy tablicy numeryczny przykład:
Rray WIndeksWartość outpu t
[1;2;3;4;5] 3 100 [1;2;3;100;5]
[100;200;300] 0 5 [5;200;300]

Długość

Tryb długość powróci rozmiaru tablicy - to znaczy liczbę elementów tablica zawiera. W tym trybie nie ma 1 wejście i 1 wyjście
wejścia :
  1. Tablica w: tablicy do odczytu jest podłączony do tego wejścia
wyjście :
Długość matrycy (numerycznym).
Poniższa tabela zawiera przykłady wejść i wyjść tryby długości. Używamy tablicy numeryczny przykład:
W ArrayDługość
[1;2;3;4;5] 5
[100;200;300] 3

Jak używać Array Operations Zablokuj

Jak widać istnieje kilka sposobów, możemy użyć Array Lego Mindstorms EV3 Operacje bloku. W dalszej części będziemy przechodzić przez każdego z nich i pokazać przykłady, jak każdy tryb może być używany.

Jak dodać do tablicy EV3

Dodajmy do tablicy przy użyciu trybie dopisywania, możemy skorzystać z tego trybu, aby dodać do istniejącej tablicy lub utworzyć nową tablicę. Tak czy inaczej musimy zmienną tablicową do zapisu na wyjściu. W poniższym przykładzie tworzymy tablicę używając Zapis | Numeryczne tablicę zmiennych bloku (blok 1) o wartości [0, 1], a następnie dodaje się 2 do macierzy z wykorzystaniem bloku Operations (numer 2).
Uwaga: wyjście jest podłączone do zmiennej bloku w Pisz | Tryb numeryczny Array



Lego EV3 Programowanie Array Operations Block - Dołącz Array
Drugi przykład pokazuje, jak utworzyć nową zmienną z bloku Operations. W tym przypadku zamiast okablowania tablicę do wejścia tablicy Ciężko kodu wartości, możemy również skorzystać z wprowadzoną wartość, aby dodać dodatkowy element. Stamtąd możemy podłączyć nową tablicę do zmiennej bloku w Pisz | Tryb Array.



Lego EV3 Programowanie Array Operations Block - Dołącz Array nr 2

Czytając Array element (Element)

Aby odczytać element tablicy używamy czytać w trybie indeksu, to pozwala nam odczytać element danych z tablicy. W poniższym przykładzie ustawić zmienną liczbową tablicy są następujące wartości [1, 2, 3, 4, 5] odczytu i wskaźnik wyświetlacza 3 na wyświetlaczu EV3 Brick przez 5 sekund.
Pamiętaj, że indeks w tym trybie jest indeks oparty zero więc wartość otrzymujemy na wyjściu powinno być 4 w tym przypadku.



Lego EV3 Programowanie Array Array Operations Blok -Read

Jak zastąpić wartości w tablicy

Aby zastąpić wartość tablicy musimy użyć pisać w trybie indeksu z poziomu Array Operations EV3 bloku. W poniższym przykładzie utworzenia zmiennej tablicy numeryczny z następującymi wartościami [1, 2, 3, 4, 5] i zastąpienie 4 z 6 (3), a następnie odczytu i wskaźnik wyświetlacza 3 na wyświetlaczu EV3 cegłę 5 sekund, aby zobaczyć aktualizację.
Pamiętaj, że indeks oba te tryby są zerowe Indeks opiera się więc wartość otrzymujemy na wyjściu powinno być 6 w tym przypadku.



Lego EV3 Programowanie Array Array Operations Blok -Write

Jak sprawdzić, ile elementów (pozycji) są w tablicy

Musimy użyć trybu długość, aby sprawdzić, ile elementy są w tablicy. W poniższym przykładzie utworzenia zmienną liczbową tablicy są następujące wartości [1, 2, 3, 4, 5], odczytać liczbę elementów w macierzy (blok 3), a na wyjściu wystawić go na ekranie przez 5 sekund. W tym przypadku tutaj powinniśmy zobaczyć numer 5, ponieważ istnieją 5 elementów w tablicy.



Lego EV3 Programowanie Array Operations Blok -Array Długość

Operacje bloku EV3 Tablica Przykład programu:

W tym przykładowym programie będziemy umieszczać szereg trybów bloku EV3 Array Operations do używania. Sam program mógł zostać skrócony do jednej pętli, ale myśleliśmy, że najlepiej napisać to tak zrobiliśmy, by pomóc koncepcje Array (i używa) w poprzek. Ten program jest 3 liczba zgadywania gry - generuje 3 numery i czeka do odgadnięcia za pomocą przycisków EV3 Cegła (3 razy).
logika programu:
  1. Generowanie liczb losowych między 1 a 5 i zapisać go na tablicy numerycznej
  2. Powtórz krok 1 trzykrotnie
  3. Wyświetli monit odgadnąć numer za pomocą przycisków EV3 (przez naciśnięcie przycisku cegła)
  4. Czekać na przycisk cegły EV3 być wciśnięty
  5. Sprawdzić indeks wciśniętego przycisku cegła przeciwko obliczonej wartości tablicy i wyświetla albo: Prawidłowe lub Niewłaściwy
  6. Powtórz kroki 3-5 razy trzy
Uwaga: Aby uzyskać więcej informacji na temat przycisków cegły Lego EV3, zobacz nasze stanowisko , które obejmuje wszystko, co do nich. Używamy również kilka różnych typów zmiennych w tym poście, jeśli nie jesteś zaznajomiony ze zmiennymi sprawdź naszą zmienną posta tutaj .
Zacznijmy:
  1. Utworzyć nową zmienną Array liczbowy o nazwie „Liczby losowe”
    • Przeciągnij i upuść czerwoną Zmienny blok obok bloku wyświetlacza
      • Ustaw swój tryb Napisz | Tryb numeryczny
      • Kliknij nazwę zmiennej w prawym górnym rogu bloku, a następnie wybierz Dodaj Variable
      • Wpisz nazwę RandomNumber



Lego EV3 Programowanie Array Operations Blok -Example Program Krok 1 V2
  1. Generowanie liczb losowych 3
    • Przeciągnij i upuść jest blok pomarańczowy pętli obok zmiennej bloku
      • Ustaw swój tryb do hrabiego
      • Ustawić jej wartość na 3
    • Przeciągnąć i upuścić czerwoną Losowa blok wewnątrz pętli
      • Ustaw jej tryb na numeryczne
      • Ustawić dolną granicę do 1
      • Ustaw górne ograniczenie do 5
    • Przeciągnij i upuść czerwoną Zmienny blok obok bloku losowego
      • Ustaw swój tryb do Czytaj | Array numeryczny
      • Upewnij się, że zmienna nazwa jest ustawiony na RandomNumbers
    • Przeciągnij i upuść red Array Operations blok obok zmiennej
      • Ustaw swój tryb do Dopisz | numeryczny
      • Drut odczytać zmiennej długości bloku do tablicy w wejściu
      • Drut na wartości wyjściowe z Losowe bloku do Wartość wejścia
    • Przeciągnij i upuść czerwoną Zmienny blok obok bloku operacyjnego array
      • Ustaw swój tryb do Czytaj | Array numeryczny
      • Dzięki którym będzie ona ustawiona na RandomNumber zmiennej nazwy



Lego EV3 Programowanie Array Operations Blok -Example Program Krok 2

  1. Pętla logika skłonić sprawdzić przypuszczenie i wyświetlić wynik trzy razy. Również dodać zmienną do śledzenia liczby odgadnięcia.
    • Przeciągnij i upuść czerwony zmiennej długości bloku zewnątrz bloku pętli
      • Ustaw swój tryb do Napisz | numeryczny
      • Kliknij przycisk Dodaj zmienną pod nazwą zmiennej
      • Imię zmienną Index
      • Ustawić jego wartość na 0
    • Przeciągnij i upuść jest blok pomarańczowy pętli obok zmiennej bloku
      • Ustaw swój tryb do hrabiego
    • Przeciągnąć i upuścić czerwoną Zmienny blok wewnątrz nowego bloku pętli
      • Ustaw swój tryb do Czytaj | numeryczny
      • Upewnij się, że nazwa jest ustawiony na indeks
    • Przeciągnij i upuść czerwoną bloku tekstu obok bloku zmiennej
      • Ustaw A: Wejście do Guess numer:
      • Drut zmienna przeczytać w bloku B: Wejście
    • Przeciągnąć i upuścić zielonym wyświetlaczem blok obok bloku tekstu
      • Ustaw jej tryb na tekst | Krata
      • Ustaw Aa (rozmiar tekstu) do 1
      • Ustawić jego wartość (w prawym górnym rogu), aby Przewodowa
      • Podłączyć do wyjścia z bloku tekstu do wprowadzania tekstu
    • Przeciągnij i upuść jest blok pomarańczowy Wait obok bloku reklamowej
      • Ustaw swój tryb do Brick Przyciski | Zmień | cegła Przyciski
    • Przeciągnij i upuść czerwoną Zmienny blok obok bloku oczekiwania
      • Ustaw swój tryb do Czytaj | Array numeryczny
      • Upewnij się, że zmienna nazwa jest ustawiony na RandomNumbers
    • Przeciągnij i upuść red Array Operations blok obok bloku zmiennej
      • Ustaw swój tryb do Czytaj na Indeks | numeryczny
      • Drut odczytu zmiennej tablicy blok (RandomNumbers) do „tablicy w” wejście
      • Drut odczytu numeryczny zmienna blok (Indeks) do wejścia Index
    • Porównaj wciśnięty przycisk cegła ID do liczby losowej w bieżącym indeksie:
      • Przeciągnij i upuść czerwoną Porównaj blok obok bloku operacyjnego array
        • Ustaw jej tryb na równe
        • Drut na wyjście wartości od Operacji Array zablokować do wejścia
        • Podłączyć do wyjścia z bloku pomarańczowy Wait do wejścia B
      • Przeciągnij i upuść jest blok pomarańczowy Przełącznik obok bloku porównania
        • Ustaw swój tryb do logiki
      • Przeciągnąć i upuścić zielonym wyświetlaczem blok wewnątrz Prawdziwego przypadku bloku przełącznika
        • Ustaw jej tryb na tekst | Krata
        • Ustaw tekst Skorygować🙂
      • Przeciągnąć i upuścić zielonym wyświetlaczem blok wewnątrz Fałsz przypadku bloku przełącznika
        • Ustaw jej tryb na tekst | Krata
        • Ustaw tekst Niewłaściwy🙁
      • Przeciągnij i upuść jest blok pomarańczowy Wait poza blokiem przełącznika
        • Ustaw jej tryb na wskaźniku czasu
        • Ustaw Sekund wartość 2
    • Dodasz do zmiennej indeksu i obliczyć liczbę pętli
      • Przeciągnij i upuść czerwony klocek Math obok bloku oczekiwania
        • Ustaw swój tryb do Dodaj
        • Drut odczytu Główna zmienna bloku (na początku pętli) do wejścia A
        • Ustaw wejście B do 1
      • Przeciągnij i upuść czerwoną Zmienny blok obok bloku meczu
        • Ustaw swój tryb do Napisz | numeryczny
        • Upewnij się, że nazwa jest ustawiony na indeks
        • Drut wyjście z matematyki zablokować do wejścia Wartość
      • Przeciągnij i upuść czerwoną Zmienny blok obok bloku meczu
        • Ustaw swój tryb do Czytaj | Array numeryczny
        • Zapewnić jego nazwa jest ustawiony na RandomNumbers
      • Przeciągnij i upuść red Array Operations blok obok bloku zmiennej
        • Ustaw swój tryb do Długość | numeryczny
        • Drut RandomNumbers zmiennej blok w tablicy w wejściu
        • Drut wyjście do tego wejścia liczby bloków Loop



Lego EV3 Programowanie Array Operations Blok -Example Program Krok 3
Gratulacje, teraz zakończeniu programu. Hit pobrać i uruchomić przycisk, aby przetestować go. Kompletny program powinien wyglądać jak na obrazku poniżej:



Lego EV3 Programowanie Array Operations Blok -Example Program cały program