LEGO MINDSTORMS Education EV3 + MicroPythonαŸ– αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŸαŸ†αžŽαž„αŸ‹αžšαž”αžŸαŸ‹αž€αž»αž˜αžΆαžšαž‡αžΆαž—αžΆαžŸαžΆαž˜αž“αž»αžŸαŸ’αžŸαž–αŸαž‰αžœαŸαž™

αžŸαž½αžŸαŸ’αžαžΈ αž αžΆαž”! αž™αžΎαž„αžšαž½αž…αž αžΎαž™ αž”αžΆαž“αž”αŸ’αžšαžΆαž”αŸ‹ αž’αŸ†αž–αžΈαžœαŸαž‘αž·αž€αžΆ LEGO MINDSTORMS Education EV3 αŸ” αž‚αŸ„αž›αž”αŸ†αžŽαž„αžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒαžœαŸαž‘αž·αž€αžΆαž“αŸαŸ‡αž‚αžΊαž€αžΆαžšαžšαŸ€αž“αžαžΆαž˜αžšαž™αŸˆαž§αž‘αžΆαž αžšαžŽαŸαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ αž’αž—αž·αžœαžŒαŸ’αžαž‡αŸ†αž“αžΆαž‰ STEAM αž“αž·αž„αž’αž—αž·αžœαžŒαŸ’αžαž•αŸ’αž“αžαŸ‹αž‚αŸ†αž“αž·αžαžœαž·αžŸαŸ’αžœαž€αž˜αŸ’αž˜αŸ” αžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž„αžΆαžšαž˜αž“αŸ’αž‘αžΈαžšαž–αž·αžŸαŸ„αž’αž“αŸαžŠαžΎαž˜αŸ’αž”αžΈαžŸαž·αž€αŸ’αžŸαžΆαž˜αŸαž€αžΆαž“αž·αž…αž“αž·αž„αžαžΆαž˜αžœαž“αŸ’αžαŸ” αž€αŸ…αž’αžΈαž˜αž“αŸ’αž‘αžΈαžšαž–αž·αžŸαŸ„αž’αž“αŸαž•αž›αž·αžαž–αžΈαž₯αžŠαŸ’αž‹ LEGO αž“αž·αž„αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžαŸ‹αžαŸ’αžšαžΆ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž’αŸ’αžœαžΎαž±αŸ’αž™αž€αžΆαžšαž–αž·αžŸαŸ„αž’αž“αŸαž€αžΆαž“αŸ‹αžαŸ‚αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ αž“αž·αž„αž˜αžΎαž›αžƒαžΎαž‰ αž“αž·αž„αž‡αž½αž™αž€αž»αž˜αžΆαžšαž±αŸ’αž™αž™αž›αŸ‹αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αž”αžΆαžŸαŸ‹αž’αŸ†αž–αžΈαžšαžΌαž”αžœαž·αž‘αŸ’αž™αžΆαŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αžŸαž·αžŸαŸ’αžŸαž’αžΆαž…αž”αŸ’αžšαž˜αžΌαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž…αŸ†αžŽαž»αž…αžšαž›αžΆαž™ αž αžΎαž™αž”αŸ’αžšαžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαžΎαž˜αŸ’αž”αžΈαžšαŸ€αž”αž…αŸ†αžœαžΆ αž αžΎαž™αž”αž„αŸ’αž αžΆαž‰αžœαžΆαž€αŸ’αž“αž»αž„αž€αŸ’αžšαžΆαž αŸ’αžœαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸαŸ‡αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ– αžαŸ’αž„αŸƒαž“αŸαŸ‡αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž–αžΈαžšαž”αŸ€αž”αž”αŸ†αž–αŸαž‰αžŸαŸ†αžŽαž»αŸ†αž“αŸαŸ‡αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αžšαž·αž™αžΆαž€αžΆαžŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ MicroPython αž αžΎαž™αž”αŸ’αžšαžΎαžœαžΆαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αžšαŸ€αž“αž˜αž“αž»αžŸαŸ’αžŸαž™αž“αŸ’αžαŸ”

LEGO MINDSTORMS Education EV3 + MicroPythonαŸ– αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŸαŸ†αžŽαž„αŸ‹αžšαž”αžŸαŸ‹αž€αž»αž˜αžΆαžšαž‡αžΆαž—αžΆαžŸαžΆαž˜αž“αž»αžŸαŸ’αžŸαž–αŸαž‰αžœαŸαž™

αžšαŸ€αž“αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ„αž™αž”αŸ’αžšαžΎ EV3

αžŸαž·αžŸαŸ’αžŸαžŸαžΆαž›αžΆαžŸαž˜αŸαž™αž‘αŸ†αž“αžΎαž”αž…αž„αŸ‹αžƒαžΎαž‰αž›αž‘αŸ’αž’αž•αž›αž…αž˜αŸ’αžšαž»αŸ‡αž–αžŽαŸŒαŸ” αž”αžΆαž‘ αž–αž½αž€αž‚αŸαž’αž»αž‰αž‘αŸ’αžšαžΆαž“αŸ‹αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž›αŸαžαž‘αŸ…αž€αž»αž„αžŸαžΌαž› αž αžΎαž™αž–αž½αž€αž‚αŸαž…αž„αŸ‹αž˜αžΎαž›αž€αŸ’αžšαžΆαž αŸ’αžœαž·αž€αž–αžŽαŸŒ αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜ αž“αž·αž„αž”αž„αŸ’αž€αžΎαžαž˜αž“αž»αžŸαŸ’αžŸαž™αž“αŸ’αžαž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαžŠαŸ‚αž›αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈ αž“αž·αž„αž’αŸ’αžœαžΎαžαžΆαž˜αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαŸ” αž€αžΌαžŠαž’αž˜αŸ’αž˜αžαžΆαž€αŸαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž–αŸαž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž»αž˜αžΆαžš αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžœαžΆαž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžšαŸ€αž“αž‡αžΆαž˜αž½αž™αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž‡αžΆαž„αŸ”

αž”αžšαž·αž™αžΆαž€αžΆαžŸαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ EV3 αž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‚αžΊαž•αŸ’αž’αŸ‚αž€αž›αžΎαž—αžΆαžŸαžΆαž€αŸ’αžšαžΆαž αŸ’αžœαž·αž€ LabVIEW αž“αž·αž„αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž“αž»αžŸαŸ’αžŸαž™αž“αŸ’αžαžŠαŸ„αž™αž˜αžΎαž›αžƒαžΎαž‰αŸ– αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž‡αžΆαž‘αž˜αŸ’αžšαž„αŸ‹αž”αŸ’αž›αž»αž€αžŠαŸ‚αž›αž’αžΆαž…αž’αžΌαžŸ αž“αž·αž„αž—αŸ’αž‡αžΆαž”αŸ‹αž”αžΆαž“αŸ”

LEGO MINDSTORMS Education EV3 + MicroPythonαŸ– αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŸαŸ†αžŽαž„αŸ‹αžšαž”αžŸαŸ‹αž€αž»αž˜αžΆαžšαž‡αžΆαž—αžΆαžŸαžΆαž˜αž“αž»αžŸαŸ’αžŸαž–αŸαž‰αžœαŸαž™

αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αž›αŸ’αž’αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž„αŸ’αž αžΆαž‰αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžΆαž„αžŸαž„αŸ‹ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž˜αž·αž“αžŸαŸαž€αŸ’αžαž·αžŸαž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ’αž›αž»αž€αž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αŸ†αž“αŸ„αŸ‡αž‘αŸαŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαž€αžΆαž“αŸ‹αžαŸ‚αžŸαŸ’αž˜αž»αž‚αŸ’αžšαžŸαŸ’αž˜αžΆαž‰ αžœαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαž‘αŸ…αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αžΌαžŠ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αŸ†αž αžΆαž“αž“αŸαŸ‡αž‚αžΊαž–αž·αž”αžΆαž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ’αž˜αŸαž„αŸ—αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαŸ” 

αž˜αžΆαž“αž›αŸ’αž”αž·αž…αž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αžŠαŸ‚αž›αž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž“αŸ„αŸ‡αž‚αžΊαž”αž„αŸ’αž αžΆαž‰αžαžΆ αž€αžΌαžŠαž’αŸ’αžœαžΎαžŠαžΌαž…αž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„αž”αŸ’αž›αž»αž€αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αžŸαŸ’αžαžΆαž“ EV3 αž“αŸαŸ‡αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž› MicroPython αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αž»αž˜αžΆαžšαž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαžΌαž…αž‚αŸ’αž“αžΆαž‘αžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αžŸαŸ’αžαžΆαž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ’αž›αž»αž€αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ αž“αž·αž„ Python αž“αŸ…αž€αŸ’αž“αž»αž„ Visual Studio Code αžšαž”αžŸαŸ‹ Microsoft αŸ” αž–αž½αž€αž‚αŸαžƒαžΎαž‰αžαžΆαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž‘αžΆαŸ†αž„αž–αžΈαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΌαž…αž‚αŸ’αž“αžΆ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αžΌαžŠαž‚αžΊαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž‡αžΆαž„αŸ”

αž”αŸ’αžαžΌαžšαž‘αŸ… MicroPython

αž”αžšαž·αžŸαŸ’αžαžΆαž“ EV3 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš ARM9 αž αžΎαž™αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž”αžΆαž“αž‘αž»αž€αž…αŸ„αž›αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžŠαŸ„αž™αž…αŸαžαž“αžΆαŸ” αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž“αŸαŸ‡αž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αžŠαžΎαž˜αŸ’αž”αžΈαžŠαžΆαž€αŸ‹αž…αŸαž‰αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αž‡αŸ†αž“αž½αžŸ αžŠαŸ‚αž›αž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž“αŸ„αŸ‡αž‚αžΊαž‡αžΆαžšαžΌαž”αž—αžΆαž–αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™ MicroPython αŸ” αžœαžΆαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎ Python αžŠαžΎαž˜αŸ’αž”αžΈαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ EV3 αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αžŠαŸ„αž™αž“αžΆαŸ†αž§αž”αž€αžšαžŽαŸαž“αŸαŸ‡αž€αžΆαž“αŸ‹αžαŸ‚αžαž·αžαž‘αŸ…αž‡αž·αžαž€αž·αž…αŸ’αž…αž€αžΆαžšαž€αŸ’αž“αž»αž„αž‡αžΈαžœαž·αžαž–αž·αžαŸ” 

αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž‘αžΆαž‰αž™αž€ αžšαžΌαž”αž—αžΆαž– EV3 MicroPython αž“αŸ…αž›αžΎαž€αžΆαž microSD αžŽαžΆαž˜αž½αž™ αžŸαžΌαž˜αžŠαŸ†αž‘αžΎαž„αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΈαž€αŸ’αžšαžΌαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžš EV3 αž αžΎαž™αž”αžΎαž€αžœαžΆαŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžŠαŸ†αž‘αžΎαž„ αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Visual Studio αŸ” αž αžΎαž™αž’αŸ’αž“αž€αž’αžΆαž…αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž’αŸ’αžœαžΎαž€αžΆαžšαŸ” 

αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž“αž»αžŸαŸ’αžŸαž™αž“αŸ’αžαžŠαŸ†αž”αžΌαž„αž‚αŸαž“αŸ…αž€αŸ’αž“αž»αž„ MycroPython

LEGO MINDSTORMS Education EV3 + MicroPythonαŸ– αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŸαŸ†αžŽαž„αŸ‹αžšαž”αžŸαŸ‹αž€αž»αž˜αžΆαžšαž‡αžΆαž—αžΆαžŸαžΆαž˜αž“αž»αžŸαŸ’αžŸαž–αŸαž‰αžœαŸαž™

αž“αŸ…αž›αžΎαžšαž”αžŸαŸ‹αž™αžΎαž„ αžαŸ†αž”αž“αŸ‹αž”αžŽαŸ’αžαžΆαž‰ αž˜αžΆαž“αž˜αŸαžšαŸ€αž“αž‡αžΆαž…αŸ’αžšαžΎαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΎαž‡αžΆαž˜αŸ’αž…αžΆαžŸαŸ‹αž›αžΎαž‚αŸ„αž›αž‚αŸ†αž“αž·αžαž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž“αŸƒαž˜αž“αž»αžŸαŸ’αžŸαž™αž“αŸ’αžαŸ” αž˜αŸ‰αžΌαžŠαŸ‚αž› EV3 αžŽαŸ‚αž“αžΆαŸ†αž€αž»αž˜αžΆαžšαž’αŸ†αž–αžΈαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‚αŸ’αžšαžΉαŸ‡αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž“αŸ…αž€αŸ’αž“αž»αž„αžšαžαž™αž“αŸ’αžαžŠαŸ‚αž›αž”αžΎαž€αž”αžšαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„ αž˜αž“αž»αžŸαŸ’αžŸαž™αž“αŸ’αžαžŠαŸ†αž‘αžΎαž„αžšαŸ„αž„αž…αž€αŸ’αžš αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ CNC αŸ” 

αž™αžΎαž„β€‹αž“αžΉαž„β€‹αž›αžΎαž€β€‹αž™αž€β€‹αž§αž‘αžΆαž αžšαžŽαŸβ€‹αž“αŸƒβ€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž‚αŸ†αž“αžΌαžš αžŠαŸ‚αž›β€‹αž’αžΆαž…β€‹αž”αž„αŸ’αžšαŸ€αž“β€‹αž±αŸ’αž™β€‹αž‚αžΌαžšβ€‹αž›αŸ†αž“αžΆαŸ† αž“αž·αž„β€‹αžšαžΆαž„β€‹αž’αžšαžŽαžΈαž˜αžΆαžαŸ’αžšαŸ” αž€αžšαžŽαžΈαž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αŸ†αžŽαŸ‚αžŸαžΆαž˜αž‰αŸ’αž‰αž“αŸƒαž€αžΆαžšαž•αŸ’αžŸαžΆαžšαžŠαŸ‚αž€ αž¬αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž€αž·αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž“αž»αžŸαŸ’αžŸαž–αŸαž‰αžœαŸαž™ αž αžΎαž™αž”αž„αŸ’αž αžΆαž‰αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž› 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

αž™αžΎαž„αžšαŸ€αž”αž…αŸ†αžœαŸαž‘αž·αž€αžΆαžŠαŸ‚αž›αž”αž„αŸ’αžœαž·αž›αž…αŸ†αžŽαž»αž…αž‘αžΆαž‰αžŠαžΌαž…αž‡αžΆαž˜αŸ‰αžΌαž‘αŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž…αŸ’αžšαž€ B. αž™αžΎαž„αž€αŸ†αžŽαžαŸ‹αžŸαž˜αžΆαž˜αžΆαžαŸ’αžšαž”αŸ’αžšαž’αž”αŸ‹αž›αŸαžαž“αŸƒαžšαžαž—αŸ’αž›αžΎαž„αž”αŸ’αžšαž’αž”αŸ‹αž›αŸαžαž–αžΈαžšαžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž…αŸ†αž“αž½αž“αž’αŸ’αž˜αŸαž‰ 20-12-28 αžšαŸ€αž„αž‚αŸ’αž“αžΆαŸ”

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

αž™αžΎαž„αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž™αž“αŸ’αžαž€αžΆαžšαž›αžΎαž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αŸ†αžŽαž»αž…αž‘αžΆαž‰αž‡αžΆαž˜αŸ‰αžΌαž‘αŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž…αŸ’αžšαž€ C:

seesaw_motor = Motor(Port.C)

αž™αžΎαž„αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ gyroscope αžŠαŸ‚αž›αžœαžΆαžŸαŸ‹αž˜αž»αŸ†αž‘αŸ†αž“αŸ„αžšαž“αŸƒαž…αŸ†αžŽαž»αž…αž‘αžΆαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αž…αŸ’αžšαž€αž‘αžΈ 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():

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αž»αŸ†αž‚αŸ„αž›αžŠαŸ…αž’αŸ†αž‡αžΆαž„αž˜αž»αŸ†αž§αž”αž€αžšαžŽαŸ 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)

αž€αŸ†αžŽαžαŸ‹αž‘αžΈαžαžΆαŸ†αž„αžŠαŸ†αž”αžΌαž„αž“αŸƒαž…αŸ†αžŽαž»αž…αž‘αžΆαž‰αž“αŸ…αž‘αžΈαžαžΆαŸ†αž„αžαžΆαž„αž›αžΎαŸ–

pen_holder_raise()

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž˜αž€αž•αŸ’αž“αŸ‚αž€αžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ - αžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ†αž‚αŸ’αž˜αžΆαž“αž‘αžΈαž”αž‰αŸ’αž…αž”αŸ‹αŸ” EV3 αž‡αžΆαžŠαŸ†αž”αžΌαž„αžšαž„αŸ‹αž…αžΆαŸ†αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž§αž”αž€αžšαžŽαŸαž…αžΆαž”αŸ‹αžŸαž‰αŸ’αž‰αžΆαž–αžŽαŸŒαžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αžƒαžΎαž‰αž€αŸ’αžšαžŠαžΆαžŸαžŸ αž¬αž–αžŽαŸŒαžαŸ€αžœαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αžΆαžšαŸ‰αŸ αž αžΎαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž§αž”αž€αžšαžŽαŸαž…αžΆαž”αŸ‹αžŸαž‰αŸ’αž‰αžΆαž”αŸ‰αŸ‡αžαŸ’αžšαžΌαžœαž…αž»αž…αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž‚αžΆαžαŸ‹αž‚αžΌαžšαž›αŸ†αž“αžΆαŸ†αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ…αž‘αžΈαžαžΆαŸ†αž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž αžΎαž™αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαŸ—αž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž˜αŸ’αžαž„αž‘αŸ€αžαŸ”

αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž§αž”αž€αžšαžŽαŸαž˜αž·αž“αž‘αžΆαž“αŸ‹αžšαž½αž…αžšαžΆαž›αŸ‹ LEDs αž“αŸ…αž›αžΎαž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆαž”αŸ’αžšαŸ‚αž‘αŸ…αž‡αžΆαž–αžŽαŸŒαž€αŸ’αžšαž αž˜ αž αžΎαž™αžšαžΌαž”αž—αžΆαž– "αž˜αŸαžŠαŸƒαž…αž»αŸ‡αž€αŸ’αžšαŸ„αž˜" αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž“αŸ…αž›αžΎαž’αŸαž€αŸ’αžšαž„αŸ‹ 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 Education EV3 + MicroPythonαŸ– αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŸαŸ†αžŽαž„αŸ‹αžšαž”αžŸαŸ‹αž€αž»αž˜αžΆαžšαž‡αžΆαž—αžΆαžŸαžΆαž˜αž“αž»αžŸαŸ’αžŸαž–αŸαž‰αžœαŸαž™

EV3 αž‚αžΊαž‡αžΆαž§αž”αž€αžšαžŽαŸαžŽαŸ‚αž“αžΆαŸ†αž’αžΆαž‡αžΈαž–αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžΆαž‡αžΈαž– STEM αž“αž·αž„αž‡αžΆαž…αŸ†αžŽαž»αž…αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž’αžΆαž‡αžΈαž–αžœαž·αžŸαŸ’αžœαž€αž˜αŸ’αž˜αŸ” αžŠαŸ„αž™αžŸαžΆαžšαžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ αž€αž»αž˜αžΆαžšαž‘αž‘αž½αž›αž”αžΆαž“αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ αž“αž·αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž˜αž“αž»αžŸαŸ’αžŸαž™αž“αŸ’αžαž§αžŸαŸ’αžŸαžΆαž αž€αž˜αŸ’αž˜ αžšαŸ€αž“αž€αŸ’αž›αŸ‚αž„αž’αŸ’αžœαžΎαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αžœαž·αž—αžΆαž‚αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™ αž“αž·αž„αž’αŸ’αžœαžΎαž‡αžΆαž˜αŸ’αž…αžΆαžŸαŸ‹αž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αŸ”

αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš MicroPython αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαŸαž‘αž·αž€αžΆ EV3 αžŸαž˜αžšαž˜αŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž„αŸ’αžšαŸ€αž“αž“αŸ…αžœαž·αž‘αŸ’αž™αžΆαž›αŸαž™αŸ” αžŸαž·αžŸαŸ’αžŸαž’αžΆαž…αžŸαžΆαž€αž›αŸ’αž”αž„αžαŸ’αž›αž½αž“αž―αž„αž‡αžΆαž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΆαž—αžΆαžŸαžΆαž‘αŸ†αž“αžΎαž”αž–αŸαž‰αž“αž·αž™αž˜αž”αŸ†αž•αž»αžαž˜αž½αž™ αž αžΎαž™αžŸαŸ’αž‚αžΆαž›αŸ‹αž˜αž»αžαž‡αŸ†αž“αžΆαž‰αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αž€αžΆαžšαžšαž…αž“αžΆαžœαž·αžŸαŸ’αžœαž€αž˜αŸ’αž˜αŸ” αž§αž”αž€αžšαžŽαŸ EV3 αž”αž„αŸ’αž αžΆαž‰αžαžΆαž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αžΌαžŠαž˜αž·αž“αž‚αž½αžšαž±αŸ’αž™αžαŸ’αž›αžΆαž…αž‘αŸ αžšαŸ€αž”αž…αŸ†αž’αŸ’αž“αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž‰αŸ’αž αžΆαž”αŸ’αžšαžˆαž˜αž•αŸ’αž“αŸ‚αž€αžœαž·αžŸαŸ’αžœαž€αž˜αŸ’αž˜αž’αŸ’αž„αž“αŸ‹αž’αŸ’αž„αžš αž“αž·αž„αž‡αž½αž™αž’αŸ’αž“αž€αž±αŸ’αž™αž”αŸ„αŸ‡αž‡αŸ†αž αžΆαž“αžŠαŸ†αž”αžΌαž„αž†αŸ’αž–αŸ„αŸ‡αž‘αŸ…αžšαž€αž‡αŸ†αž“αžΆαž‰αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαŸ” αž αžΎαž™β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž’αŸ’αž“αž€β€‹αžŠαŸ‚αž›β€‹αž’αŸ’αžœαžΎβ€‹αž€αžΆαžšβ€‹αž“αŸ…β€‹αžŸαžΆαž›αžΆβ€‹αž“αž·αž„β€‹αž˜αžΆαž“β€‹αž‘αŸ†αž“αžΆαž€αŸ‹β€‹αž‘αŸ†αž“αž„β€‹αž“αžΉαž„β€‹αž€αžΆαžšβ€‹αž’αž”αŸ‹αžšαŸ† αž™αžΎαž„β€‹αž”αžΆαž“β€‹αžšαŸ€αž”β€‹αž…αŸ†β€‹αž αžΎαž™αŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αŸαžšαŸ€αž“ αž“αž·αž„αžŸαž˜αŸ’αž—αžΆαžšαŸˆαžŸαž·αž€αŸ’αžŸαžΆαŸ” αž–αž½αž€αž‚αŸαž–αžŽαŸŒαž“αžΆαž™αŸ‰αžΆαž„αž›αž˜αŸ’αž’αž·αžαžαžΆαžαžΎαž‡αŸ†αž“αžΆαž‰αž’αŸ’αžœαžΈαžαŸ’αž›αŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž–αŸαž›αž”αŸ†αž–αŸαž‰αž€αžΆαžšαž„αžΆαžšαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ αž“αž·αž„αžšαž”αŸ€αž”αžŠαŸ‚αž›αž‡αŸ†αž“αžΆαž‰αžŠαŸ‚αž›αž‘αž‘αž½αž›αž”αžΆαž“αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž”αžŽαŸ’αžαž»αŸ‡αž”αžŽαŸ’αžαžΆαž›αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž‘αž·αž‰αž€αžΆαžšαž”αž„αŸ’αž αŸ„αŸ‡αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸαž αž‘αŸ†αž–αŸαžšαžŠαŸ‚αž›αž˜αžΆαž“αž€αžΆαžšαž€αžΆαžšαž–αžΆαžš DDoS, αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ VPS VDS πŸ”₯ αž‘αž·αž‰αžŸαŸαžœαžΆαž”αž„αŸ’αž αŸ„αŸ‡αž‚αŸαž αž‘αŸ†αž–αŸαžšαžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž€αžΆαžšαž–αžΆαžš DDoS αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ VPS VDS | ProHoster