рд╡реЙрдЪрдбреЙрдЧ рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИ рдЬрд┐рд╕реЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рдЙрдирдХрд╛ рдирд┐рд╡рд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрд╛рдЗрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдЖрд╡рдзрд┐рдХ рдкреБрдирд░рд╛рд░рдВрдн рдЬреЛ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рд░рд┐рдмреВрдЯ рдкрд░ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред
Gentoo рдкрд░ рдореБрдЦреНрдп рд╕рд░реНрд╡рд░ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдХрдИ рд╕реЗрд╡рд╛рдПрдВ рдЪрд▓рд╛рддрд╛ рд╣реИ, рдЬреЛ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рд░реБрдХрд╛рд╡рдЯ рдХреЗ рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреБрдЫ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕реЗ рдХрд░реНрдиреЗрд▓ рдШрдмрд░рд╛рд╣рдЯ, 100% рд╕реАрдкреАрдпреВ рд▓реЛрдб рдФрд░ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдкрд░ рд╣реЛрддреА рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рд╡реЙрдЪрдбреЙрдЧ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдкрд░ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЖрдЦрд┐рд░рдХрд╛рд░ рдЗрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рднреМрддрд┐рдХрддрд╛ рд╣реИредрдХреНрдпрд╛ рдЙрдкрд▓рдмреНрдз рдерд╛ рдФрд░ рдЙрдкрд▓рдмреНрдз рд╕рдордп рдХрд╛ рдЖрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рдПрдХ рдХрд░реАрдмреА рдирд┐рд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рдж, Arduino рдиреИрдиреЛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрдХрдЯреНрдареЗ рдХрд┐рдП рдЧрдП рдкрд╣рд░реЗрджрд╛рд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдерд╛ред рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдЙрд╕реА рдХреЗ рдЖрд╕рдкрд╛рд╕ рджрд┐рдЦрд╛рдИ рджреА:- рдЯрд╛рдЗрдорд░, рдПрдХ рдирд┐рдпрдорд┐рдд рдУрдПрд╕ рдЙрдкрдХрд░рдг (рдУрдкрдирдЖрд░рд╕реА) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдорди рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рд░реЛрдХрдирд╛ред
- рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реНрд╡рдпрдВ рдХрд╛ рдкреНрд░рд╣рд░реА, рдПрдЯреЗрдореЗрдЧрд╛ рдореЗрдВ, рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- рд░реАрдмреВрдЯ рдФрд░ рдЯрд╛рдЗрдорд░ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдИрд╡реЗрдВрдЯ рд▓реЙрдЧред
- рд▓реЙрдЧ рдореЗрдВ рд╕рд╣реА рд╕рдордп рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рдордп рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░реЗрдВред
- рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рдЗрд╕рдХреА рд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ред
- рд▓реЙрдЧ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдирд╛ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЗрд╕рдХреА рдореВрд▓ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, "рдорд╛рдЗрдХреНрд░реЛрд╕реНрдХреЛрдк" рдкрд╛рдпрд╛ рдЧрдпрд╛, "рдирд╛рдЦреВрди" рдЪрд┐рд╣реНрдирд┐рдд рд╣реИ ... рдЖрдк рд╣рдереМрдбрд╝рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрд╣рд╛рд░реНрдбрд╡реЗрдпрд░
рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЖрдзрд╛рд░ рдЪреАрдиреА рдХреНрд▓реЛрди Arduino рдиреИрдиреЛ рдерд╛, рдЬрд┐рд╕реЗ CH340 рдЪрд┐рдк рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рддрд╛рдЬрд╛ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ (3.16 рдХреЗ рдмрд╛рдж рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛) рдореЗрдВ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдбреНрд░рд╛рдЗрд╡рд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдпреВрдПрд╕рдмреА рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредArduino рдиреЗ рд░рд┐рдмреВрдЯ рдХреЛ рдЕрдирд╡рд╛рдВрдЯ рдХрд┐рдпрд╛
рд╣рд░ рдмрд╛рд░ рдЬрдм рдЯрд░реНрдорд┐рдирд▓ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ Arduino рд░рд┐рдмреВрдЯ рд╣реЛрддрд╛ рд╣реИред рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЯрд░реНрдорд┐рдирд▓ рдПрдХ DTR (рдбреЗрдЯрд╛ рдЯрд░реНрдорд┐рдирд▓ рд░реЗрдбреА) рд╕рд┐рдЧреНрдирд▓ рднреЗрдЬрддрд╛ рд╣реИ, рдЬреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, Arduino IDE рд╕реНрдХреЗрдЪ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдПрдХ рдореЛрдб рдореЗрдВ рд░рдЦрддрд╛ рд╣реИредрд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрдИ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ - рдЖрд░рдПрд╕рдЯреА рдФрд░ рдЬреАрдПрдирдбреА рд╕рдВрдкрд░реНрдХреЛрдВ рдХреЗ рдмреАрдЪ 10┬╡F рдЗрд▓реЗрдХреНрдЯреНрд░реЛрд▓рд╛рдЗрдЯ (рдиреАрдЪреЗ рдЖрд░реЗрдЦ рдореЗрдВ C1) рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╕реНрдХреЗрдЪ рдХреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рднреА рд░реЛрдХрддрд╛ рд╣реИредрдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк - рдпреЛрдЬрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
KiCad рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреИрдпрд╛рд░ рдХреА рдЧрдИрдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг- R1 тАФ , PC817: (5V тАФ 1.2V / 0.02A) = 190╬й, 180╬й.
- U2 тАФ Arduino PC. , ( USB ), .
- JP1 тАФ , . .
- 1 тАФ , DTR.
- MB_RST, MB_GND тАФ RESET , RST (GND). , .
- BTN_RST, BTN_GND тАФ , , , , .
рдбрдмреНрд▓реНрдпреВрдбреАрдЯреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдмреВрдЯ-рд▓реВрдк (рдЪрдХреНрд░реАрдп рд░рд┐рдмреВрдЯ)
ATmega рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд WDT (рд╡реЙрдЪрдбреЙрдЧ рдЯрд╛рдЗрдорд░) рд░реАрд╕реЗрдЯ рддрдВрддреНрд░ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рднреА рдкреНрд░рдпрд╛рд╕реЛрдВ рдиреЗ рдмреВрдЯ-рд▓реВрдк рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рдХреЗрд╡рд▓ рдмрд┐рдЬрд▓реА рдмрдВрдж рдХрд░рдХреЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛редрд▓рдВрдмреА рдЦреЛрдЬреЛрдВ рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рд╛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ Arduino рдХреНрд▓реЛрди рдХреЗ рдмреВрдЯрд▓реЛрдбрд░ WDT рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдСрдкреНрдЯрд┐рдмреВрдЯ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмреВрдЯрд▓реЛрдбрд░ рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ редрдмреВрдЯрд▓реЛрдбрд░ рдХреЛ рдлреНрд▓реИрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ SPI рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХреЗ, рдпрд╣ рднреА рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ рдХрд┐ Arduino IDE рдЗрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ "рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ" рдЬрд╛рдирддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдФрд░ Arduino рдЖрджрд░реНрд╢ рд╣реИредрдпрджрд┐ рд╣рдо Arduino UNO рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВ, рдФрд░ Arduino IDE v1.6.5 рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рддреЛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛:- boards-1.6.txt optiboot hardware/arduino/avr/boards.txt Arduino IDE.
- Arduino Uno, File тЖТ Examples тЖТ ArduinoISP.
- Arduino Nano :
Arduino Uno () | Arduino Nano (ICSP ) |
---|
5V тЖТ Vcc | GND тЖТ GND | D11 тЖТ MOSI | D12 тЖТ MISO | D13 тЖТ SCK | D10 тЖТ Reset |
| Pin1 (MISO) тЖР D12 | Pin2 (Vcc) тЖР 5V | Pin3 (SCK) тЖР D13 | Pin4 (MOSI) тЖР D11 | Pin5 (Reset) тЖР D10 | Pin6 (GND) тЖР GND |
|
- Arduino IDE рдореЗрдВ, рдЯреВрд▓ рдореЗрдиреВ рдореЗрдВ, рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреА рддрд░рд╣ рд╕реЗрдЯрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░реЗрдВ:

