LEGO MINDSTORMS เบเบฒเบ™เบชเบถเบเบชเบฒ EV3 + MicroPython: เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฃเปเบเบฃเบกเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ‚เบญเบ‡เป€เบ”เบฑเบเบ™เป‰เบญเบเปƒเบ™เบžเบฒเบชเบฒเบœเบนเป‰เปƒเบซเบเปˆ

เบชเบฐเบšเบฒเบเบ”เบต, Habr! เบžเบงเบเป€เบฎเบปเบฒเปเบฅเป‰เบง เบšเบญเบ เบเปˆเบฝเบงเบเบฑเบšเป€เบงเบ—เบต LEGO MINDSTORMS Education EV3. เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เป€เบงเบ—เบตเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เป‚เบ”เบเบœเปˆเบฒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบฑเบเบชเบฐ STEAM เปเบฅเบฐเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ”เป‰เบฒเบ™เบงเบดเบชเบฐเบงเบฐเบเปเบฒ. เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เบซเป‰เบญเบ‡เบ—เบปเบ”เบฅเบญเบ‡เป€เบžเบทเปˆเบญเบชเบถเบเบชเบฒเบเบปเบ™เป„เบเปเบฅเบฐเบ™เบฐเป‚เบเบšเบฒเบเบ”เป‰เบฒเบ™. เป€เบšเบฑเปˆเบ‡เบ™เบฑเปˆเบ‡เบซเป‰เบญเบ‡เบ—เบปเบ”เบฅเบญเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เบˆเบฒเบเบ”เบดเบ™เบˆเบตเปˆ LEGO เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปƒเบŠเป‰เบ•เปˆเบฒเบ‡เป†เป€เบžเบทเปˆเบญเบšเบฑเบ™เบ—เบถเบ เปเบฅเบฐเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เปเป‰เบกเบนเบ™ เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบกเบตเบ„เบงเบฒเบกเปœเป‰เบฒเบชเบปเบ™เปƒเบˆ เปเบฅเบฐเป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เป„เบ”เป‰เบซเบผเบฒเบเบ‚เบถเป‰เบ™ เปเบฅเบฐเบŠเปˆเบงเบเปƒเบซเป‰เป€เบ”เบฑเบเบ™เป‰เบญเบเป€เบ‚เบปเป‰เบฒเปƒเบˆเบŸเบตเบŠเบดเบเป„เบ”เป‰เบ”เบตเบ‚เบถเป‰เบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ™เบฑเบเบฎเบฝเบ™เบชเบฒเบกเบฒเบ”เป€เบเบฑเบšเบเบณเบ‚เปเป‰เบกเบนเบ™เบˆเบธเบ”เบฅเบฐเบฅเบฒเบ เปเบฅเบฐเปƒเบŠเป‰เปเบญเบฑเบšเป€เบžเบทเปˆเบญเบˆเบฑเบ”เบฅเบฐเบšเบฝเบš เปเบฅเบฐเบ™เบณเบชเบฐเป€เปœเบตเบกเบฑเบ™เปƒเบ™เบเบฒเบŸ. เปเบ•เปˆเบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™: เบกเบทเป‰เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเบญเบเบ—เปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบเบญเบšเบŠเบธเบ”เบ™เบตเป‰เบเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก MicroPython เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบกเบฑเบ™เป€เบžเบทเปˆเบญเบชเบญเบ™เบซเบธเปˆเบ™เบเบปเบ™.

LEGO MINDSTORMS เบเบฒเบ™เบชเบถเบเบชเบฒ EV3 + MicroPython: เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฃเปเบเบฃเบกเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ‚เบญเบ‡เป€เบ”เบฑเบเบ™เป‰เบญเบเปƒเบ™เบžเบฒเบชเบฒเบœเบนเป‰เปƒเบซเบเปˆ

เบฎเบฝเบ™เบฎเบนเป‰เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเป‚เบ”เบเปƒเบŠเป‰ EV3

