ืืขืื, ืืืืจ! ืืืจ ืฉืืื ืืืขืื ืื LEGO MINDSTORMS Education EV3 ืคึผืืึทืืคืึธืจืืข. ืื ืืืืคึผื ืึทืืืืฉืขืงืืืืื ืคืื ืืขื ืคึผืืึทืืคืึธืจืืข ืืขื ืขื ืืขืจื ืขื ืืืจื ืคึผืจืึทืงืืืฉ ืืืืฉืคืืื, ืืขืืืขืืึธืคึผืื ื STEAM ืกืงืืื ืืื ืืขืืืขืืึธืคึผืื ื ืึทื ืื ืืฉืขื ืืขืจืืข ืืืื ืืกืขื. ืขืก ืงืขื ืขื ืืืื ืืขืืืืื ื ืคึฟืึทืจ ืืึทืืึธืจืึทืืึธืจืืข ืึทืจืืขื ืฆื ืืขืจื ืขื ืืึทืงืึทื ืืงืก ืืื ืืื ืึทืืืง. ืืึทืืึธืจืึทืืึธืจืืข ืืขื ืืฉืขืก ืืขืืืื ืคืื LEGO ืืจืืงืก ืืื ืืืืืืึทืืื ืคึฟืึทืจ ืจืขืงืึธืจืืื ื ืืื ืคึผืจืึทืกืขืกืื ื ืืึทืื ืืึทืื ืืงืกืคึผืขืจืึทืืึทื ืฅ ืืคืืื ืืขืจ ืืฉืืงืึทืืืข ืืื ืืืืืฉืึทืืืึทื ืืื ืืขืืคึฟื ืงืื ืืขืจ ืืขืกืขืจ ืคึฟืึทืจืฉืืืื ืคืืืืง. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืกืืืืขื ืื ืงืขื ืขื ืงืืืึทืื ืืขืืืื ื ืคืื ื ืืึทืื ืืื ื ืืฆื ืื ืึทืคึผ ืฆื ืึธืจืืึทื ืืืืจื ืขืก ืืื ืคืึธืจืฉืืขืื ืขืก ืืื ืึท ืืจืึทืคืืง. ืึธืืขืจ ืืึธืก ืืื ื ืึธืจ ืืขืจ ืึธื ืืืื: ืืืึทื ื ืืืจ ืืืขื ืืึธืื ืืืจ ืืื ืฆื ืืขืจืืึทื ื ืืขื ืืึทื ื ืืื ืื ืืืงืจืึธืคึผืืืืึธื ืคึผืจืึธืืจืึทืืืื ื ืกืืืืืืข ืืื ื ืืฆื ืขืก ืฆื ืืขืจื ืขื ืจืึธืืืึทืืืงืก.

ืืขืจื ืขื ืคึผืจืึธืืจืึทืืืื ื ืืื EV3
ืืึธืืขืจื ืกืงืืืืฉืืืืจืึทื ืืืืื ืฆื ืืขื ืคืึทืจืืืง ืจืขืืืืืึทืื. ืืึธ, ืืื ืืขื ืขื ืืึธืจื ืืืื ืื ืคึผืจืึธืืจืึทื ืคึผืจืื ืฅ ื ืืืขืจื ืฆื ืื ืงืึทื ืกืึธืื, ืืื ืืื ืืืืื ืฆื ืงืืงื ืืื ืงืึธืืืจ ืืจืึทืคืก, ืืืืึทืืจืึทืื ืืื ืฉืึทืคึฟื ืคืึทืงืืืฉ ืจืึธืืืึทืฅ ืืืึธืก ืืึทื ืืื ื ืึธืืืืื ืงืึทืืึทื ืื. ืจืขืืืืขืจ ืงืึธื ืืืื ืกืืื ืฆื ืงืึธืืคึผืืืฆืืจื ืคึฟืึทืจ ืงืื ืืขืจ, ืึทืืื ืขืก ืืื ืืขืกืขืจ ืฆื ืึธื ืืืืื ืืขืจื ืขื ืขืคึผืขืก ืืจืื ืืขืจ.
ืื ืืงืขืจืืืง EV3 ืคึผืจืึธืืจืึทืืืื ื ืกืืืืืืข ืืื ืืืืืจื ืืืืฃ ืื LabVIEW ืืจืึทืคืืงืึทื ืฉืคึผืจืึทื ืืื ืึทืืึทืื ืืืจ ืฆื ืกืคึผืขืฆืืคืืฆืืจื ืึทืืืขืจืืืึทืื ืคึฟืึทืจ ืื ืจืึธืืึธื ืืืืืฉืืืึทืื: ืงืึทืืึทื ืื ืืขื ืขื ืืขืจืืื ืื ืืื ืื ืคืึธืจืขื ืคืื ืืืึทืงืก ืืืึธืก ืงืขื ืขื ืืืื ืืจืึทืื ืืื ืงืึธื ื ืขืงืืขื.