- рдореЗрдиреВ рдЖрдЗрдЯрдо рдЯреВрд▓реНрд╕ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ тЖТ рдмреВрдЯрд▓реЛрдбрд░ рдХреЛ рдЬрд▓рд╛рдПрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд┐рдирд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИред
рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдПрдХ рд╣реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЪреБрдирдХрд░ Arduino Nano рдореЗрдВ рд╕реНрдХреЗрдЪ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдмреЛрд░реНрдб : 32 рдкрд┐рди cpus рдкрд░ рдСрдкреНрдЯрд┐рдмреВрдЯ, рдкреНрд░реЛрд╕реЗрд╕рд░ : ATmega328p, CPU рд╕реНрдкреАрдб : 16MHzредрдЯрд╛рдВрдХрдиреЗ рдХреА рдХреНрд░рд┐рдпрд╛
рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рд╣рд░ рдЪреАрдЬ рдХреЛ рдорд┐рд▓рд╛рдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдпрд╣ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдЬреИрд╕рд╛ рджрд┐рдЦреЗред
рдпрд╣рд╛рдВ рдореБрдЭреЗ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдПрдХ рдпреВрдПрд╕рдмреА рдкреНрд▓рдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ USB2.0 рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдХрдиреЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдорд┐рдиреА-рдЖрдИрдЯреАрдПрдХреНрд╕ рдорджрд░рдмреЛрд░реНрдб рд╣реИ, рдЬреЛ рдлреНрд░рдВрдЯ рдкреИрдирд▓ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ, рдФрд░ рдпреВрдПрд╕рдмреА 3.0 рдкреИрдб рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рдерд╛ред рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ, рддреЛ рдРрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╕реАрдзреЗ рдорджрд░рдмреЛрд░реНрдб рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рддрд╛рд░реЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдЫрдбрд╝реА рди рдХрд░реЗрдВредрдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЯрд╛рдВрдХрд╛ рд▓рдЧрд╛рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреА рдЕрдкрдиреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рд╣реИредрдХреИрд╕реЗ рдПрдХ рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдкрд░ рдорд┐рд▓рд╛рдк рдкрдЯрд░рд┐рдпреЛрдВ( , ). .
:

