ΠΡΠΈΠ²Π΅Ρ, Π₯Π°Π±Ρ! ΠΡ ΡΠΆΠ΅
Π£ΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ EV3
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΊΠΎΠ»ΡΠ½ΠΈΠΊΠΈ Ρ ΠΎΡΡΡ Π²ΠΈΠ΄Π΅ΡΡ ΠΊΡΠ°ΡΠΎΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΠ°, ΠΈΠΌ ΡΠΊΡΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΡΠΈΡΠ»Π°, ΠΈ ΠΎΠ½ΠΈ Ρ ΠΎΡΡΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠ²Π΅ΡΠ½ΡΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ, Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π°ΡΡΠΎΡΡΠΈΡ ΡΠΎΠ±ΠΎΡΠΎΠ², Π΄Π²ΠΈΠΆΡΡΠΈΡ ΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ±ΡΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΡΠΎΠΆΠ΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π΄Π΅ΡΡΠΌ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΡΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π»ΡΡΡΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡ Ρ ΡΠ΅Π³ΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΠ»Π΅Π³ΡΠ΅.
ΠΠ°Π·ΠΎΠ²Π°Ρ ΡΡΠ΅Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ EV3 ΡΠΎΠ·Π΄Π°Π½Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° LabVIEW ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π΄Π»Ρ ΡΠΎΠ±ΠΎΡΠ° Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ: ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°ΡΡ ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡ.
Π’Π°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Ρ
ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ ΡΡΡΠΎΡΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, Π½ΠΎ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π±Π»ΠΎΠΊΠΎΠ². ΠΡΠΈ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡΡ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ΄Π°, Π½ΠΎ Π΄Π΅ΡΡΠΌ ΡΡΡΠ΄Π½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎΡ ΡΠ°Π³.Β
ΠΠ΄Π΅ΡΡ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΈΡΡΠΎΡΡΠ΅ΠΉ, ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ β ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ΅ ΠΆΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΡΡΠΎ ΠΈ Π±Π»ΠΎΠΊΠΈ. Π ΡΡΠ΅Π΄Π΅ EV3 ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ MicroPython: Π΄Π΅ΡΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΡΠ΅Π΄Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ Python Π² Visual Studio Code ΠΎΡ Microsoft. ΠΠ½ΠΈ Π²ΠΈΠ΄ΡΡ, ΡΡΠΎ ΠΎΠ±Π° ΡΠΏΠΎΡΠΎΠ±Π° ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, Π½ΠΎ ΠΊΠΎΠ΄ΠΎΠΌ ΡΠ΅ΡΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΡΠ΄ΠΎΠ±Π½Π΅Π΅.
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π½Π° MicroPython
Π‘ΡΠ΅Π΄Π° EV3 ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° Π½Π° Π±Π°Π·Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ARM9, ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΎΡΠΊΡΡΡΠΎΠΉ. ΠΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π½Π°ΠΊΠ°ΡΡΠ²Π°ΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ, ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ°Π» ΠΎΠ±ΡΠ°Π· Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ MicroPython. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Python Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ EV3, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π°Π±ΠΎΡΠΎΠΌ Π΅ΡΠ΅ Π±Π»ΠΈΠΆΠ΅ ΠΊ Π·Π°Π΄Π°ΡΠ°ΠΌ ΠΈΠ· ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ.Β
Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΎΠ±ΠΎΡΠ° Π½Π° MycroPython
ΠΠ° Π½Π°ΡΠ΅ΠΌ
ΠΡ Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ΅ΡΡΠ΅ΠΆΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΠΈΡΡ ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ·ΠΎΡΡ ΠΈ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΈΠ³ΡΡΡ. ΠΠ°Π½Π½ΡΠΉ ΠΊΠ΅ΠΉΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ Π²Π·ΡΠΎΡΠ»ΡΡ ΡΠΎΠ±ΠΎΡΠΎΠ²-ΡΠ²Π°ΡΡΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ ΡΡΠ΅Π·Π΅ΡΠΎΠ²ΡΠΈΠΊΠΎΠ² ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ EV3 ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ MicroPython Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠΊΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ². Π Π΅ΡΠ΅ ΡΠ΅ΡΡΠ΅ΠΆΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΈΡΡ ΠΎΡΠ²Π΅ΡΡΡΠΈΡ Π² ΠΏΠ΅ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΠ΅ Π΄Π»Ρ ΠΏΠ°ΠΏΡ, Π½ΠΎ ΡΡΠΎ ΡΠΆΠ΅ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΠ²Π΅Π½Ρ, ΡΡΠ΅Π±ΡΡΡΠΈΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΡΡΠ΅ΡΠΎΠ².
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ:
- Π±Π°Π·ΠΎΠ²ΡΠΉ Π½Π°Π±ΠΎΡ LEGO MINDSTORMS Education EV3;Β
- Π±ΠΎΠ»ΡΡΠΎΠΉ Π»ΠΈΡΡ ΠΊΠ»Π΅ΡΡΠ°ΡΠΎΠΉ Π±ΡΠΌΠ°Π³ΠΈ;
- ΡΠ²Π΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΊΠ΅ΡΡ.Β
Π‘Π±ΠΎΡΠΊΠ° ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠΎΠ±ΠΎΡΠ° Π΅ΡΡΡ Π²
Π‘Π½Π°ΡΠ°Π»Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ EV3:
#!/usr/bin/env pybricks-micropython
from pybricks import ev3brick as brick
from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor, GyroSensor)
from pybricks.parameters import Port, Stop, Direction, Color, ImageFile
from pybricks.tools import wait
ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΊΡ ΠΊΠ°ΠΊ ΠΌΠΎΡΠΎΡ Π² ΠΏΠΎΡΡΠ΅ B. ΠΠ°Π΄Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΎΡΠ½ΠΎΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΡΡΡΠΏΠ΅Π½ΡΠ°ΡΠΎΠΉ Π·ΡΠ±ΡΠ°ΡΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π·ΡΠ±ΡΠ΅Π² 20-12-28 ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])
ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΠ΄ΡΠ΅ΠΌΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π΄Π»Ρ ΡΡΡΠΊΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΡΠΎΡ Π² ΠΏΠΎΡΡΠ΅ C:
seesaw_motor = Motor(Port.C)
ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Π³ΠΈΡΠΎΡΠΊΠΎΠΏ, ΠΈΠ·ΠΌΠ΅ΡΡΡΡΠΈΠΉ ΡΠ³ΠΎΠ» Π½Π°ΠΊΠ»ΠΎΠ½Π° ΡΡΡΠΊΠΈ, Π² ΠΏΠΎΡΡΠ΅ 2:
gyro_sensor = GyroSensor(Port.S2)
ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ Π΄Π°ΡΡΠΈΠΊ Π² ΠΏΠΎΡΡΠ΅ 3. ΠΠ°ΡΡΠΈΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π±Π΅Π»ΡΡ Π±ΡΠΌΠ°Π³Ρ ΠΏΠΎΠ΄ ΡΠ΅ΡΡΠ΅ΠΆΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ:
color_sensor = ColorSensor(Port.S3)
ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Π΄Π°ΡΡΠΈΠΊ ΠΊΠ°ΡΠ°Π½ΠΈΡ Π² ΠΏΠΎΡΡΠ΅ 4. Π ΠΎΠ±ΠΎΡ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π°ΡΡΠΈΠΊ Π½Π°ΠΆΠ°Ρ:
touch_sensor = TouchSensor(Port.S4)
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡΡ ΠΈ ΠΎΠΏΡΡΠΊΠ°ΡΡ ΡΡΡΠΊΡ:
def pen_holder_raise():
Β Β seesaw_motor.run_target(50, 25, Stop.HOLD)
Β Β wait(1000)
def pen_holder_lower():
Β Β seesaw_motor.run_target(50, 0, Stop.HOLD)
Β Β wait(1000)
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° ΡΡΡΠΊΠΈ Π½Π° Π·Π°Π΄Π°Π½Π½ΡΠΉ ΡΠ³ΠΎΠ» ΠΈΠ»ΠΈ Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ³Π»Π°:
def pen_holder_turn_to(target_angle):
Β Β if target_angle > gyro_sensor.angle():
ΠΡΠ»ΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠ³ΠΎΠ» Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ³ΠΎΠ» Π³ΠΈΡΠΎΡΠΊΠΎΠΏΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄Π°ΡΡΠΈΠΊΠ°, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠ΅ Ρ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ:
Β Β Β Β turntable_motor.run(70)
while gyro_sensor.angle() < target_angle:
Β Β
pass
Β Β elif target_angle < gyro_sensor.angle():
ΠΡΠ»ΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠ³ΠΎΠ» ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠΈΠΉ Π³ΠΈΡΠΎΡΠΊΠΎΠΏΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄Π°ΡΡΠΈΠΊΠ°, ΡΠΎ Π΄Π²ΠΈΠ³Π°Π΅ΠΌΡΡ ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΈ:
Β Β Β Β turntable_motor.run(-70)
while gyro_sensor.angle() > target_angle:
Β Β
pass
ΠΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π²ΡΠ°ΡΠ°ΡΡΡΡΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠ³ΠΎΠ» Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ:
Β Β turntable_motor.stop(Stop.BRAKE)
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΡΠΊΠΈ Π² Π²Π΅ΡΡ Π½Π΅ΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ:
pen_holder_raise()
Π’Π΅ΠΏΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ β Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ». Π‘Π½Π°ΡΠ°Π»Π° EV3 ΠΎΠΆΠΈΠ΄Π°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Π΄Π°ΡΡΠΈΠΊ ΡΠ²Π΅ΡΠ° ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡ Π±Π΅Π»ΡΡ Π±ΡΠΌΠ°Π³Ρ ΠΈΠ»ΠΈ ΡΠΈΠ½ΡΡ ΡΡΠ°ΡΡΠΎΠ²ΡΡ ΠΊΠ»Π΅ΡΠΊΡ, Π° Π΄Π°ΡΡΠΈΠΊ ΠΊΠ°ΡΠ°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΆΠ°Ρ. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ ΡΠΈΡΡΠ΅Ρ ΡΠ·ΠΎΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅Ρ Π²ΡΠ΅ Π·Π°Π½ΠΎΠ²ΠΎ.
ΠΠΎΠ³Π΄Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½Π΅ Π³ΠΎΡΠΎΠ²ΠΎ, ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄Ρ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΊΡΠ°ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ, ΠΈ Π½Π° ΠΠ-ΡΠΊΡΠ°Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Β«ΠΏΠ°Π»Π΅Ρ Π²Π½ΠΈΠ·Β»:
while True:
Β Β brick.light(Color.RED)
Β Β brick.display.image(ImageFile.THUMBS_DOWN)
ΠΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π°ΡΡΠΈΠΊ ΡΠ²Π΅ΡΠ° ΡΡΠΈΡΠ°Π΅Ρ ΡΠΈΠ½ΠΈΠΉ ΠΈΠ»ΠΈ Π±Π΅Π»ΡΠΉ ΡΠ²Π΅Ρ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ²Π΅Ρ ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄ΠΎΠ² Π·Π΅Π»Π΅Π½ΡΠΌ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ Π½Π° ΠΠ-ΡΠΊΡΠ°Π½Π΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Β«ΠΏΠ°Π»Π΅Ρ Π²Π²Π΅ΡΡ Β» ΠΈ ΡΠΎΠΎΠ±ΡΠ°Π΅ΠΌ, ΡΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π³ΠΎΡΠΎΠ²ΠΎ ΠΊ ΡΠ°Π±ΠΎΡΠ΅:
Β Β while color_sensor.color() not in (Color.BLUE, Color.WHITE):
wait(10)
Β Β brick.light(Color.GREEN)
Β Β brick.display.image(ImageFile.THUMBS_UP)
ΠΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΡ Π½Π°ΠΆΠ°ΡΠΈΡ Π΄Π°ΡΡΠΈΠΊΠ° ΠΊΠ°ΡΠ°Π½ΠΈΡ, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ Π³ΠΈΡΠΎΡΠΊΠΎΠΏΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π΄Π°ΡΡΠΈΠΊΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ³Π»Π° 0 ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΡΠΈΡΠΎΠ²Π°ΡΡ:
Β Β while not touch_sensor.pressed():
wait(10)
Β Β gyro_sensor.reset_angle(0)
Β Β pen_holder_turn_to(15)
Β Β pen_holder_lower()
Β Β pen_holder_turn_to(30)
Β Β pen_holder_raise()
Β Β pen_holder_turn_to(45)
Β Β pen_holder_lower()
Β Β pen_holder_turn_to(60)
ΠΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΠΌ Π΄Π΅ΡΠΆΠ°ΡΠ΅Π»Ρ ΡΡΡΠΊΠΈ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π΅Π³ΠΎ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:
Β Β pen_holder_raise()
Β Β pen_holder_turn_to(0)</i>
ΠΠΎΡ ΡΠ°ΠΊΠ°Ρ Π½Π΅ΡΠ»ΠΎΠΆΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Ρ Π½Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»Π°ΡΡ. Π ΡΠ΅ΠΏΠ΅ΡΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π΅Π΅ ΠΈ ΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠΎΠ±ΠΎΡΠ°-ΡΠ΅ΡΡΠ΅ΠΆΠ½ΠΈΠΊΠ° Π² Π΄Π΅Π»Π΅.Β
Π§ΡΠΎ Π΄Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ
EV3Β β ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΏΡΠΎΡΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΉ STEM ΠΈ ΡΠΎΡΠΊΠ° Π²Ρ
ΠΎΠ΄Π° Π² ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠ°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ, Π΄Π΅ΡΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΎΠΏΡΡ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΎΠΊ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΡΡ
ΡΠΎΠ±ΠΎΡΠΎΠ², ΡΡΠ°ΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, ΠΎΡΠ²Π°ΠΈΠ²Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° MicroPython Π΄Π΅Π»Π°Π΅Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ EV3 ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠ΅ΠΉ Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π² ΡΡΠ°ΡΡΠΈΡ
ΠΊΠ»Π°ΡΡΠ°Ρ
. Π£ΡΠ΅Π½ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ΅Π±Ρ Π² ΡΠΎΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ
ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ
ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΠ·ΡΠΊΠΎΠ², ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΌΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. ΠΠ°Π±ΠΎΡΡ EV3 ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ β ΡΡΠΎ Π½Π΅ ΡΡΡΠ°ΡΠ½ΠΎ, Π³ΠΎΡΠΎΠ²ΡΡ ΠΊ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠΌ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΡΠΌ Π·Π°Π΄Π°ΡΠ°ΠΌ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π³ ΠΊ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΡ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ. Π Π΄Π»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠΊΠΎΠ»Π΅ ΠΈ ΡΠ²ΡΠ·Π°Π½ Ρ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Ρ Π½Π°Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Ρ
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com