ืืขืจ ืืืคึฟื ืึทืจืืขื ืืื ืืืขื ืืืจ ืืึทืจืคึฟื ืฆื ืืืืึทืื ืืื ืึทืืืขืจืืืึทืื ืืขื ืขื ืืขืืืื, ืึธืืขืจ ืขืก ืืื ื ืืฉื ืคึผืึทืกืืง ืคึฟืึทืจ ืืืืื ืืื ืึท ืืจืืืก ื ืืืขืจ ืคืื ืืืึทืงืก. ืืื ืกืื ืขืจืืึธืื ืืืขืจื ืืขืจ ืงืึธืืคึผืืืฆืืจื, ืขืก ืืื ื ืืืืืง ืฆื ืืึทื ืฆื ืคึผืจืึธืืจืึทืืืื ื ืืื ืงืึธื, ืึธืืขืจ ืืขื ืฉืจืื ืืื ืฉืืืขืจ ืคึฟืึทืจ ืงืื ืืขืจ ืฆื ื ืขืืขื.
ืขืก ืืขื ืขื ืึท ืืืกื ืืจืืงืก ืืึธ, ืืืื ืขืจ ืคืื ืืืึธืก ืืื ืฆื ืืืืึทืื ืึทื ืื ืงืึธื ืืื ืื ืืขืืืข ืืึทื ืืื ืื ืืืึทืงืก. ืืื ืื EV3 ืกืืืืืืข, ืืึธืก ืืื ืืขืืืขื ืืืจื ืืืงืจืึธืคึผืืืืึธื ืื ืึทืืจืืืฉืึทื, ืึทืืื ืงืืืก ืงืขื ืขื ืืึทืื ืื ืืขืืืข ืคึผืจืึธืืจืึทื ืืื ืืืืืข ืื ืืงืขืจืืืง ืืืึธืง ืคึผืจืึธืืจืึทืืืื ื ืกืืืืืืข ืืื ืคึผืืืืึธื ืืื Microsoft's Visual Studio Code. ืืื ืืขื ืึทื ืืืืืข ืืขืืืึธืืก ืึทืจืืขื ืื ืืขืืืข, ืึธืืขืจ ืกืึทืืืืื ื ืงืึธืืคึผืืขืงืก ืคึผืจืึธืืืขืืก ืืื ืงืึธื ืืื ืืขืจ ืืึทืงืืืขื.
ืืึทืฉืืืืขื ืฆื ืืืงืจืึธืคึผืืืืึธื
ืื EV3 ืกืืืืืืข ืืื ืืขืืืื ืืืืฃ ืึทื ARM9 ืคึผืจืึทืกืขืกืขืจ, ืืื ืื ืืขืืืขืืึธืคึผืขืจืก ืืึธืื ืืืืืืจืึทื ืืื ืงืก ืื ืึทืจืงืึทืืขืงืืฉืขืจ ืึธืคึฟื. ืื ืืืืืื ื ืืื ืืขืืืขื ืืขืืืขื ืฆื ืจืึธืืื ืืืืก ืึธืืืขืจื ืึทืืืื ืคืืจืืืืึทืจืข, ืืืื ืขืจ ืคืื ืืืึธืก ืืื ืืขืืืขื ืึท ืืืื ืคึฟืึทืจ ืืจืืขืื ืืื ืืืงืจืึธืคึผืืืืึธื. ืขืก ืึทืืึทืื ืืืจ ืฆื ื ืืฆื Python ืฆื ืคึผืจืึธืืจืึทื ืืืื EV3, ืืื ืืจืขื ืืขื ืืขื ืงืื ืืคืืื ื ืขืขื ืืขืจ ืฆื ืคืึทืงืืืฉ ืืึทืกืงืก.
ืฆื ืึธื ืืืืื, ืืืจ ืืึทืจืคึฟื ืฆื ืึธืคึผืืึธืืืจื ืืืืฃ ืงืืื ืืืงืจืึธืกื ืงืึธืจื, ืื ืกืืึทืืืจื ืขืก ืืื ืื EV3 ืืืงืจืึธืงืึธืืคึผืืืขืจ ืืื ืงืขืจ ืขืก ืืืืฃ. ืืขืืึธืื ืืืจ ืืึทืจืคึฟื ืฆื ืื ืกืืึทืืืจื ืคึฟืึทืจ ืืืืกืืึทื ืกืืืืืึธ. ืืื ืืืจ ืงืขื ืขื ืึธื ืืืืื ืืจืืขืื.
ืคึผืจืึธืืจืึทืืืื ื ืืขืจ ืขืจืฉืืขืจ ืจืึธืืึธื ืืื MycroPython

ืืืืฃ ืืื ืืืขืจ ืขืก ืืขื ืขื ืขืืืขืืข ืืขืงืฆืืขืก ืคึฟืึทืจ ืืึทืกืืขืจืื ื ืื ืืจืื ื ืงืึทื ืกืขืคึผืก ืคืื ืจืึธืืืึทืืืงืก. EV3 ืืึธืืขืืก ืืึทืงืขื ืขื ืงืื ืืขืจ ืฆื ืื ืืึทืกืืงืก ืืืึธืก ืืขื ืขื ืืขื ืืฆื ืืื ืืื-ืืจืืืืืื ื ืงืึทืจืก, ืคืึทืืจืืง ืคึฟืึทืจืืึทืืืื ื ืจืึธืืืึทืฅ ืืื CNC ืืืฉืื ืขื.
ืืืจ ื ืขืืขื ืืขื ืืืืฉืคึผืื ืคืื ืึท ืฆืืืืขื ืื ื ืืึทืฉืื, ืืืึธืก ืงืขื ืขื ืืืื ืืขืืขืจื ื ืฆื ืฆืืขื ืคึผืึทืืขืจื ื ืืื ืืืฉืืึทืืขืืจืืง ืฉืึทืคึผืขืก. ืืขืจ ืคืึทื ืืื ืึท ืกืืืคึผืืึทืคืืื ืืืขืจืกืืข ืคืื โโืจืึธืืืึทืฅ ืคึฟืึทืจ ืืืขืืืื ื ืึธืืขืจ ืืืืื ื ืคึฟืึทืจ ืึทืืึทืืฅ ืืื ืืืืืื ืืื EV3 ืงืขื ืขื ืืืื ืืขืืืืื ื ืืื ืงืึทื ืืืฉืึทื ืืงืฉืึทื ืืื ืืืงืจืึธืคึผืืืืึธื ืฆื ืืขืจื ืขื ืกืงืืืืฉืืืืจืึทื. ืืื ืึท ืฆืืืืขื ืื ื ืืึทืฉืื ืงืขื ืขื ืฆืืืื ืืึธืืขืก ืืื ืึท ืืขืืจืืงื ืงืจืืึทื ืืจืขื ืคึฟืึทืจ ืืึทืืข, ืึธืืขืจ ืืึธืก ืืื ืื ืื ืืขืจ ืืืจืื ืืืึธืก ืจืืงืืืืืขืจื ืืึทื.
ืคึฟืึทืจ ืึทืจืืขื ืืืจ ืืึทืจืคึฟื:
- LEGO MINDSTORMS Education EV3 Core Set;
- ืืจืืืก ืืืืื ืคืื ืืฉืขืงืขืจื ืคึผืึทืคึผืืจ;
- ืืื ื ืืึทืจืงืขืจืก.
ืื ืคึฟืึทืจืืึทืืืื ื ืคืื ืื ืจืึธืืึธื ืืื ืืื ืืื , ืืื ืืืจ ืืืขืื ืงืืงื ืืื ืึท ืคึผืจืึธืืจืึทืืืื ื ืืืึทืฉืคึผืื.
ืขืจืฉืืขืจ ืืืจ ืื ืืฉืึทืืืื ืื 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():
ืืืื ืืขืจ ืฆืื ืืืื ืงื ืืื ืืจืขืกืขืจ ืืื ืื ืงืจืึทื ื ืืืจืึธ ืกืขื ืกืขืจ ืืืื ืงื, ืคืึธืจืืขืฆื ืงืืึทืงืืืืื ืืื ืึท positive ืืืืงืืึทื:
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 ืงืึทืจืืขืจืข ืืื ืึท ืคึผืึธืืืฆืืข ืคืื ื ืืื ืื ืืฉืขื ืืขืจืืข ืงืึทืจืืขืจืข. ืืื ื ืขืก ืงืขื ืขื ืืืื ืืขื ืืฆื ืฆื ืกืึธืืืืข ืคึผืจืึทืงืืืฉ ืคึผืจืึธืืืขืืก, ืงืื ืืขืจ ืืึทืงืืืขื ืืขืจืคืึทืจืื ื ืืื ืืขืื ืืฉ ืึทื ืืืืืงืืื ื ืืื ืื ืฉืึทืคืื ื ืคืื ืื ืืึทืกืืจื ืจืึธืืืึทืฅ, ืืขืจื ืขื ืฆื ืกืืืืืืจื ืคืึทืงืืืฉ ืกืืืืึทืืืึธื ืก, ืคึฟืึทืจืฉืืืื ืืืืื ืืื ืึทื ืึทืืืื ืึทืืืขืจืืืึทืื ืืื ืืขื ืืงืขืจืืืง ืคึผืจืึธืืจืึทืืืื ื ืงืึทื ืกืืจืึทืงืฉืึทื ื.
ืืืงืจืึธืคึผืืืืึธื ืฉืืืฆื ืืืื ืื EV3 ืคึผืืึทืืคืึธืจืืข ืคึผืึทืกืืง ืคึฟืึทืจ ืืืืืฉืื ืืขืจื ืขื. ืกืืืืขื ืื ืงืขื ืขื ืคึผืจืืืืจื ืืื ืืื ืคึผืจืึธืืืจืึทืืขืจื ืืื ืืืื ืขืจ ืคืื ืื ืืขืจืกื ืคืึธืืงืก ืืึธืืขืจื ืฉืคึผืจืึทืื, ืืื ืืึทืงืืืขื ืืึทืงืึทื ื ืืื ืคึผืจืึทืคืขืฉืึทื ื ืฉืืึทืืืช ืฆื ืคึผืจืึธืืจืึทืืืื ื ืืื ืื ืืฉืขื ืืขืจืืข ืคึผืืึทื. EV3 ืงืืฅ ืืืืึทืื ืึทื ืงืึธืืืจืื ื ืืื ื ืืฉื ืกืงืขืจื, ืฆืืืจืืืื ืืืจ ืคึฟืึทืจ ืขืจื ืกื ืื ืืฉืขื ืืขืจืืข ืืฉืึทืืึทื ืืืฉืื ืืื ืืขืืคึฟื ืืืจ ื ืขืืขื ืื ืขืจืฉืืขืจ ืฉืจืื ืฆื ืืึทืกืืขืจืื ื ืืขืื ืืฉ ืกืงืืื. ืื ื ืคื ืจ ื ื ืฐื ืก ืืจืืขื ื ืื ื ืฉืื ื ืื ื ืืฒื ืข ื ืคืืจืืื ื ื ืื ื ืืื ืื , ืืื ื ืื ืจ ืื ื ืฆืืืขืืจืฒื ืืื ืืืืืื ืืงืจืืื ืืึทืืขืจืืึทืืก. ืืื ืืึทืฉืจืืึทืื ืืื ืืขืืึทื ืืืึธืก ืกืงืืื ืืขื ืขื ืืขืืืขืืึธืคึผืขื ืืืขื ืคึผืขืจืคืึธืจืืื ื ืืืืขืจ ืืึทืกืงืก, ืืื ืืื ืื ืงืื ื ืกืงืืื ืคืึทืจืืื ืื ืฆื ืืจืืื ืื ื ืกืืึทื ืืึทืจืืก.
ืืงืืจ: www.habr.com