рдкрд░рд┐рдгрд╛рдо:
рдРрд╕рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕рдВрдкрд░реНрдХ рдЦрд░рд╛рдм рддрд░реАрдХреЗ рд╕реЗ рд╣рд▓ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдкреНрд░рд╡рд╛рд╣ рд╣реИред рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдкрд░ рдорд┐рд▓рд╛рдк рдХреА рдЦрдкрдд рдХрд╛рдлреА рдмрдбрд╝реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рд░ рдЪреАрдЬ рдЬреЛ рд╕рдВрднрд╡ рд╣реИ, рдпрд╣рд╛рдВ рдПрдХ рдлреНрд▓рдХреНрд╕ рдХреЗ рд╕рд╛рде рд▓рд┐рдкреНрдд рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЯрд╛рдВрдХрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЙрддреНрдкрд╛рдж рдЫреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдлреНрд▓рдХреНрд╕ рдХреЛ рдзреЛрдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдпреМрдЧрд┐рдХреЛрдВ рдХреЗ рдХреНрд╖рд░рдг рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдореИрдВ рдЬреЛрдбрд╝реВрдВрдЧрд╛ рдФрд░ рдзреЛрдиреЗ рдЬрд╛рдКрдВрдЧрд╛ ... рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ:
рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ
рдирд┐рд╖реНрдкрдХреНрд╖ рд░реВрдк рд╕реЗ, рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдХреЛрдб рд╡рд┐рд╢реЗрд╖ рд░реБрдЪрд┐ рдХрд╛ рдирд╣реАрдВ рд╣реИред рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рдЪрд░рдо рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИрдВ, рдФрд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдПрдХ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ: рдПрдХ рдХрдорд╛рдВрдб рднреЗрдЬреЗрдВ - рдПрдХ рдЬрд╡рд╛рдм рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред рдЖрджреЗрд╢ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдпрд╣рд╛рдВ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЕрдкрдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛редрд╕рднреА рдХреЛрдб GitHub рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдмреИрд╢ рдФрд░ C / C ++ (Arduino рд╕реНрдХреЗрдЪ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ) рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рддреЛ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдкрдврд╝рдирд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рддреИрдпрд╛рд░ рдкрд░рд┐рдгрд╛рдо рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ редрд╡реЙрдЪрдбреЙрдЧ рдХрдиреЗрдХреНрд╢рди
рдЬрдм рдЖрдк рд╡реЙрдЪрдбреЙрдЧ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЕрдиреНрдп ttyUSB рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИрдВ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдореЙрдбреЗрдо), рддреЛ рдирдВрдмрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рд╣реИред рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд┐рдорд▓рд┐рдВрдХ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, udv рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд╕рдВрднрд╡рддрдГ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИредрд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдХрдиреЗрдХреНрдЯреЗрдб рд╡реЙрдЪрдбреЙрдЧ рдХреЛ рдиреЗрддреНрд░рд╣реАрди рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдХреЛ рджреЗрдЦрдХрд░ред рдлрд┐рд░, рд╡рд╛рдВрдЫрд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде / dev / ttyUSB0 рдХреА рдЬрдЧрд╣, рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рд▓рд┐рдЦреЗрдВ:udevadm info -a -p "$(udevadm info -q path -n /dev/ttyUSB0)"
рдЖрдЙрдЯрдкреБрдЯ рдЙрджрд╛рд╣рд░рдг looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0/ttyUSB0/tty/ttyUSB0':
KERNEL=="ttyUSB0"
SUBSYSTEM=="tty"
...
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0/ttyUSB0':
KERNELS=="ttyUSB0"
SUBSYSTEMS=="usb-serial"
DRIVERS=="ch341-uart"
...
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0':
...
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4':
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{idVendor}=="1a86"
ATTRS{idProduct}=="7523"
ATTRS{product}=="USB2.0-Serial"
...
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирд┐рдпрдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:ACTION=="add", KERNEL=="ttyUSB[0-9]*", SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="ttyrst-watchdog"
рдЖрдкрдХреЛ рдЗрд╕реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ /etc/udev/rules.d рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ , рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 51-ttyrst-watchdog.rules рдФрд░ рдирд┐рдпрдореЛрдВ рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП udev рдХреЛ рдмрддрд╛рдПрдВ:udevadm control --reload-rules
рдЗрд╕ рдХреНрд╖рдг рд╕реЗ, рд╡реЙрдЪрдбреЙрдЧ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп, рд╡рд╛рдВрдЫрд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдПрдХ рд▓рд┐рдВрдХ / dev / ttyrst- рд╡реЙрдЪрдбреЙрдЧ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛редрдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ (ttyrst-watchdog.sh)
рд╡реЙрдЪрдбреЙрдЧ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ 9600 рдмреЙрдб рдХреА рдЧрддрд┐ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрд░реБрдбрд┐рдиреЛ рдЙрдЪреНрдЪ рдЧрддрд┐ рдкрд░ рдЯрд░реНрдорд┐рдирд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╛рда (рдмрд┐рд▓реНрд▓реА, рдкреНрд░рддрд┐рдзреНрд╡рдирд┐, рдЖрджрд┐) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢ рдХреЗрд╡рд▓ рдХрдЪрд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рднреЗрдЬрддрд╛ рд╣реИред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ Arduino рдиреИрдиреЛ рдХреА рдореЗрд░реА рдкреНрд░рддрд┐ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИредрдореБрдЦреНрдп рдЯрд╛рдЗрдорд░ рдкреБрдирд░рд╛рд░рдВрдн рдЪрдХреНрд░ рдХреЗ рд▓рд┐рдП рдФрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рдШрдЯрдХ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрд╕рд╛рдзрди - рдбрд┐рд╡рд╛рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИредрд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рд▓реВрдк рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ:while fuser ${DEVICE} >/dev/null 2>&1; do true; done
рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд╕рдордп рдХреЗ рд▓рд┐рдП рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХрдмреНрдЬрд╛:cat <${DEVICE}
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдРрд╕реА рдпреЛрдЬрдирд╛ рдПрдХ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрдзреАрди рд╣реИред рдЖрдк рдЗрд╕рд╕реЗ рд╡рдпрд╕реНрдХ рддрд░реАрдХреЗ рд╕реЗ рдирд┐рдкрдЯ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП), рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕рдордп рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреВрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИредOpenRC рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд░реНрд╢рди (рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ) рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИ /usr/local/bin/ttyrst-watchdog.sh , рдФрд░ OpenRC рд▓рд┐рдкрд┐ рдореЗрдВ рд╣реИ /etc/init.d/ttyrst-watchdog редрдЬрдм рдбреЗрдореЙрди рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡реЙрдЪрдбреЙрдЧ рдХрд╛ рд╕рд╣реА рдирд┐рд╖реНрдХреНрд░рд┐рдпрдХрд░рдг рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд┐рдЧреНрдирд▓ рд╣реИрдВрдбрд▓рд░ рд╕реЗрдЯ рдХрд░рддреА рд╣реИ рдЬрд┐рд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:trap deactivate SIGINT SIGTERM
рдФрд░ рдпрд╣рд╛рдБ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ - OpenRC рдбреЗрдореЙрди рдХреЛ рд░реЛрдХ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдмрд▓реНрдХрд┐, рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рдирд╣реАрдВредрддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдорд╛рд░ рдХрдорд╛рдВрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХ рд╕рд┐рдЧреНрдирд▓ рднреЗрдЬрддрд╛ рд╣реИ, рдФрд░ рд╕реНрд▓реАрдк рдкреНрд░реЛрдЧреНрд░рд╛рдо, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдирддреАрдЬрддрди, рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд╛рд░реНрдп рдиреАрдВрдж рдкреВрд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реИредрд╕рдорд╛рдзрд╛рди рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдиреАрдВрдж рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛ рд╣реИ:sleep ${SLEEP_TIME} & wait $!
рдореВрд▓ рд╕реНрдерд┐рд░рд╛рдВрдХ:WATCHDOG_ACTIVE - YES рдпрд╛ NO рдХреНрд░рдорд╢рдГ рдЯрд╛рдЗрдорд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрдиреЗ рдпрд╛ рди рд╣реЛрдиреЗ рдкрд░ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрдд рднреЗрдЬреЗрдВредWATCHDOG_TIMER - рд╕рдордп рд╕реЗрдХрдВрдб рдореЗрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдорд░ рд╕реЗрдЯ рд╣реИредSLEEP_TIME - рд╕реЗрдХрдВрдб рдореЗрдВ рд╕рдордп рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЯрд╛рдЗрдорд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ WATCHDOG_TIMER рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЫреЛрдЯрд╛ рдирд╣реАрдВ рд╣реИ, рддрд╛рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЕрддреНрдпрдзрд┐рдХ рднрд╛рд░ рди рдкреИрджрд╛ рд╣реЛред рд╡рд░реНрддрдорд╛рди рд╕рдордп рдореЗрдВ, рдПрдХ рдЙрдЪрд┐рдд рдиреНрдпреВрдирддрдо рд▓рдЧрднрдЧ 5 рд╕реЗрдХрдВрдб рд╣реИредDEFAULT_LOG_LINES - рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЙрдЧ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд▓реЙрдЧ рдХрд┐рдП рдЧрдП рдбрд┐рд╡рд╛рдЗрд╕ рд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛редрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдорд╛рдВрдб:рд╢реБрд░реВ- рдореБрдЦреНрдп рдЯрд╛рдЗрдорд░ рдкреБрдирд░рд╛рд░рдВрдн рдЪрдХреНрд░ рдХреА рд╢реБрд░реБрдЖрддред рдЖрдк is_alive рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЪреЗрдХ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПредрд╕реНрдерд┐рддрд┐ - рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИредрд░реАрд╕реЗрдЯ - EEPROM (рд▓реЙрдЧ рдбреЗрдЯрд╛) рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рдФрд░ рд╡реЙрдЪрдбреЙрдЧ рдХреЛ рдЙрд╕рдХреА рдореВрд▓ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░рдирд╛редрд▓реЙрдЧ <рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛> - рд╣рд╛рд▓ рдХреА рд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИредArduino рд╕реНрдХреЗрдЪ (ttyrst-watchdog.ino)
рд╕реНрдХреЗрдЪ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рддреГрддреАрдп-рдкрдХреНрд╖ рдЯрд╛рдЗрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ , рдЬреЛ рд╕рдордп рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИредрдПрдХ рд╕реНрдХреЗрдЪ рдореЗрдВ рджреЛ рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ Arduino IDE рдореБрдЦреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд рд╕рдВрд░рдЪрдирд╛рдУрдВ (рд╕рдВрд░рдЪрдирд╛) рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдмрд╛рд╣рд░реА рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд╛рде рд╣реА, рд╕рдВрд░рдЪрдирд╛ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдХреАрд╡рд░реНрдб рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рдВрднрд╡рддрдГ рд╣рд╛рдирд┐рдХрд╛рд░рдХ рднреА рд╣реИ ... рдорд╛рдирдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЙрдкрдпреБрдХреНрдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред рдмрд╛рдХреА рдХрдореЛрдмреЗрд╢ рдорд╛рдирдХ C ++ рд╣реИредWdt_enable рдФрд░ wdt_reset рдлрд╝рдВрдХреНрд╢рди рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рдПрдХреАрдХреГрдд рд╡реЙрдЪрдбреЙрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред WDT рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╛рдж рд░рдЦрдиреЗ рд╡рд╛рд▓реА рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдореБрдЦреНрдп рд▓реВрдк рдореЗрдВ рдФрд░ рд╕рднреА рд▓рдореНрдмреЗ рдСрдкрд░реЗрд╢рдиреНрд╕ рдХреЗ рд▓реВрдк рдХреЗ рдЕрдВрджрд░ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИредрд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдЧреИрд░-рд╡рд╛рд╖реНрдкрд╢реАрд▓ EEPROM рдореЗрдореЛрд░реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрд▓рдмреНрдз рдЖрдХрд╛рд░ logrecord.h рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ 1024 рд╣реИред рд▓реЙрдЧ рдХреЛ рд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд┐рднрд╛рдЬрдХ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╢реВрдиреНрдп рдорд╛рди рд╣реЛрддрд╛ рд╣реИред 1 KiB EEPROM рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ 203 рд╣реИредрдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЗрд╡рд▓ рд╕рдордп рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдмрд╛рдж рд▓реЙрдЧ рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИред рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдЙрд╕реА рд╕рдордп рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЯрд╛рдЗрдорд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдХрд┐рд╕реА рднреА рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗред рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ, рдЗрд╕ рдШрдЯрдирд╛ рдХреЗ рд╕рд╛рде рд╕рд╣реА рд╕рдордп рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд░рд┐рдмреВрдЯ рдХреА рдЬрд╛рдирдХрд╛рд░реА, рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдорди рд╕реЗ рдЕрд▓рдЧрд╛рд╡ рдореЗрдВ, рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИред
рдпрд╣ рд╕рдм, рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ GitHub рдкрд░ рд╕реНрдерд┐рдд рд╣реИрдВ