เบ™เบฑเบเบฎเบฝเบ™เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบšเบดเปˆเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบกเบตเบชเบตเบชเบฑเบ™. เปเบกเปˆเบ™เปเบฅเป‰เบง, เบžเบงเบเป€เบ‚เบปเบฒเป€เบšเบทเปˆเบญเบ–เป‰เบฒเป‚เบ„เบ‡เบเบฒเบ™เบžเบดเบกเบ•เบปเบงเป€เบฅเบเปƒเบชเปˆเบ„เบญเบ™เป‚เบŠเบ™, เปเบฅเบฐเบžเบงเบเป€เบ‚เบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบชเบฑเป‰เบ™เบชเบฐเปเบ”เบ‡เบชเบต, เปเบœเบ™เบงเบฒเบ”เปเบฅเบฐเบชเป‰เบฒเบ‡เบซเบธเปˆเบ™เบเบปเบ™เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบ—เบตเปˆเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ„เปเบฒเบชเบฑเปˆเบ‡. เบฅเบฐเบซเบฑเบ”เบ›เบปเบเบเบฐเบ•เบดเบเบฑเบ‡เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบชเบฑเบšเบชเบปเบ™เป€เบเบตเบ™เป„เบ›เบชเปเบฒเบฅเบฑเบšเป€เบ”เบฑเบเบ™เป‰เบญเบ, เบชเบฐเบ™เบฑเป‰เบ™เบกเบฑเบ™เบ”เบตเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เบ”เป‰เบงเบเบชเบดเปˆเบ‡เบ—เบตเปˆเบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™.

เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก EV3 เบžเบทเป‰เบ™เบ–เบฒเบ™เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบžเบฒเบชเบฒเบเบฒเบŸเบดเบ LabVIEW เปเบฅเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฅเบฐเบšเบธเบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบชเปเบฒเบฅเบฑเบšเบซเบธเปˆเบ™เบเบปเบ™เบ”เป‰เบงเบเบชเบฒเบเบ•เบฒ: เบ„เปเบฒเบชเบฑเปˆเบ‡เบ–เบทเบเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบšเบฅเบฑเบญเบเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบฅเบฒเบเปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป„เบ”เป‰.

LEGO MINDSTORMS เบเบฒเบ™เบชเบถเบเบชเบฒ EV3 + MicroPython: เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฃเปเบเบฃเบกเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ‚เบญเบ‡เป€เบ”เบฑเบเบ™เป‰เบญเบเปƒเบ™เบžเบฒเบชเบฒเบœเบนเป‰เปƒเบซเบเปˆ

เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เบ”เบตเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡ algorithms, เปเบ•เปˆเบกเบฑเบ™เบšเปเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบšเบฑเบ™เบ”เบฒเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™เบ•เบฑเบ™เบซเบผเบฒเบ. เป€เบกเบทเปˆเบญเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบเบฒเบเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบซเบผเบฒเบ, เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเป‰เบฒเบเป„เบ›เบชเบนเปˆเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบ”เป‰เบงเบเบฅเบฐเบซเบฑเบ”, เปเบ•เปˆเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบเบชเปเบฒเบฅเบฑเบšเป€เบ”เบฑเบเบ™เป‰เบญเบเบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”. 

เบกเบตเบšเบฒเบ‡ tricks เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰, เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ•เบฑเบ™. เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก EV3, เบ™เบตเป‰เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡ MicroPython, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป€เบ”เบฑเบเบ™เป‰เบญเบเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ”เบฝเบงเบเบฑเบ™เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบšเบฅเบฑเบญเบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเบฐ Python เปƒเบ™ Visual Studio Code เบ‚เบญเบ‡ Microsoft. เบžเบงเบเป€เบ‚เบปเบฒเป€เบซเบฑเบ™เบงเปˆเบฒเบ—เบฑเบ‡เบชเบญเบ‡เบงเบดเบ—เบตเป€เบฎเบฑเบ”เบงเบฝเบเบ„เบทเบเบฑเบ™, เปเบ•เปˆเบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™เป‚เบ”เบเปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เปเบกเปˆเบ™เบชเบฐเบ”เบงเบเบเบงเปˆเบฒ.

เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ MicroPython

เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก EV3 เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต ARM9, เปเบฅเบฐเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเป„เบ”เป‰เป€เบˆเบ”เบ•เบฐเบ™เบฒเบ›เบฐเป„เบงเป‰เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเป€เบ›เบตเบ”. เบเบฒเบ™เปเบเป‰เป„เบ‚เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบญเบญเบเป€เบŸเบตเบกเปเบงเบ—เบฒเบ‡เป€เบฅเบทเบญเบ, เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบฎเบนเบšเบžเบฒเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš MicroPython. เบกเบฑเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เปƒเบŠเป‰ Python เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ„เบ‡เบเบฒเบ™ EV3 เบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เป€เบฎเบฑเบ”เปƒเบซเป‰เบŠเบธเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปƒเบเป‰เบŠเบดเบ”เบเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เปƒเบ™เบŠเบตเบงเบดเบ”เบˆเบดเบ‡. 

เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ”เบฒเบงเป‚เบซเบฅเบ” เบฎเบนเบšเบžเบฒเบš EV3 MicroPython เปƒเบ™เบšเบฑเบ” microSD เปƒเบ”เป†เบเปเบ•เบฒเบก, เปƒเบซเป‰เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบกเบฑเบ™เบขเบนเปˆเปƒเบ™เป„เบกเป‚เบ„เบ„เบญเบกเบžเบดเบงเป€เบ•เบต EV3 เปเบฅเบฐเป€เบ›เบตเบ”เบกเบฑเบ™. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ•เบดเบ”เบ•เบฑเป‰เบ‡ เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบŸเบฃเบต เบชเปเบฒเบฅเบฑเบš Visual Studio. เปเบฅเบฐเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ. 

เบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ„เบ‡เบเบฒเบ™เบซเบธเปˆเบ™เบเบปเบ™เบ—เปเบฒเบญเบดเบ”เปƒเบ™ MycroPython

LEGO MINDSTORMS เบเบฒเบ™เบชเบถเบเบชเบฒ EV3 + MicroPython: เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฃเปเบเบฃเบกเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ‚เบญเบ‡เป€เบ”เบฑเบเบ™เป‰เบญเบเปƒเบ™เบžเบฒเบชเบฒเบœเบนเป‰เปƒเบซเบเปˆ

เบเปˆเบฝเบงเบเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ site เบกเบตเบšเบปเบ”เบฎเบฝเบ™เบซเบผเบฒเบเบญเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบŠเปเบฒเบ™เบดเบŠเปเบฒเบ™เบฒเบ™เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบซเบธเปˆเบ™เบเบปเบ™. เบฎเบนเบšเปเบšเบš EV3 เปเบ™เบฐเบ™เปเบฒเป€เบ”เบฑเบเบ™เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบšเบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฅเบปเบ”เบ—เบตเปˆเบ‚เบฑเบšเบฅเบปเบ”เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡, เบซเบธเปˆเบ™เบเบปเบ™เบ›เบฐเบเบญเบšเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”, เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ CNC. 

เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบญเบปเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบ•เป‰เบกเบฎเบนเบš, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบชเบญเบ™เปเบ•เป‰เบกเบฎเบนเบšเปเบšเบšเปเบฅเบฐเบฎเบนเบšเบฎเปˆเบฒเบ‡เป€เบฅเบ‚เบฒเบ„เบฐเบ™เบดเบ”. เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบšเบฑเบšเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบ‚เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบฅเบซเบฐเบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบซเบเปˆเบซเบผเบท milling เบซเบธเปˆเบ™เบเบปเบ™เปเบฅเบฐเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเบดเบ—เบตเบเบฒเบ™ EV3 เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบชเบปเบกเบ—เบปเบšเบเบฑเบš MicroPython เป€เบžเบทเปˆเบญเบชเบญเบ™เป€เบ”เบฑเบเบ™เป‰เบญเบเป‚เบฎเบ‡เบฎเบฝเบ™. เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบ•เป‰เบกเบฎเบนเบšเบชเบฒเบกเบฒเบ”เบซเบกเบฒเบเบฎเบนเบขเบนเปˆเปƒเบ™เบเบฐเบ”เบฒเบ™เบงเบปเบ‡เบˆเบญเบ™เบžเบดเบกเบชเปเบฒเบฅเบฑเบšเบžเปเปˆ, เปเบ•เปˆเบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบญเบตเบเบฅเบฐเบ”เบฑเบšเบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”.

เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™:

  • LEGO MINDSTORMS Education EV3 Core Set; 
  • เปเบœเปˆเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡เป€เบˆเป‰เบ checkered;
  • เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบชเบต. 

เบเบฒเบ™เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบซเบธเปˆเบ™เบเบปเบ™เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™ เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบšเบดเปˆเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก.

เบ—เปเบฒเบญเบดเบ”เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป‚เบกเบ”เบนเบ™ 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

เบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเป‰เบ‡เป€เบงเบ—เบตเบ—เบตเปˆ rotates handle เบ„เป‰เบฒเบเบ„เบท motor เปƒเบ™ port B. เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบ™เบปเบ”เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เป€เบเบเบ‚เบญเบ‡เบฅเบปเบ”เป„เบŸเป€เบเบเบชเบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เปเบ‚เป‰เบงเบ‚เบญเบ‡ 20-12-28, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš.

turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])

เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบ™เบปเบ”เบเบปเบ™เป„เบเบเบฒเบ™เบเบปเบเบชเปเบฒเบฅเบฑเบšเบกเบทเบˆเบฑเบšเป€เบ›เบฑเบ™เบกเปเป€เบ•เบตเบขเบนเปˆเปƒเบ™เบžเบญเบ” C:

seesaw_motor = Motor(Port.C)

เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒ gyroscope, เป€เบŠเบดเปˆเบ‡เบงเบฑเบ”เปเบ—เบเบกเบธเบกเบ‚เบญเบ‡ inclination เบ‚เบญเบ‡ handle เป„เบ”เป‰, เปƒเบ™เบžเบญเบ” 2:

gyro_sensor = GyroSensor(Port.S2)

เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒเป€เบŠเบฑเบ™เป€เบŠเบตเบชเบตเปƒเบ™เบžเบญเบ” 3. เป€เบŠเบฑเบ™เป€เบŠเบตเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบเบงเบ”เบซเบฒเบเบฐเบ”เบฒเบ”เบชเบตเบ‚เบฒเบงเบžเบฒเบเปƒเบ•เป‰เป€เบ„เบทเปˆเบญเบ‡เปเบ•เป‰เบกเบฎเบนเบš:

color_sensor = ColorSensor(Port.S3)

เบžเบงเบเป€เบฎเบปเบฒเบเบณเบ™เบปเบ”เบ„เปˆเบฒเป€เบŠเบฑเบ™เป€เบŠเบตเบชเบณเบœเบฑเบ”เบขเบนเปˆเปƒเบ™เบžเบญเบ” 4. เบซเบธเปˆเบ™เบเบปเบ™เป€เบฅเบตเปˆเบกเปเบ•เป‰เบกเป€เบกเบทเปˆเบญเป€เบŠเบฑเบ™เป€เบŠเบตเบ–เบทเบเบเบปเบ”:

touch_sensor = TouchSensor(Port.S4)

เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบ™เบปเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบเบปเบเปเบฅเบฐเบซเบผเบธเบ”เบฅเบปเบ‡ handle เป„เบ”เป‰:

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():

เบ–เป‰เบฒเบกเบธเบกเป€เบ›เบปเป‰เบฒเปเบฒเบเปƒเบซเบเปˆเบเบงเปˆเบฒเบกเบธเบกเป€เบŠเบฑเบ™เป€เบŠเบต gyro เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบชเบทเบšเบ•เปเปˆเบ•เบฒเบกเป€เบ‚เบฑเบกเป‚เบกเบ‡เบ”เป‰เบงเบเบ„เบงเบฒเบกเป„เบงเบšเบงเบ:

    turntable_motor.run(70)
	
while gyro_sensor.angle() < target_angle:
  	
pass
  elif target_angle < gyro_sensor.angle():

เบ–เป‰เบฒเบกเบธเบกเป€เบ›เบปเป‰เบฒเปเบฒเบเปเบกเปˆเบ™เปœเป‰เบญเบเบเบงเปˆเบฒเป€เบŠเบฑเบ™เป€เบŠเบต gyro เบ›เบฐเบˆเบธเบšเบฑเบ™, เบˆเบฒเบเบ™เบฑเป‰เบ™เปƒเบซเป‰เป€เบฅเบทเปˆเบญเบ™เบ•เบฒเบกเป€เบ‚เบฑเบกเป‚เบกเบ‡:

    turntable_motor.run(-70)
	
while gyro_sensor.angle() > target_angle:
  	
pass

เบขเบธเบ”เป€เบงเบ—เบตเบเบฒเบ™เบซเบกเบธเบ™เป€เบกเบทเปˆเบญเบฎเบญเบ”เบกเบธเบกเป€เบ›เบปเป‰เบฒเปเบฒเบ:

  turntable_motor.stop(Stop.BRAKE)

เบเปเบฒเบ™เบปเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ‚เบญเบ‡ handle เปƒเบ™เบ•เปเบฒเปเบซเบ™เปˆเบ‡เป€เบ—เบดเบ‡:

pen_holder_raise()

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบกเบฒเบžเบฒเบเบชเปˆเบงเบ™เบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™ - เป€เบ›เบฑเบ™ loop เบ—เบตเปˆเบšเปเปˆเบกเบตเบ—เบตเปˆเบชเบดเป‰เบ™เบชเบธเบ”. 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 เบเบฑเบšเป€เบŠเบฑเบ™เป€เบŠเบต gyroscopic เปเบฅเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เปเบ•เป‰เบกเบฎเบนเบš:

  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>

เบ™เบตเป‰เปเบกเปˆเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเป‰เบฒเบ‡. เปเบฅเบฐเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเป€เบ›เบตเบ”เบ•เบปเบงเบกเบฑเบ™เปเบฅเบฐเป€เบšเบดเปˆเบ‡เบซเบธเปˆเบ™เบเบปเบ™เบฎเปˆเบฒเบ‡เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. 

