MicroPython рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рдЬреЛ рдЫреЛрдЯреЗ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдЪрд┐рдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рднрд╛рд╖рд╛ рдХреЗ рджрд░реНрд╢рдХреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред
рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ, рдореИрдВ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдХреНрд░реЛрдкрд┐рдереЙрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЫреЛрдЯреЗ рд╕реНрдЯреИрдВрдб рдмрдирд╛рддрд╛ рд╣реВрдВред REPL рдФрд░ рд╕рд░рд▓ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, MicroPython DIY рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕рд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред
рдЬрдм рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдХрдВрдкреНрдпреВрдЯрд░ рдХреА рдмрд╛рддрдЪреАрдд рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдореИрдВ рд╣рдореЗрд╢рд╛ рдЙрдирдХреА рдмрд╛рддрдЪреАрдд рдХреА рдЧрддрд┐ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд░рдЦрддрд╛ рд╣реВрдВред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдорд╛рдЗрдХреНрд░реЛрдкреНрд░реЛрд╕реЗрд╕рд░ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХрд╛ рдЙрдкрдпреЛрдЧ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЧрддрд┐ рдЗрддрдиреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдЬрдм рдЕрд▓рд╛рд░реНрдо рд╕рд╛рдпрд░рди рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдмрд╣реБрдд рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ: рдЧрддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдпрд╛ 10 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж 10 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдбред
рд▓реЗрдХрд┐рди рдХреБрдЫ рдкрд╣рд▓реБрдУрдВ рдореЗрдВ, рдЧрддрд┐ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕рдордп рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдФрд░ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ MicroPython рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЙрдкрдпреБрдХреНрддрддрд╛ рдкрд░ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдереЛрдбрд╝рд╛ рд╢реЛрдз рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрдкрд┐рдереЙрди рдбреЗрдорд┐рдпрди рдЬреЙрд░реНрдЬ
рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ
рднрд╛рд╖рдг рд╕реЗ рд╡реАрдбрд┐рдпреЛ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдерд╛ред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрдкреНрд░реЛрдереЙрди рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд┐рддрдиреА рдЬрд▓реНрджреА рдЗрдирдкреБрдЯ рдкреНрд░рднрд╛рд╡ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдЧрд╛ред
рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдбрд┐рд╡рд╛рдЗрд╕ ESP8266 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд╣реЛрдЧрд╛, рдмреЛрд░реНрдб рдкрд░ MicroPython рд╕рдВрд╕реНрдХрд░рдг esp8266-2018511-v1.9.4 рдХреЗ рд╕рд╛рде NodeMcu рдмреЛрд░реНрдб рдкрд░ред

рдореИрдВ рдмрдЯрди рджрдмрд╛рдКрдВрдЧрд╛ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рджреВрд╕рд░реЗ рдкреИрд░ рдкрд░ рджрдмрд╛рдиреЗ рдФрд░ 3.3 V рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдмреАрдЪ рдЖрд╕реНрдЯрд╕реАрд▓рд╕реНрдХрдк рдкрд░ рд╕рдордп рдЕрдВрддрд░ рджрд░реНрдЬ рдХрд░реВрдВрдЧрд╛ред рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдк 15 рдмрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд╕рдд рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд░реЗрдЦрд╛рдВрдХрди рдореЗрдВ рд╕рдЪрд┐рддреНрд░) рдФрд░ рдорд╛рдирдХ рд╡рд┐рдЪрд▓рди рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ (рд░реЗрдЦрд╛рдВрдХрди рдореЗрдВ рдХрд╛рд▓реА рдкрдЯреНрдЯреА)ред
рдЯреЗрд╕реНрдЯ рдирдВрдмрд░ 1ред
рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ "рд╕рд┐рд░ рдкрд░" рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрд╣реБрдд рддреБрдЪреНрдЫ рджрд┐рдЦрддрд╛ рд╣реИ:
import machine import time o = machine.Pin(5, machine.Pin.OUT)
рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░рдВрдЧ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдпрд╣рд╛рдВ рдФрд░ рдЕрдиреНрдп рддрд░рдВрдЧреЛрдВ рдкрд░, "рдмреНрд▓реВ" рд╕рд┐рдЧреНрдирд▓ рдмрдЯрди рдХреЗ рд╕рд╛рде рдкрд┐рди рд╣реИ, "рдЧреНрд░реАрди" рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд┐рди рд╣реИред 15 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

рдФрд╕рддрди, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рд▓рдЧрднрдЧ 310 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рд╣реИ, рдЕрдзрд┐рдХрддрдо 356 ╬╝s рд╣реИ, рдмрд╣реБрдд рддреЗрдЬрд╝ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдлреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред
рдЯреЗрд╕реНрдЯ рдирдВрдмрд░ 2
рдЖрдк рд╡реНрдпрд╡рдзрд╛рди рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рдирдХ рдХреЛрдб "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рдХреЛ рдЧрддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред
import machine import time o = machine.Pin(5, machine.Pin.OUT)
рдФрд░ рдЪрд┐рддреНрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:


рдФрд░ рдЕрдзрд┐рдХрддрдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп 306 ╬╝s рд╣реИред
рдЗрдВрдЯрд░рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд▓рдЧрднрдЧ 20% рдХреА рдЧрддрд┐ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдореЗрдВ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдлреИрд▓рддрд╛ рд╣реИред
рдЯреЗрд╕реНрдЯ рдирдВрдмрд░ 3
рдпрджрд┐ рдкреНрд░рд╛рдкреНрдд рдЧрддрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдЕрдЧрд▓рд╛ рдХрджрдо @ micropython.native рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рдкрд╛рдпрдерди рдХреЛрдб рдХреЛ рдореВрд▓ рдорд╢реАрди рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдЫ
рд╕реАрдорд╛рдПрдБ рд╣реИрдВ ред
рдХреЛрдб рд╡рд┐рдХрд▓реНрдк:
import machine import time o = machine.Pin(5, machine.Pin.OUT)
рддрд░рдВрдЧ рдкрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреИрдЯрд░реНрди:

рдкрд┐рдЫрд▓реА рдкрджреНрдзрддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рддреНрд╡рд░рдг рд▓рдЧрднрдЧ рджреЛрдЧреБрдирд╛ рд╣реИ:

рд╕рдмрд╕реЗ рд▓рдВрдмреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп 128 ╬╝s рд╣реИред
рдЯреЗрд╕реНрдЯ рдирдВрдмрд░ 4
рдПрдХ "рддреЗрдЬ" MicroPython рдХреА рдЦреЛрдЬ рдореЗрдВ рдЕрдЧрд▓рд╛ рдХрджрдо @ micropython.viper рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдФрд░ рд╕реАрдзреЗ рдорд╛рдЗрдХреНрд░реЛрдкреНрд░реЛрд╕реЗрд╕рд░ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ (рд░рдЬрд┐рд╕реНрдЯрд░ рдкрддреЗ
рдпрд╣рд╛рдВ рдорд┐рд▓ рд╕рдХрддреЗ
рд╣реИрдВ ред
import time @micropython.viper def f(): O = ptr32(0x60000300)
рдФрд░ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рддреЗрдЬреА рдЖрдИ:

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ (рдЕрдзрд┐рдХрддрдо 820 рдПрдирдПрд╕) рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:


рдпрджрд┐ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк @ micropython.asm_thumb рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдбрд╛рдВрддрд░рдХ рдЖрд╡реЗрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде, рдЕрдЬрдЧрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд░рд╣рддрд╛ рд╣реИ (рдФрд░ рдкрд╛рдпрдерди рдХреЗ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд▓рд╛рдн рдЦреЛ рдЬрд╛рддреЗ рд╣реИрдВ), рдФрд░ рдпрджрд┐ рдЙрдЪреНрдЪ рдЧрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЕрдиреНрдп рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдлрдкреАрдЬреАрдП (рдЬрд╣рд╛рдВ рдкрд╛рдпрдерди рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ,
рдпрд╣рд╛рдВ рдФрд░
рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ)ред
UART
рдпрджрд┐ рдХрд┐рд╕реА рдШрдЯрдирд╛ рдХреЗ рдмрд╛рдж рдмрд╣реБрдд рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ UART рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рджреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдк рд▓реЗрдВред
рдкрд╣рд▓реЗ рдмрд╛рдзрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИ:
import machine i = machine.Pin(4, machine.Pin.IN)
рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рддрд░рдВрдЧ:

рдЕрдзрд┐рдХрддрдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп 248 ╬╝s рд╣реИред
рдФрд░ рд╡рд╛рдЗрдкрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреВрд╕рд░рд╛ рдкрд░реАрдХреНрд╖рдг:
import machine import time i = machine.Pin(4, machine.Pin.IN)
рдФрд░ рджреВрд╕рд░реА рдкрд░реАрдХреНрд╖рд╛ рдореЗрдВ рддрд░рдВрдЧ:

рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХрддрдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп 71 ╬╝s рд╣реИред
рджреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдФрд╕рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп:

рджреВрд╕рд░реЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЗрдирдкреБрдЯ рдкреНрд░рднрд╛рд╡ рдХрд╛ рддреЗрдЬреА рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рддреНрд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
MicroPython рдЖрдкрдХреЛ рдЙрди рдЪреАрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛рдУрдВ (OOP, рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ, рд╕реВрдЪреА рдФрд░ рддрд╛рдирд╛рд╢рд╛рд╣реА comprahansions, рдЖрджрд┐) рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИрдВ, рдЬрдм рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ "рдХреНрд▓рд╛рд╕рд┐рдХ" рдкрд╛рдпрдерди рдХреЛрдб рдХреЛ рддреЗрдЬ рдХрд░реЗрдВред