ΠΠ΄ΡΠ°Π²ΠΎ, Π₯Π°Π±Ρ! ΠΠΈΠ΅ Π²Π΅ΡΠ΅ Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° LEGO MINDSTORMS Education EV3. ΠΠ»Π°Π²Π½ΠΈΡΠ΅ ΡΠ΅Π»ΠΈ Π½Π° ΠΎΠ²Π°Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΡΠ΅ ΡΡΠ΅ΡΠ΅ ΠΏΡΠ΅ΠΊΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ, ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠ΅ Π½Π° STEAM Π²Π΅ΡΡΠΈΠ½ΠΈ ΠΈ ΡΠ°Π·Π²ΠΎΡ Π½Π° ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡΠΊΠΈ Π½Π°ΡΠΈΠ½ Π½Π° ΡΠ°Π·ΠΌΠΈΡΠ»ΡΠ²Π°ΡΠ΅. ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠΈΡΠΊΠ° ΡΠ°Π±ΠΎΡΠ° Π·Π° ΠΏΡΠΎΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠ°ΡΠ° ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ°ΡΠ°. ΠΠ°Π±ΠΎΡΠ°ΡΠΎΡΠΈΡΠΊΠΈΡΠ΅ ΠΊΠ»ΡΠΏΠΈ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΎΠ΄ LEGO ΠΊΠΎΡΠΊΠΈ ΠΈ Π°Π»Π°ΡΠΊΠΈΡΠ΅ Π·Π° ΡΠ½ΠΈΠΌΠ°ΡΠ΅ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π³ΠΈ ΠΏΡΠ°Π²Π°Ρ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ΅ ΡΡΡΠ΅ ΠΏΠΎΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ ΠΈ ΠΏΠΎΠ²ΠΈΠ·ΡΠ΅Π»Π½ΠΈ ΠΈ ΠΈΠΌ ΠΏΠΎΠΌΠ°Π³Π°Π°Ρ Π½Π° Π΄Π΅ΡΠ°ΡΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΎ Π΄Π° ΡΠ° ΡΠ°Π·Π±Π΅ΡΠ°Ρ ΡΠΈΠ·ΠΈΠΊΠ°ΡΠ°. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠ΄Π΅Π½ΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΡΠΎΠ±ΠΈΡΠ°Π°Ρ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π·Π° ΡΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΠΎΠΏΠ΅ΡΠ΅ ΠΈ Π΄Π° ΡΠ° ΠΊΠΎΡΠΈΡΡΠ°Ρ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° Π·Π° Π΄Π° Π³ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π°Ρ ΠΈ Π΄Π° Π³ΠΈ ΠΏΡΠ΅ΡΡΡΠ°Π²Π°Ρ Π²ΠΎ Π³ΡΠ°ΡΠΈΠΊΠΎΠ½. ΠΠΎ, ΠΎΠ²Π° Π΅ ΡΠ°ΠΌΠΎ ΠΏΠΎΡΠ΅ΡΠΎΠΊ: Π΄Π΅Π½Π΅Ρ ΡΠ΅ Π²ΠΈ ΠΊΠ°ΠΆΠ΅ΠΌΠ΅ ΠΊΠ°ΠΊΠΎ Π΄Π° Π³ΠΎ Π½Π°Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΎΠ²ΠΎΡ ΡΠ΅Ρ ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠ°ΡΠ° ΡΡΠ΅Π΄ΠΈΠ½Π° MicroPython ΠΈ Π΄Π° Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ Π·Π° Π΄Π° Π½Π°ΡΡΠΈΡΠ΅ ΡΠΎΠ±ΠΎΡΠΈΠΊΠ°.

ΠΠ°ΡΡΠ΅ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ EV3
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΡΠ΅Π½ΠΈΡΠΈ ΡΠ°ΠΊΠ°Π°Ρ Π΄Π° Π²ΠΈΠ΄Π°Ρ ΡΠ°ΡΠ΅Π½ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ. ΠΠ°, ΠΈΠΌ Π΅ Π΄ΠΎΡΠ°Π΄Π½ΠΎ Π°ΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° ΠΏΠ΅ΡΠ°ΡΠΈ Π±ΡΠΎΠ΅Π²ΠΈ Π½Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π°ΡΠ° ΠΈ ΡΠ°ΠΊΠ°Π°Ρ Π΄Π° Π³Π»Π΅Π΄Π°Π°Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠ½ΠΈ Π²ΠΎ Π±ΠΎΡΠ°, Π΄ΠΈΡΠ°Π³ΡΠ°ΠΌΠΈ ΠΈ Π΄Π° ΡΠΎΠ·Π΄Π°Π²Π°Π°Ρ Π²ΠΈΡΡΠΈΠ½ΡΠΊΠΈ ΡΠΎΠ±ΠΎΡΠΈ ΠΊΠΎΠΈ ΡΠ΅ Π΄Π²ΠΈΠΆΠ°Ρ ΠΈ ΡΠ»Π΅Π΄Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. Π Π΅Π΄ΠΎΠ²Π½ΠΈΠΎΡ ΠΊΠΎΠ΄ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΏΡΠ΅ΠΌΠ½ΠΎΠ³Ρ ΠΊΠΎΠΌΠΏΠ»ΠΈΡΠΈΡΠ°Π½ Π·Π° Π΄Π΅ΡΠ°ΡΠ°, ΠΏΠ° Π·Π°ΡΠΎΠ° Π΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΎ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° ΡΡΠΈΡΠ΅ ΡΠΎ Π½Π΅ΡΡΠΎ ΠΏΠΎΠ»Π΅ΡΠ½ΠΎ.
ΠΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠΎ ΠΎΠΏΠΊΡΡΠΆΡΠ²Π°ΡΠ΅ EV3 ΡΠ΅ Π·Π°ΡΠ½ΠΎΠ²Π° Π½Π° Π³ΡΠ°ΡΠΈΡΠΊΠΈΠΎΡ ΡΠ°Π·ΠΈΠΊ LabVIEW ΠΈ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π²ΠΈΠ·ΡΠ΅Π»Π½ΠΎ Π΄Π° ΠΎΠ΄ΡΠ΅Π΄ΠΈΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π·Π° ΡΠΎΠ±ΠΎΡΠΎΡ: ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠ΅ΡΡΡΠ°Π²Π΅Π½ΠΈ Π²ΠΎ ΡΠΎΡΠΌΠ° Π½Π° Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²Π»Π΅ΡΠ°Ρ ΠΈ ΠΏΠΎΠ²ΡΠ·Π°Ρ.

ΠΠ²ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π΄ΠΎΠ±ΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° ΠΊΠΎΠ³Π° ΡΡΠ΅Π±Π° Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠΎ ΡΠ΅ Π³ΡΠ°Π΄Π°Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅, Π½ΠΎ Π½Π΅ Π΅ ΠΏΠΎΠ³ΠΎΠ΄Π΅Π½ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΡΠΎ Π³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ. ΠΠ°ΠΊΠΎ ΡΡΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡΠ°ΡΠ° ΡΡΠ°Π½ΡΠ²Π°Π°Ρ ΠΏΠΎΡΠ»ΠΎΠΆΠ΅Π½ΠΈ, Π½Π΅ΠΎΠΏΡ
ΠΎΠ΄Π½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°ΡΠ΅ ΡΠΎ ΠΊΠΎΠ΄, Π½ΠΎ ΠΎΠ²ΠΎΡ ΡΠ΅ΠΊΠΎΡ Π΅ ΡΠ΅ΠΆΠΎΠΊ Π·Π° Π΄Π΅ΡΠ°ΡΠ°.
ΠΠ²Π΄Π΅ ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΡΠΈΠΊΠΎΠ²ΠΈ, ΠΎΠ΄ ΠΊΠΎΠΈ Π΅Π΄Π΅Π½ Π΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ Π΄Π΅ΠΊΠ° ΠΊΠΎΠ΄ΠΎΡ Π³ΠΎ ΠΏΡΠ°Π²ΠΈ ΠΈΡΡΠΎΡΠΎ ΠΊΠ°ΠΊΠΎ ΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈΡΠ΅. ΠΠΎ ΠΎΠΊΠΎΠ»ΠΈΠ½Π°ΡΠ° EV3, ΠΎΠ²Π° Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΊΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° Π½Π° MicroPython, ΡΠ°ΠΊΠ° ΡΡΠΎ Π΄Π΅ΡΠ°ΡΠ° ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΡΠ° ΠΊΡΠ΅ΠΈΡΠ°Π°Ρ ΠΈΡΡΠ°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΈ Π²ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΎΠΊΠΎΠ»ΠΈΠ½Π° Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°ΡΠ΅ Π±Π»ΠΎΠΊ ΠΈ Π²ΠΎ Python Π²ΠΎ Visual Studio Code Π½Π° Microsoft. Π’ΠΈΠ΅ Π³Π»Π΅Π΄Π°Π°Ρ Π΄Π΅ΠΊΠ° Π΄Π²Π°ΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΡΠ°Π±ΠΎΡΠ°Ρ ΠΈΡΡΠΎ, Π½ΠΎ ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ΡΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΠΊΠΎΠ΄ Π΅ ΠΏΠΎΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎ.
ΠΡΠ΅ΡΡΠ»ΡΠ²Π°ΡΠ΅ Π½Π° MicroPython
ΠΠΊΠΎΠ»ΠΈΠ½Π°ΡΠ° EV3 Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½Π° Π½Π° ARM9 ΠΏΡΠΎΡΠ΅ΡΠΎΡ, Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ Π½Π°ΠΌΠ΅ΡΠ½ΠΎ ΡΠ° ΠΎΡΡΠ°Π²ΠΈΡΠ° ΠΎΡΠ²ΠΎΡΠ΅Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ°. ΠΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ Π΄Π° ΡΠ΅ Π²ΠΎΠ²Π΅Π΄Π΅ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π΅Π½ ΡΠΈΡΠΌΠ²Π΅Ρ, ΠΎΠ΄ ΠΊΠΎΠΈ Π΅Π΄Π½Π°ΡΠ° Π±Π΅ΡΠ΅ ΡΠ»ΠΈΠΊΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° ΡΠΎ MicroPython. ΠΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ Python Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°ΡΠ΅ Π½Π° Π²Π°ΡΠΈΠΎΡ EV3, ΡΠΎ ΡΡΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΡΠΎΡ ΡΡΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ ΡΠ΅ Π΄ΠΎΠ±Π»ΠΈΠΆΠΈ Π΄ΠΎ Π·Π°Π΄Π°ΡΠΈΡΠ΅ ΠΎΠ΄ ΡΠ΅Π°Π»Π½ΠΈΠΎΡ ΠΆΠΈΠ²ΠΎΡ.
ΠΠ° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅, ΡΡΠ΅Π±Π° Π΄Π° ΠΏΡΠ΅Π·Π΅ΠΌΠ΅ΡΠ΅ Π½Π° ΠΊΠΎΡΠ° Π±ΠΈΠ»ΠΎ microSD ΠΊΠ°ΡΡΠΈΡΠΊΠ°, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΡΠ΅ ΡΠ° Π²ΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΡ EV3 ΠΈ Π²ΠΊΠ»ΡΡΠ΅ΡΠ΅ ΡΠ°. ΠΠΎΡΠΎΠ° ΡΡΠ΅Π±Π° Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Π·Π° Visual Studio. Π ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΡΠ²ΠΈΠΎΡ ΡΠΎΠ±ΠΎΡ Π²ΠΎ MycroPython