เบ•เบปเบงเบขเปˆเบฒเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปƒเบซเป‰เบซเบเบฑเบ‡?

LEGO MINDSTORMS เบเบฒเบ™เบชเบถเบเบชเบฒ EV3 + MicroPython: เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฃเปเบเบฃเบกเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ‚เบญเบ‡เป€เบ”เบฑเบเบ™เป‰เบญเบเปƒเบ™เบžเบฒเบชเบฒเบœเบนเป‰เปƒเบซเบเปˆ

EV3 เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเปเบ™เบฐเบ™เปเบฒเบญเบฒเบŠเบตเบšเบชเปเบฒเบฅเบฑเบšเบญเบฒเบŠเบตเบš STEM เปเบฅเบฐเบˆเบธเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบญเบฒเบŠเบตเบšเบงเบดเบชเบฐเบงเบฐเบเปเบฒ. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบžเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”, เป€เบ”เบฑเบเบ™เป‰เบญเบเป„เบ”เป‰เบฎเบฑเบšเบ›เบฐเบชเบปเบšเบเบฒเบ™เปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™เปเบฅเบฐเบเบฒเบ™เบชเป‰เบฒเบ‡เบซเบธเปˆเบ™เบเบปเบ™เบญเบธเบ”เบชเบฒเบซเบฐเบเปเบฒ, เบฎเบฝเบ™เบฎเบนเป‰เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡, เป€เบ‚เบปเป‰เบฒเปƒเบˆเป‚เบ„เบ‡เบเบฒเบ™เปเบฅเบฐเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ, เปเบฅเบฐเบชเป‰เบฒเบ‡เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบžเบทเป‰เบ™เบ–เบฒเบ™.

เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ MicroPython เป€เบฎเบฑเบ”เปƒเบซเป‰เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก EV3 เป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบญเบ™เป‚เบฎเบ‡เบฎเบฝเบ™เบกเบฑเบ”เบ—เบฐเบเบปเบก. เบ™เบฑเบเบชเบถเบเบชเบฒเบชเบฒเบกเบฒเบ”เบžเบฐเบเบฒเบเบฒเบกเบ•เบปเบ™เป€เบญเบ‡เป€เบ›เบฑเบ™เบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปƒเบ™เบžเบฒเบชเบฒเบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบ—เบตเปˆเบ™เบดเบเบปเบกเบ—เบตเปˆเบชเบธเบ”, เปเบฅเบฐเป„เบ”เป‰เบฎเบนเป‰เบˆเบฑเบเบเบฑเบšเบญเบฒเบŠเบตเบšเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปเบฅเบฐเบงเบดเบชเบฐเบงเบฐเบเปเบฒเบเบฒเบ™เบญเบญเบเปเบšเบš. เบŠเบธเบ” EV3 เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบšเปเปˆเป€เบ›เบฑเบ™เบ•เบฒเบขเป‰เบฒเบ™, เบเบฐเบเบฝเบกเบ—เปˆเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบชเบดเปˆเบ‡เบ—เป‰เบฒเบ—เบฒเบเบ”เป‰เบฒเบ™เบงเบดเบชเบฐเบงเบฐเบเปเบฒเบ—เบตเปˆเบฎเบธเบ™เปเบฎเบ‡, เปเบฅเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบเป‰เบฒเบงเบ—เปเบฒเบญเบดเบ”เป„เบ›เบชเบนเปˆเบเบฒเบ™เบŠเปเบฒเบ™เบดเบŠเปเบฒเบ™เบฒเบ™เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™. เปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป‚เบฎเบ‡เบฎเบฝเบ™เปเบฅเบฐเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบชเบถเบเบชเบฒ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบเบฐเบเบฝเบก เป‚เบ„เบ‡เบเบฒเบ™เบšเบปเบ”เบฎเบฝเบ™ เปเบฅเบฐเบญเบธเบ›เบฐเบเบญเบ™เบเบฒเบ™เบชเบถเบเบชเบฒ. เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบญเบฐเบ—เบดเบšเบฒเบเบขเปˆเบฒเบ‡เบฅเบฐเบญเบฝเบ”เบงเปˆเบฒเบ—เบฑเบเบชเบฐเปƒเบ”เป„เบ”เป‰เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบงเบฝเบเบ‡เบฒเบ™เบชเบฐเป€เบžเบฒเบฐเปƒเบ”เบซเบ™เบถเปˆเบ‡, เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบ—เบฑเบเบชเบฐเบ—เบตเปˆเป„เบ”เป‰เบกเบฒเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบเบฒเบ™เบเบถเบเบญเบปเบšเบฎเบปเบก.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster