рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛
рдпрд╣ рдХрд╣рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЗрд╕ рдЙрдкрдХрд░рдг рдХрд╛ рджрд╛рдпрд░рд╛ рдЗрддрдирд╛ рдорд╣рд╛рди рдирд╣реАрдВ рд╣реИред рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдпрд╣ рдирд┐рдЧрд░рд╛рдиреА, тАЛтАЛрдХрд╛рд░реНрдп рд╕рдордп рдХреА рдирд┐рдЧрд░рд╛рдиреА, тАЛтАЛрд╕реВрдЪрдирд╛ рд░рд┐рд╕рд╛рд╡ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕реБрд░рдХреНрд╖рд╛ рдФрд░, рд╢рд╛рдпрдж, рдпрд╣ рд╕рдм рд╣реИредрд░реЛрдЬрдорд░реНрд░рд╛ рдХреА рдЬрд┐рдВрджрдЧреА рдореЗрдВ, рдпрд╣ рдЪреАрдЬ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛ рд╕рдХрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреБрдВрдЬреА рд╕рдВрдпреЛрдЬрди рдХреЛ рджрдмрд╛рдпрд╛ - Arduino рдиреЗ рдЙрдиреНрд╣реЗрдВ рдкрд╣рдЪрд╛рди рд▓рд┐рдпрд╛ рдФрд░ ... рдХреЗрддрд▓реА рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрдд рднреЗрдЬрд╛ред рдХреЗрддрд▓реА рдирд╣реАрдВ рддреЛ рдХреБрдЫ рдФрд░редрд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдпрд╣ рдПрдХ рдХрд░реНрдордЪрд╛рд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЯреНрд░реИрдХрд┐рдВрдЧ (рд╕рдВрднрд╡рддрдГ рдЫрд┐рдкрд╛ рд╣реБрдЖ) рд╣реИ, рдЬреЛ рдиреИрддрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдХрд╛рдиреВрдиреА рдкреНрд░рдорд╛рдг-рдкрддреНрд░ рджреЗрддрд╛ рд╣реИ рдЕрдЧрд░ рдпрд╣ рд░реЛрдЬрдЧрд╛рд░ рдЕрдиреБрдмрдВрдз рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдирд┐рдЧрд░рд╛рдиреА рдХрд╛рд░реНрдпрд╕реНрдерд▓ рдкрд░ рдФрд░ рдХрд╛рд░реНрдпрд╕реНрдерд▓ рдкрд░ рд╣реЛрддреА рд╣реИ, рдФрд░ рдпрджрд┐, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХрд░реНрдордЪрд╛рд░реА рдХреЛ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЯрд┐рдХрдЯрд┐рдХ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрдЦреИрд░, рдЕрдкрдиреЗ рдирд┐рдЬреА рдЬреАрд╡рди рдореЗрдВ рдЖрдк рдЬреЛ рднреА рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ, рдЬрдм рддрдХ рдпрд╣ рдЖрдкрдХреА рд╕рдВрдкрддреНрддрд┐ рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рддрд╛ рд╣реИредрд╕рдм рдХреБрдЫ, рд╣рдо рдХрд╛рдиреВрдиреА рд░реВрдк рд╕реЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реИрдВ, рдЕрдм рдореИрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдФрд░ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╣рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХреАрдмреЛрд░реНрдб рд╕реЗ рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рдХрд╛ рд╕рд░рд▓ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХреИрд╕реЗ рдПрдХ рд╕рд╛рде рд░рдЦрд╛ рдЬрд╛рдПредрдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ
рддреЛ, рд╣рдореЗрдВ рдПрдХ рджрд░реНрдЬрди рддрд╛рд░реЛрдВ рдФрд░ рджреЛ рдмреЛрд░реНрдбреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:1) Arduino рд▓рд┐рдпреЛрдирд╛рд░реНрдбреЛ
2) USB рд╣реЛрд╕реНрдЯ рд╢реАрд▓реНрдб
рдХреНрдпреЛрдВ Arduino рд▓рд┐рдпреЛрдирд╛рд░реНрдбреЛ? рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд╕реНрддрд╛ рд╣реИ рдФрд░, рдЕрдкрдиреЗ рдкреВрд░реНрд╡рд╡рд░реНрддрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, ATmega32u4 рдореЗрдВ USB рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдорд░реНрдерди рд╣реИредUSB рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ: рд╣реЛрд╕реНрдЯ (рдорд╛рд╕реНрдЯрд░, рд╕рд░реНрд╡рд░) рдФрд░ рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ (рджрд╛рд╕, рдЧреНрд░рд╛рд╣рдХ)ред USB рд╣реЛрд╕реНрдЯ рд╢реАрд▓реНрдб рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╢рдХреНрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдк рдХреАрдмреЛрд░реНрдб рдХреЛ рдПрдХ рдкреАрд╕реА рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдкреАрд╕реА рд╣реЛрд╕реНрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреАрдмреЛрд░реНрдб рд╣реИредрдФрд░ рдХрд╛рдлреА рдХреБрдЫ рд╕рдорд░реНрдерд┐рдд рдкрд░рд┐рдзреАрдп рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИрдВ:1) рдЫрд┐рдкрд╛рдИ рдбрд┐рд╡рд╛рдЗрд╕: рдХреАрдмреЛрд░реНрдб, рдорд╛рдЙрд╕, рдЬреЙрдпрд╕реНрдЯрд┐рдХ, рдЖрджрд┐2) рдЧреЗрдо рдХрдВрдЯреНрд░реЛрд▓рд░3) ADK- рд╕рдВрдЧрдд Android рдлреЛрди рдФрд░ рдЯреИрдмрд▓реЗрдЯредрдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдПрдВ редрд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХреАрдмреЛрд░реНрдб рд╣реИред рдпрд╣ HID рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╡рд░реНрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдХреАрдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рдЫрд┐рдкрд╛рдИ рдХреЛрдб 8 рдмрд╛рдЗрдЯреНрд╕:1) 1 рдмрд╛рдЗрдЯ рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб рд╣реИ - рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдЯ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рдВрд╢реЛрдзрдХ (рдПрд▓ Ctrl, рдЖрд░ Ctrl, рдПрд▓ рд╢рд┐рдлреНрдЯ, рдЖрд░ рд╢рд┐рдлреНрдЯ, рдЖрджрд┐) рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред2) 2 рдмрд╛рдЗрдЯреНрд╕ - рдЖрд░рдХреНрд╖рд┐рдд рдФрд░ рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рдЕрд╢рдХреНрдд рд╣реИред3) 3-8 рдмрд╛рдЗрдЯреНрд╕ - 6 рдХреБрдВрдЬреА рдХреЗ рдХреЛрдб рд╣реЛрддреЗ рд╣реИрдВредрдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдпрд╣рд╛рдБ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ редрд╕рдм рдХреБрдЫ, рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рд╕рд╛рде, рдЕрдм рдЖрдк рд╕рд░реНрдХрд┐рдЯ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╡реИрд╕реЗ, рдЖрд░реЗрдЦ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рд░реНрдпрдХреНрд░рдо, рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдЖрд░реЗрдЦ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣рд╛рдВ рд╣реИ редрдЕрдм рдпрд╣ рдмрддрд╛рдиреЗ рд▓рд╛рдпрдХ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реИредArduino рд▓рд┐рдпреЛрдирд╛рд░реНрдбреЛ рдХреА рдПрдХ рдЫреЛрдЯреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд╣рдо рдЗрд╕реЗ рдХреЗрд╡рд▓ рд╢реАрд░реНрд╖ рдкрд░ рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ: SPI рдХрдиреЗрдХреНрдЯрд░ ICSP рдкрд░ рд╕реНрдерд┐рдд рд╣реИрдВ (рд╡реЗ 6 рдХрдиреЗрдХреНрдЯрд░ рджрд╛рдИрдВ рдУрд░ рдордзреНрдп рдореЗрдВ рд╣реИрдВ) рдФрд░ рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рдЙрдиреНрд╣реЗрдВ USB рд╢реАрд▓реНрдб рдбрд┐рдЬрд┐рдЯрд▓ рдХрдиреЗрдХреНрдЯрд░реНрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред1) рдкреАрд▓рд╛ рддрд╛рд░: рдкрд┐рди 4 MOSI (USB рд╣реЛрд╕реНрдЯ рд╢реАрд▓реНрдб рдкрд░ рдкрд┐рди 11 рд╕реЗ рдЬреБрдбрд╝рд╛)ред2) рдЧреНрд░реЗ рддрд╛рд░: рдкрд┐рди 1 MISO (USB рд╣реЛрд╕реНрдЯ рд╢реАрд▓реНрдб рдкрд░ 12 рдкрд┐рди рд╕реЗ рдЬреБрдбрд╝рд╛)ред3) рдЧреНрд░реАрди рд╡рд╛рдпрд░: рдкрд┐рди 3 рдПрд╕рд╕реАрдХреЗ (рдпреВрдПрд╕рдмреА рд╣реЛрд╕реНрдЯ рд╢реАрд▓реНрдб рдкрд░ рдкрд┐рди 13 рд╕реЗ рдЬреБрдбрд╝рд╛)редрд╣рдо рдиреАрдЪреЗ рдкрд╛рдВрдЪ рддрд╛рд░реЛрдВ рдФрд░ рдПрдХ рд╡рд╛рдпрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рд╢рдХреНрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ:1) рд░реАрд╕реЗрдЯ2 рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ ) 3.3V рд╕реЗ 3.3V3) 5V рд╕реЗ 5V4) GND рд╕реЗ GND5) VIN рд╕реЗ VIN6) рд░реАрд╕реЗрдЯ рдХреЛ D7 рдХреЗ рд▓рд┐рдПрдЕрдм рдирд┐рдпрдВрддреНрд░рдг рдкрд┐рди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:1) рдбреА 7 рд╕реЗ рдбреА 72) рдбреА 10 рд╕реЗ рдбреА 10рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо рд╣реИредрддреЛ, рдПрдХ рд╕рд░реНрдХрд┐рдЯ рд╣реИ, рдЕрдм рд╣рдореЗрдВ рдЗрд╕реЗ рдХрд┐рд╕реА рддрд░рд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ Arduino IDE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрди рдореЗрдВ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдФрд░ рдЖрдИрдбреАрдИ рд╕реНрд╡рдпрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВредUSB рд╣реЛрд╕реНрдЯ рд╢реАрд▓реНрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп ( рдпрд╣рд╛рдВ ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредрдХреЛрдб рд╕реНрд╡рдпрдВ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд╕рд░рд▓ рд╣реИ:#include <hidboot.h>
#include <SPI.h>
#include <SD.h>
class KeyboardOut
{
private:
KeyReport _keyReport;
void send_report();
public:
size_t press(uint8_t mod, uint8_t key);
size_t release(uint8_t mod, uint8_t key);
};
KeyboardOut keyboard_out;
size_t KeyboardOut::press(uint8_t mod, uint8_t key) {
uint8_t i;
_keyReport.modifiers |= mod;
if (_keyReport.keys[0] != key && _keyReport.keys[1] != key &&
_keyReport.keys[2] != key && _keyReport.keys[3] != key &&
_keyReport.keys[4] != key && _keyReport.keys[5] != key) {
for (i=0; i<6; i++) {
if (_keyReport.keys[i] == 0x00) {
_keyReport.keys[i] = key;
break;
}
}
if (i == 6) {
return 0;
}
}
send_report();
return 1;
}
size_t KeyboardOut::release(uint8_t mod, uint8_t key) {
uint8_t i;
_keyReport.modifiers &= mod;
for (i=0; i<6; i++) {
if (0 != key && _keyReport.keys[i] == key) {
_keyReport.keys[i] = 0x00;
}
}
send_report();
return 1;
}
void KeyboardOut::send_report()
{
HID_SendReport(2, &_keyReport, sizeof(KeyReport));
}
class KeyboardIn : public KeyboardReportParser
{
protected:
void OnKeyDown (uint8_t mod, uint8_t key);
void OnKeyUp (uint8_t mod, uint8_t key);
};
KeyboardIn keyboard_in;
void KeyboardIn::OnKeyDown(uint8_t mod, uint8_t key)
{
keyboard_out.press(mod, key);
uint8_t c = OemToAscii(mod, key);
PrintHex<uint8_t>(key, 0x80);
}
void KeyboardIn::OnKeyUp(uint8_t mod, uint8_t key)
{
keyboard_out.release(mod, key);
uint8_t c = OemToAscii(mod, key);
PrintHex<uint8_t>(key, 0x80);
}
USB UsbHost;
HIDBoot<HID_PROTOCOL_KEYBOARD> HidKeyboard(&UsbHost);
void setup()
{
UsbHost.Init();
delay( 200 );
HidKeyboard.SetReportParser(0, (HIDReportParser*)&keyboard_in);
}
void loop()
{
UsbHost.Task();
}
рдпрд╣ рдХреЗрд╡рд▓ USB Arduino рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ PC рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИ, рдФрд░ рдХреАрдмреЛрд░реНрдб рдХреЛ USB Host Shield, IDE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Arduino рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрд╕! рдХреБрдВрдЬреА рдкрдХрдбрд╝рдиреЗ рд╡рд╛рд▓рд╛ рддреИрдпрд╛рд░ рд╣реИ!рдкрд░рд┐рдгрд╛рдо:1) Arduino рдЕрдкрдиреА рдХрдо рдХреАрдордд рдФрд░ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдФрд░ рд╕реЗрдВрд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред2) рдпрд╣ рдЙрдкрдХрд░рдг рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХреАрдмреЛрд░реНрдб рдХреЛ рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЯреАрд╡реА, рдПрдХ рдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХ рдХреЗрддрд▓реА, рдПрдХ рджреАрдкрдХ, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рдореЙрдбреНрдпреВрд▓ рдЦрд░реАрджрдиреЗ рд╣реЛрдВрдЧреЗред