ΠΠ° Π½Π°ΡΠΈ ΠΠΌΠ° Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π»Π΅ΠΊΡΠΈΠΈ Π·Π° ΡΠΎΠ²Π»Π°Π΄ΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈ Π½Π° ΡΠΎΠ±ΠΎΡΠΈΠΊΠ°ΡΠ°. ΠΠΎΠ΄Π΅Π»ΠΈΡΠ΅ EV3 Π³ΠΈ Π·Π°ΠΏΠΎΠ·Π½Π°Π²Π°Π°Ρ Π΄Π΅ΡΠ°ΡΠ° ΡΠΎ ΠΎΡΠ½ΠΎΠ²ΠΈΡΠ΅ ΡΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π²ΠΎ ΡΠ°ΠΌΠΎΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠΊΠΈΡΠ΅ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ, ΡΠ°Π±ΡΠΈΡΠΊΠΈΡΠ΅ ΡΠΎΠ±ΠΎΡΠΈ Π·Π° ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ ΠΈ CNC ΠΌΠ°ΡΠΈΠ½ΠΈΡΠ΅.
ΠΠ΅ Π·Π΅ΠΌΠ΅ΠΌΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΌΠ°ΡΠΈΠ½Π° Π·Π° ΡΡΡΠ°ΡΠ΅, ΠΊΠΎΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΡΡΠΈ Π΄Π° ΡΡΡΠ° ΠΎΠ±ΡΠ°ΡΡΠΈ ΠΈ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠΊΠΈ ΡΠΎΡΠΌΠΈ. ΠΠ²ΠΎΡ ΡΠ»ΡΡΠ°Ρ Π΅ ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π΅Π½Π° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° ΡΠΎΠ±ΠΎΡΠΈ Π·Π° Π·Π°Π²Π°ΡΡΠ²Π°ΡΠ΅ ΠΈΠ»ΠΈ Π³Π»ΠΎΠ΄Π°ΡΠ΅ Π·Π° Π²ΠΎΠ·ΡΠ°ΡΠ½ΠΈ ΠΈ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π° ΠΊΠ°ΠΊΠΎ EV3 ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π°Π΅Π΄Π½ΠΎ ΡΠΎ MicroPython Π·Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄ΡΡΡΠ²Π°Π°Ρ ΡΡΠ΅Π½ΠΈΡΠΈ. Π ΠΌΠ°ΡΠΈΠ½Π°ΡΠ° Π·Π° ΡΡΡΠ°ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ·Π½Π°ΡΠΈ Π΄ΡΠΏΠΊΠΈ Π½Π° ΠΏΠ΅ΡΠ°ΡΠ΅Π½ΠΎ ΠΊΠΎΠ»ΠΎ Π·Π° ΡΠ°ΡΠΊΠΎ, Π½ΠΎ ΡΠΎΠ° Π΅ Π΄ΡΡΠ³ΠΎ Π½ΠΈΠ²ΠΎ ΡΡΠΎ Π±Π°ΡΠ° ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ°.
ΠΠ° ΡΠ°Π±ΠΎΡΠ° Π½ΠΈ ΡΡΠ΅Π±Π°Π°Ρ:
- LEGO MINDSTORMS Education EV3 Core ΡΠ΅Ρ;
- Π³ΠΎΠ»Π΅ΠΌ Π»ΠΈΡΡ ΠΊΠ°ΡΠΈΡΠ°Π½Π° Ρ Π°ΡΡΠΈΡΠ°;
- ΠΌΠ°ΡΠΊΠ΅ΡΠΈ Π²ΠΎ Π±ΠΎΡΠ°.
Π‘ΠΊΠ»ΠΎΠΏΠΎΡ Π½Π° ΡΠ°ΠΌΠΈΠΎΡ ΡΠΎΠ±ΠΎΡ Π΅ Π²Π½Π°ΡΡΠ΅ , ΠΈ ΡΠ΅ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°ΡΠ΅.
ΠΡΠ²ΠΎ ΡΠ° ΠΈΠ½ΠΈΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ 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
ΠΠΎΡΡΠ°Π²ΠΈΠ²ΠΌΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΡΡΠΎ ΡΠ° ΡΠΎΡΠΈΡΠ° ΡΠ°ΡΠΊΠ°ΡΠ° ΠΊΠ°ΠΊΠΎ ΠΌΠΎΡΠΎΡ Π²ΠΎ ΠΏΡΠΈΡΡΠ°Π½ΠΈΡΡΠ΅ΡΠΎ Π. ΠΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΠ²ΠΌΠ΅ ΠΎΠ΄Π½ΠΎΡΠΎΡ Π½Π° ΠΌΠ΅Π½ΡΠ²Π°ΡΠΎΡ Π½Π° Π΄Π²ΠΎΡΡΠ΅ΠΏΠ΅Π½ Π·Π°ΠΏΡΠ°Π½ΠΈΠΊ ΡΠΎ Π±ΡΠΎΡ Π½Π° Π·Π°Π±ΠΈ ΠΎΠ΄ 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 ΠΏΡΠ²ΠΎ ΡΠ΅ΠΊΠ° ΡΠ΅Π½Π·ΠΎΡΠΎΡ Π·Π° Π±ΠΎΡΠ° Π΄Π° ΠΎΡΠΊΡΠΈΠ΅ Π±Π΅Π»Π° Ρ Π°ΡΡΠΈΡΠ° ΠΈΠ»ΠΈ ΡΠΈΠ½ΠΎ ΡΡΠ°ΡΡΠ½ΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΡΠ΅ ΠΈ Π΄Π° ΡΠ΅ ΠΏΡΠΈΡΠΈΡΠ½Π΅ ΡΠ΅Π½Π·ΠΎΡΠΎΡ Π·Π° Π΄ΠΎΠΏΠΈΡ. ΠΠΎΡΠΎΠ° ΡΡΡΠ° ΡΠ΅ΠΌΠ°, ΡΠ΅ Π²ΡΠ°ΡΠ° Π½Π° ΠΏΠΎΡΠ΅ΡΠ½Π°ΡΠ° ΠΏΠΎΠ·ΠΈΡΠΈΡΠ° ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΡΠ²Π° ΡΓ¨.
ΠΠΎΠ³Π° ΡΡΠ΅Π΄ΠΎΡ Π½Π΅ Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½, LED Π΄ΠΈΠΎΠ΄ΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΎΡΠΎΡ ΡΡΠ°Π½ΡΠ²Π°Π°Ρ ΡΡΠ²Π΅Π½ΠΈ ΠΈ Π½Π° LCD Π΅ΠΊΡΠ°Π½ΠΎΡ ΡΠ΅ ΠΏΡΠΈΠΊΠ°ΠΆΡΠ²Π° ΡΠ»ΠΈΠΊΠ° βΠΏΠ°Π»ΡΠΈ Π½Π°Π΄ΠΎΠ»Ρβ:
while True:
brick.light(Color.RED)
brick.display.image(ImageFile.THUMBS_DOWN)
Π§Π΅ΠΊΠ°ΠΌΠ΅ Π΄ΠΎΠ΄Π΅ΠΊΠ° ΡΠ΅Π½Π·ΠΎΡΠΎΡ Π·Π° Π±ΠΎΡΠ° Π½Π΅ Π±ΡΠΎΠΈ ΡΠΈΠ½Π° ΠΈΠ»ΠΈ Π±Π΅Π»Π°, ΡΠ° ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΠΌΠ΅ LED Π±ΠΎΡΠ°ΡΠ° Π½Π° Π·Π΅Π»Π΅Π½Π°, ΠΏΡΠΈΠΊΠ°ΠΆΡΠ²Π°ΠΌΠ΅ ΡΠ»ΠΈΠΊΠ° ΡΠΎ βΠΏΠ°Π»ΡΠΈ Π½Π°Π³ΠΎΡΠ΅β Π½Π° LCD Π΅ΠΊΡΠ°Π½ΠΎΡ ΠΈ ΠΈΠ·Π²Π΅ΡΡΡΠ²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΡΠ΅Π΄ΠΎΡ Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ Π·Π° ΡΠΏΠΎΡΡΠ΅Π±Π°:
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 ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π°Π°Ρ Π΄Π΅ΠΊΠ° ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π΅ Π΅ ΡΡΡΠ°ΡΠ½ΠΎ, Π²Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΡΠ²Π° Π·Π° ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΡΠΈ ΠΈ Π²ΠΈ ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠ²ΠΈΠΎΡ ΡΠ΅ΠΊΠΎΡ ΠΊΠΎΠ½ ΡΠΎΠ²Π»Π°Π΄ΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ΅Ρ
Π½ΠΈΡΠΊΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠ½ΠΈ. Π Π·Π° ΠΎΠ½ΠΈΠ΅ ΠΊΠΎΠΈ ΡΠ°Π±ΠΎΡΠ°Ρ Π²ΠΎ ΡΡΠΈΠ»ΠΈΡΡΠ°ΡΠ° ΠΈ ΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΡΠΎ, ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΠ²ΠΌΠ΅ ΠΈ Π΅Π΄ΡΠΊΠ°ΡΠΈΠ²Π½ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΈ. Π’ΠΈΠ΅ Π΄Π΅ΡΠ°Π»Π½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π°Ρ ΠΊΠΎΠΈ Π²Π΅ΡΡΠΈΠ½ΠΈ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Π°Ρ ΠΏΡΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠ΅ΠΊΠ½Π°ΡΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠ½ΠΈ ΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΠ΄ΠΈΡΠ΅ Π·Π° ΠΎΠ±ΡΠΊΠ°.
ΠΠ·Π²ΠΎΡ: www.habr.com
