рдЖрд░рдУрдПрд╕ рдФрд░ рдиреНрдпреВрд░рд▓ рдЧреНрд░рд┐рдб рднрд┐рдЦрд╛рд░реА рд░реЛрдмреЛрдЯ

рдЖрдорддреМрд░ рдкрд░, рдРрд╕реЗ рд╢рд┐рд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рджреЛ рд╕рд╡рд╛рд▓ рдЙрдарддреЗ рд╣реИрдВ: "рдХреИрд╕реЗ?" рдФрд░ рдХрд┐рд╕ рд▓рд┐рдП?" рдкреНрд░рдХрд╛рд╢рди рд╕реНрд╡рдпрдВ рдкрд╣рд▓реЗ рдкреНрд░рд╢реНрди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИ, рдФрд░ рдореИрдВ рддреБрд░рдВрдд рджреВрд╕рд░реЗ рдХрд╛ рдЙрддреНрддрд░ рджреВрдВрдЧрд╛:

рдореИрдВрдиреЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдФрд░ рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдХреЗ, рдорд╛рд╕реНрдЯрд░ рд░реЛрдмреЛрдЯрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдХреБрдЫ рд╕реАрдЦрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдПрдХ рддрдХрдиреАрдХреА рдХрд╛рд░реНрдп рд╣реИ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдХреМрд╢рд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реБрдП рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рд╣реИред

рдЙрд╕ рд╕рдордп, рд░реЛрдмреЛрдЯрд┐рдХреНрд╕ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдХреЛрдИ рдЙрдЬреНрдЬреНрд╡рд▓ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдереЗ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдордЬреЗрджрд╛рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ - рдПрдХ рднрд┐рдЦрд╛рд░реА рд░реЛрдмреЛрдЯред рдкрд░рд┐рдгрд╛рдо рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдФрд░ рдЖрд░рдУрдПрд╕ рдкрд░ рдПрдХ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рд░реЛрдмреЛрдЯ рд╣реИ, рдЬреЛ рдЪреЗрд╣рд░реЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП Movidius Neural Cumpute рд╕реНрдЯрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рдХрдорд░реЗ рдореЗрдВ рдШреВрдорддрд╛ рд╣реИ, рд▓реЛрдЧреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрдирдХреЗ рд╕рд╛рдордиреЗ рдПрдХ рдХреИрди рд╣рд┐рд▓рд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдпрд╣ рд░реЛрдмреЛрдЯ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:



рд░реЛрдмреЛрдЯ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдХрдорд░реЗ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдорддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд░ рдпрд╣ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЗрд╕реЗ рд░реЛрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЫреЛрдЯреА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рд░ рдХреЛ рд╣рд┐рд▓рд╛рддрд╛ рд╣реИред рдордЬрд╝реЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЙрд╕рдХреЗ рд╕рд╛рде рдереЛрдбрд╝реА рдЪреЗрд╣рд░реЗ рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЬреЛрдбрд╝рд╛ - рд╡рд╣ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХреА рднреМрд╣реЗрдВ рдХреИрд╕реЗ рд╣рд┐рд▓рд╛рдиреА рд╣реИрдВ:



рдкрд╣рд▓реЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдмрд╛рдж, рд░реЛрдмреЛрдЯ рдЕрдкрдирд╛ рдЪреЗрд╣рд░рд╛ рдлрд┐рд░ рд╕реЗ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рд╡реНрдпрдХреНрддрд┐ рдХреА рдУрд░ рдореБрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдмреИрдВрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╣рд┐рд▓рд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрд╕ рдкрд▓ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ:



рд░реЛрдмреЛрдЯ


рдореИрдВрдиреЗ рдореИрдЧрдЬреАрди рдкреЙрдкреБрд▓рд░ рдореИрдХреЗрдирд┐рдХреНрд╕ рд╕реЗ рдПрдХ рднреАрдЦ рдорд╛рдВрдЧрдиреЗ рд╡рд╛рд▓реЗ рд░реЛрдмреЛрдЯ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд▓рд┐рдпрд╛ ред рдЧрд┐рдордореЗ рдирд╛рдордХ рдХреНрд░рд┐рд╕ рдПрдХрд░реНрдЯ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдСрдерд░рд╢рд┐рдк рдмрд╣реБрдд рд╣реА рд╕реМрдВрджрд░реНрдпрд╡рд╛рджреА рд░реВрдк рд╕реЗ рдордирднрд╛рд╡рди рд▓рдЧрддреЗ рд╣реИрдВред

рдЫрд╡рд┐

рдореИрдВ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдорд╛рдорд▓реЗ рдХреЛ рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдкреАрд╡реАрд╕реА рдХреЛрдиреЗ рд╕рдмрд╕реЗ рдмрд╣реБрдореБрдЦреА рд╕рд╛рдордЧреНрд░реА рд╕рд╛рдмрд┐рдд рд╣реБрдП рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рджреЛ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлрд┐рд▓рд╣рд╛рд▓ рд░реЛрдмреЛрдЯ рдкреАрд╡реАрд╕реА рдХреЛрдиреЛрдВ рдФрд░ рдПрдо 3 рд╕реНрдХреНрд░реВ рд╕реЗ рдмрдирд╛ рдкрд╛рдВрдЪ рдкреНрд░рддрд┐рд╢рдд рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реНрд╡рдпрдВ рддреАрди рд▓реЗрдорд┐рдиреЗрдЯ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рди рдкрд░ рд╕рд┐рд░ рдФрд░ рд╕рднреА рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХреНрд╕ рд▓рдЧреЗ рд╣реЛрддреЗ рд╣реИрдВред

рд░реЛрдмреЛрдЯ рдХрд╛ рдЖрдзрд╛рд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 2 рдмреА рд╣реИ , рдФрд░ рдХреЛрдб рд╕реА ++ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЧрд┐рдЯрд╣рдм рдкрд░ рд╕реНрдерд┐рдд рд╣реИ ред

рд╡рд┐рдЬрди


рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рд░реЛрдмреЛрдЯ Paspberry Pi Camera Module v2 рдХреИрдорд░рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ , рдЬрд┐рд╕реЗ RaspiCam рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рдлреЗрд╕ рдбрд┐рдЯреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред OpenCV рд╕реЗ рдХреНрд▓рд╛рд╕рд┐рдХ рдбрд┐рдЯреЗрдХреНрдЯрд░реЛрдВ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдиреЗ рдореБрдЭреЗ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдЕрдВрдд рдореЗрдВ рдореИрдВ рдПрдХ рдЧреИрд░-рдорд╛рдирдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛ред рдирд┐рдпрдВрддреНрд░рдг рдлреНрд░реЗрдо OpenVino рдХреЗ рддрд╣рдд рдбрд┐рд╡рд╛рдЗрд╕ Movidius рдиреНрдпреВрд░рд▓ рдХрдВрдкреНрдпреВрдЯ рд╕реНрдЯрд┐рдХ (NCS) рдкрд░ рдЪрд▓ рд░рд╣реЗ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд▓рдЧреЗ рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ ред

рдПрдирд╕реАрдПрд╕ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдкреНрд░рднрд╛рд╡реА рдкреНрд░рдХреНрд╖реЗрдкрдг рдХреЗ рд▓рд┐рдП рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рдХрдИ рд╡реЗрдХреНрдЯрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реИрдВ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рд┐рд▓рд╡рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдбрд┐рд╡рд╛рдЗрд╕ рдпреВрдПрд╕рдмреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ 1 рд╡рд╛рдЯ рдмрд┐рдЬрд▓реА рдХреА рдЦрдкрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдирд╕реАрдПрд╕ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ рд▓рд┐рдП рд╕рд╣-рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдирд╣реАрдВ рдЦреАрдВрдЪрддрд╛ рд╣реИред рдЬрдмрдХрд┐ NCS рдЕрдЧрд▓реЗ рдлреНрд░реЗрдо рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ, Paspberry рдкреНрд░реЛрд╕реЗрд╕рд░ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдЗрд╖реНрдЯрддрдо рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рдПрдХ рдпреВрдПрд╕рдмреА 3.0 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ; рдпреВрдПрд╕рдмреА 2.0 рдХреЗ рд╕рд╛рде рдпрд╣ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдмрд╕ рдзреАрдорд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░рд╛рд╕реНрдкрдмреЗрд░реА рдпреВрдПрд╕рдмреА рдХрдиреЗрдХреНрдЯрд░реНрд╕ рдХреЛ рдмреНрд▓реЙрдХ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рдЫреЛрдЯреА рдпреВрдПрд╕рдмреА рдХреЗрдмрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдирд╕реАрдПрд╕ рдХреЛ рдЗрд╕рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдиреНрдпреВрд░рд▓ рдХрдореНрдкреНрдпреВрдЯ рд╕реНрдЯрд┐рдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдерд╛ ред

рдкрд╣рд▓реЗ рддреЛ рдореИрдВрдиреЗ рдЯреНрд░реЗрдирд┐рдВрдЧ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАрдУрдкрди рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдореЛрдмрд╛рдЗрд▓рдиреЗрдЯ + рдПрд╕рдПрд╕рдбреА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд╕рд╛рде рдЦреБрдж рдХрд╛ рдлреЗрд╕ рдбрд┐рдЯреЗрдХреНрдЯрд░ ред рдбрд┐рдЯреЗрдХреНрдЯрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИ: рд╢реВрдЯрд┐рдВрдЧ рдХреА рд╕реНрдерд┐рддрд┐ (рдЬреЛрдЦрд┐рдо рдФрд░ рдзреБрдВрдзрд▓реА рд╢реЙрдЯреНрд╕) рдХреЗ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рдмрд┐рдЧрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде, рдбрд┐рдЯреЗрдХреНрдЯрд░ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдмрд╣реБрдд рдмрдврд╝ рдЧрдИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рд░реЗрдбреА-рдореЗрдб рдлреЗрд╕ рдбрд┐рдЯреЗрдХреНрдЯрд░ рдУрдкрдирд╡рд┐рдиреЛ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдП, рдФрд░ рдореИрдВрдиреЗ рд╕реНрдХреНрд╡реАрдЬрд╝рдиреЗрдЯ рд▓рд╛рдЗрдЯ + рдПрд╕рдПрд╕рдбреА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдбрд┐рдЯреЗрдХреНрдЯрд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ , рдЬреЛ рди рдХреЗрд╡рд▓ рд╡рд┐рднрд┐рдиреНрди рд╢реВрдЯрд┐рдВрдЧ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛, рдмрд▓реНрдХрд┐ рддреЗрдЬ рднреА рдерд╛ред

рдбрд┐рдЯреЗрдХреНрдЯрд░ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐ рдХреЛ рдПрдирд╕реАрдПрд╕ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЫрд╡рд┐ рдХреЛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░реА рдкрд╕рдВрдж рдХрд╛ рдбрд┐рдЯреЗрдХреНрдЯрд░ рд░рдВрдЧ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ300├Ч300, рдЗрд╕рд▓рд┐рдП рдЫрд╡рд┐ рдХреЛ рдкрд╣рд▓реЗ рд╕рдВрдХреБрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рдмрд╕реЗ рд╣рд▓реНрдХреА рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ - рдирд┐рдХрдЯрддрдо рдкрдбрд╝реЛрд╕реА рд╡рд┐рдзрд┐ (рдУрдкрдирд╕реАрд╡реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ INTER_NEAREST)ред рдпрд╣ рдкреНрд░рдХреНрд╖реЗрдк рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рддреЗрдЬ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд▓рдЧрднрдЧ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЫрд╡рд┐ рдЪреИрдирд▓реЛрдВ рдХреЗ рдЖрджреЗрд╢ рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ: рдбрд┐рдЯреЗрдХреНрдЯрд░ рдмреАрдЬреАрдЖрд░ рдХреЗ рдЖрджреЗрд╢ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдХреИрдорд░реЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рджреЛ рдзрд╛рд░рд╛рдУрдВ рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рдХреИрдорд░реЗ рд╕реЗ рдЕрдЧрд▓рд╛ рдлреНрд░реЗрдо рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛, рдФрд░ рджреВрд╕рд░реЗ рдиреЗ рдЙрд╕ рд╕рдордп рдкрд┐рдЫрд▓реЗ рдлреНрд░реЗрдо рдХреЛ рдПрдирд╕реАрдПрд╕ рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдФрд░ рдбрд┐рдЯреЗрдХреНрдЯрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд┐рдпрд╛ред рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде, рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЧрддрд┐ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдлреНрд░реЗрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд┐рд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рджреЗрд░реА рднреА рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рд╕реЗ рдкреАрдЫреЗ рд░рд╣рдиреЗ рдХреЗ рдХрд╛рд░рдг, рдЪреЗрд╣рд░реЗ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛ рдФрд░ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдВрдд рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЛ рдордирд╛ рдХрд░ рджрд┐рдпрд╛ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪреЗрд╣рд░реЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбрд┐рдЯреЗрдХреНрдЯрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╣рд▓реНрдХреЗ рдЯреНрд░реИрдХрд░ рд╕рд┐рдВрдкрд▓ рдСрдирд▓рд╛рдЗрди рд░рд┐рдпрд▓рдЯрд╛рдЗрдо рдЯреНрд░реИрдХрд░ (SORT) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ ред рдЗрд╕ рд╕рд░рд▓ рдЯреНрд░реИрдХрд░ рдореЗрдВ рджреЛ рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ: рд╣рдВрдЧреЗрд░рд┐рдпрди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрд╕рдиреНрди рдлреНрд░реЗрдо рдкрд░ рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╡рд╕реНрддреБ рдХреЗ рдкреНрд░рдХреНрд╖реЗрдкрд╡рдХреНрд░ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдЧрд░ рдпрд╣ рдЕрдЪрд╛рдирдХ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ - рдХрд▓рд╛рдорди рдлрд╝рд┐рд▓реНрдЯрд░ ред рдЬрдм рдореИрдВ рдлреЗрд╕ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд░рд╣рд╛ рдерд╛, рддреЛ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдХрд▓рдорди рдлрд╝рд┐рд▓реНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рдкреНрд░рдХреНрд╖реЗрдкрд╡рдХреНрд░ рдЕрдЪрд╛рдирдХ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдлрд┐рд░ рд╕реЗ рдХреЗрд╡рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдХрд▓рдорди рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдХреЗрд╡рд▓ рдЪреЗрд╣рд░реЗ рдХрд╛ рдорд┐рд▓рд╛рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдФрд░ рдлрд╝реНрд░реЗрдореЛрдВ рдХреА рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдХрд╛рдЙрдВрдЯрд░ рдорд┐рд▓рд╛, рдЬрд┐рд╕ рдкрд░ рдЪреЗрд╣рд░реЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдЗрд╕ рддрд░рд╣ рдореБрдЭреЗ рдбрд┐рдЯреЗрдХреНрдЯрд░ рдХреА рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓рддрд╛ рд╣реИред

рдКрдкрд░реА рдордВрдЪ, рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ: рдХреИрдорд░рд╛, рд╕рд┐рд░ рдФрд░ рднреМрдВрд╣реЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛ, рд╕реНрд╡рд┐рдЪ, рдкрд╛рд╡рд░ рдЯрд░реНрдорд┐рдирд▓, рдмрд┐рдЧ рд░реЗрдб рдмрдЯрдиред


рдпрд╛рддрд╛рдпрд╛рдд


рдЖрдВрджреЛрд▓рди рдХреЗ рд▓рд┐рдП, рд░реЛрдмреЛрдЯ рдореЗрдВ рдкрд╛рдВрдЪ рд╕рд░реНрд╡реЛрд╕ рд╣реЛрддреЗ рд╣реИрдВ: рджреЛ FS5103R рдирд┐рд░рдВрддрд░-рдШреВрд░реНрдгрди рд╕рд░реНрд╡реЛ рдкрд╣рд┐рдпреЛрдВ рдХреЛ рд╕реНрдкрд┐рди рдХрд░рддреЗ рд╣реИрдВ; рджреЛ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп FS5109Ms рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рд╕рд┐рд░ рдХреЛ рдШреБрдорд╛рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдХреИрди рдХреЛ рд╣рд┐рд▓рд╛рддрд╛ рд╣реИ; рдЕрдВрдд рдореЗрдВ, рдереЛрдбрд╝рд╛ SG90 рдЕрдкрдиреА рднреМрд╣реЗрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред

рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, SG90 рдорд┐рдиреА-рд╕рд░реНрд╡реЛрд╕ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ - рдореЗрд░реЗ рдПрдХ рд╕рд░реНрд╡реЛрд╕ рдореЗрдВ рдЧрд▓рдд рдирд┐рдпрдВрддреНрд░рдг рдкрд▓реНрд╕ рдЪреМрдбрд╝рд╛рдИ рдереА, рдФрд░ рдЕрдиреНрдп рдЪрд╛рд░ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдмрдЪ рдЧрдпрд╛ред рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдореЗрдВ, рдореИрдВрдиреЗ рдЧрд▓рддреА рд╕реЗ рдиреМрдХрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЕрдкрдиреА рдХреЛрд╣рдиреА рдХреЗ рд╕рд╛рде рд▓реЗ рд▓рд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рджреЛ рдмрд╕ рднрд╛рд░ рдХреЛ рд╕рд╣рди рдирд╣реАрдВ рдХрд░ рд╕рдХреЗ (рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╕рд┐рд░ рдФрд░ рдХреИрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рдерд╛)ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдВрддрд┐рдо рд╕рд░реНрд╡реЛ, рдЬрд┐рд╕реЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХрд╛рдо рдорд┐рд▓рд╛ - рднреМрд╣реЗрдВ рд╣рд┐рд▓рд╛рдирд╛, рд╕рдордп-рд╕рдордп рдкрд░ рдПрдХ рдЫрдбрд╝реА рдХреЛ рдкреНрд░рд╣рд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдЬрд╛рдЧ рди рдЬрд╛рдПред рдЕрдиреНрдп рд╕рд░реНрд╡реЛрд╕ рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ред рд╕рдЪ рд╣реИ, рдирд┐рд░рдВрддрд░ рд░реЛрдЯреЗрд╢рди рд╕рд░реНрд╡реЛрд╕ рдХреЛ рдХрднреА-рдХрднреА рдХреИрд▓рд┐рдмреНрд░реЗрдЯ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рд╕реНрдкрд┐рди рди рдХрд░реЗрдВ - рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрди рдкрд░ рдПрдХ рдЫреЛрдЯрд╛ рдирд┐рдпрд╛рдордХ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдШрдбрд╝реА-рд╣реЗрдб рдкреЗрдЪрдХрд╢ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡реЛ рдХрд╛ рдкреНрд░рдмрдВрдзрди, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡реЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВрдкрд▓реНрд╕-рдЪреМрдбрд╝рд╛рдИ рдореЙрдбреНрдпреВрд▓реЗрд╢рди (рдкреАрдбрдмреНрд▓реВрдПрдо / рдкреАрдбрдмреНрд▓реВрдПрдо) , рдФрд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд░ рдХреЗрд╡рд▓ рджреЛ рдкрд┐рди рд╣реИрдВ рдЬрд┐рди рдкрд░ рдкреАрдбрдмреНрд▓реВрдПрдо рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ ред рджреВрд╕рд░реЗ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд░рд╛рд╕реНрдкрдмреЗрд░реА рд╕рд░реНрд╡реЛ рдХреЛ рд╢рдХреНрддрд┐ рджреЗрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧреА, рдпрд╣ рдЗрд╕ рдкрд░ рдЦрдбрд╝рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдмрд╛рд╣рд░реА PWM рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Adafruit PCA9685 рдПрдХ 16-рдЪреИрдирд▓ PWM рдирд┐рдпрдВрддреНрд░рдХ рд╣реИ рдЬрд┐рд╕реЗ I2C рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдпрд╣ рднреА рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рд╕рд░реНрд╡реЛ рдХреЗ рд▓рд┐рдП рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреЗ рд▓рд┐рдП рдЯрд░реНрдорд┐рдирд▓ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, [рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ] рдпрд╣ 62 рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рддрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рдВрднрд╡ рд╣реИ, рдЬрдмрдХрд┐ 992 рдирд┐рдпрдВрддреНрд░рдг рдкрд┐рди рддрдХ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ - рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╡рд┐рд╢реЗрд╖ рдЬрдВрдкрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдПрдХ рдЕрдиреВрдард╛ рдкрддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдЪрд╛рдирдХ рд╕рд░реНрд╡реЛрд╕ рдХреА рдПрдХ рд╕реЗрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред

PCA9685 рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ рдПрдХ WiringPi рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдЪреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ - рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рджреМрд░рд╛рди, рдпрд╣ 16 рд╡рд░реНрдЪреБрдЕрд▓ рдкрд┐рди рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдПрдХ PWM рд╕рд┐рдЧреНрдирд▓ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЯрд┐рдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд░реЗрдВрдЬ [0, 180] рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреЛрдг рдкрд░ рд╕рд░реНрд╡реЛ рд▓реАрд╡рд░ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЗрд╕ рдХреЛрдг рдХреЛ рдорд┐рд▓реАрд╕реЗрдХреЗрдВрдб [SERVO_MS_MIN, SERVO_MS_MAX] рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдкрд▓реНрд╕ рд▓рдВрдмрд╛рдИ рдХреА рд╕реАрдорд╛ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореЗрд░реЗ рд╕рднреА рд╕рд░реНрд╡реЛрд╕ рдХреЗ рд▓рд┐рдП, рдпреЗ рдореВрд▓реНрдп рдХреНрд░рдорд╢рдГ 0.6 рдПрдордПрд╕ рдФрд░ 2.4 рдПрдордПрд╕ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рд░реНрд╡реЛ рдбреЗрдЯрд╛рд╢реАрдЯ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЪрдпрдирд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдлрд┐рд░ рдкрд░рд┐рдгрд╛рдореА рдорд╛рди рдХреЛ 20 ms (рдирд┐рдпрдВрддреНрд░рдг рдЪрдХреНрд░ рдХреА рд▓рдВрдмрд╛рдИ рдХрд╛ рдорд╛рдирдХ рдореВрд▓реНрдп) рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЯрд┐рдХреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ PCA9685 (4096) рд╕реЗ рдЧреБрдгрд╛ рдХрд░реЗрдВ:

void driveDegs(float angle, int pin) {
    int ticks = (int) (PCA_MAX_PWM * (angle/180.0f*(SERVO_MS_MAX-SERVO_MS_MIN) + SERVO_MS_MIN) / 20.0f); 
    pwmWrite(pin, ticks);
}

рдЗрд╕реА рддрд░рд╣, рдпрд╣ рдирд┐рд░рдВрддрд░ рд░реЛрдЯреЗрд╢рди рд╕рд░реНрд╡реЛрд╕ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рдХреЛрдг рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рд╕реАрдорд╛ рдореЗрдВ рдЧрддрд┐ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ [-1,1]ред

рдореИрдВрдиреЗ рд░реЛрдмреЛрдЯ рдЪреЗрд╕рд┐рд╕ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╢рд░реАрд░ рдореЗрдВ, рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рд╕рд╛рдзрдиреЛрдВ рд╕реЗ: рдореИрдВрдиреЗ рдирд┐рд░рдВрддрд░ рдШреБрдорд╛рд╡ рдХреЗ рд╕рд░реНрд╡реЛ-рдбреНрд░рд╛рдЗрд╡ рдкрд░ рдлрд░реНрдиреАрдЪрд░ рдХреЗ рдкрд╣рд┐рдпреЗ рд▓рдЧрд╛рдП, рдФрд░ рдПрдХ рдлрд░реНрдиреАрдЪрд░ рдЧреЗрдВрдж рдХрд╛ рд╕рдорд░реНрдерди рддреАрд╕рд░реЗ рдкрд╣рд┐рдпреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓реЗ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдкрд╣рд┐рдпрд╛ рдШреВрд░реНрдгрди рд╕рдорд░реНрдерди рдкрд░ рдЦрдбрд╝рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рдЪреЗрд╕рд┐рд╕ рдХреЗ рд╕рд╛рде рд╕рдЯреАрдХ рдореЛрдбрд╝ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕реЗ рдмрджрд▓рдирд╛ рдкрдбрд╝рд╛ред рд╕рд░реНрд╡реЛ рд╕реЗ рдЖрд╡рд╛рд╕ рддрдХ рд╡рдЬрди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрди рдХреЗ рддрд╣рдд рдПрдХ рдЫреЛрдЯрд╛ рдкрд╣рд┐рдпрд╛ рднреА рд╣реИред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдмрд╛рдд рдЬреЛ рд╢реБрд░реВ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдереА, рд╡рд╣ рдпрд╣ рдереА рдХрд┐ рд╕рд░реНрд╡реЛ рд▓реАрд╡рд░реНрд╕ рдХреЛ рдПрдХ рд╕реНрдХреНрд░реВ рдХреЗ рд╕рд╛рде рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЦрд╛рд╕рдХрд░ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рддрд╛рдХрд┐ рд╡реЗ рд░рд╛рд╕реНрддреЗ рд╕реЗ рди рдЧрд┐рд░реЗрдВред рдЗрд╕ рддрд░рд╣ рдХреА рдореВрд░реНрдЦрддрд╛ рдХреЗ рдХрд╛рд░рдг, рдореБрдЭреЗ рдПрдХ рдмрд╛рд░ рдЪреЗрд╕рд┐рд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдореИрдВрдиреЗ рд░реЛрдмреЛрдЯ рдХреЛ рдкреАрд╡реАрд╕реА рдХреЛрдиреЛрдВ рд╕реЗ рдмрдирд╛ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдмрдореНрдкрд░ рднреА рдмрдирд╛рдпрд╛, рддрд╛рдХрд┐ рдпрд╣ рдЗрддрдиреА рдмрд╛рд░ рдЕрдЯрдХ рди рдЬрд╛рдПред

рдЕрдм рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рдЬрд╛рд░ рдХреЛ рд╣рд┐рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдЗрдмреНрд░реЛ рдХреЛ рд╣рд┐рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ - рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдмрд╕ рдкреВрд░реНрд╡-рдЪрдпрдирд┐рдд рдХреЛрдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛ рд▓реАрд╡рд░ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рджреВрд╕рд░реЗ, рдЖрдк рдЕрдкрдирд╛ рд╕рд┐рд░ рдШреБрдорд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рд╕рд┐рд░ рд╕рд░реНрд╡реЛ рдХреА рдЧрддрд┐ рд╕реЗ рдШреВрдорддрд╛ рд░рд╣реЗ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдкрд░ рдПрдХ рдХреИрдорд░рд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдЧрддрд┐ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛: рдореБрдЭреЗ рд▓реАрд╡рд░ рдХреЛ рдПрдХ рдЫреЛрдЯреЗ рдХреЛрдг рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдлрд┐рд░ рдХреБрдЫ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ - рдФрд░ рдЬрдм рддрдХ рд╡рд╛рдВрдЫрд┐рдд рдХреЛрдг рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рд┐рд░ рдХреА рд╡рд░реНрддрдорд╛рди рдирд┐рд░рдкреЗрдХреНрд╖ рд╕реНрдерд┐рддрд┐ рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдФрд░ рд╣рд░ рдмрд╛рд░ рдЬрд╛рдВрдЪ рд▓реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрдиреБрдореЗрдп рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ (рдореЗрд░реЗ рд░реЛрдмреЛрдЯ рдкрд░ рдпрд╣ 10, 90] рдбрд┐рдЧреНрд░реА рдХреА рд╕реАрдорд╛ рдореЗрдВ рд╣реИ)ред

рддреАрд╕рд░рд╛, рдЖрдк рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреА рдЧрддрд┐ рдХреЛ рдмрджрд▓рдХрд░ рдЖрдВрджреЛрд▓рди рдХреА рджрд┐рд╢рд╛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕реА рддрд░рд╣, рдЖрдк рдордВрдЪ рдХреЛ рдШреБрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪреЗрд╣рд░реЗ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд░реЛрдЯреЗрд╢рди рдХреА рдХреЛрдгреАрдп рдЧрддрд┐, рд╕реНрд╡рдпрдВ рдкрд░ рдФрд░ рдЪреЗрд╕рд┐рд╕ рдкрд░ рдЙрдирдХреЗ рд╕реНрдерд╛рди рдкрд░ рджреЛрдиреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдПрдХ рдмрд╛рд░ рдорд╛рдкрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд▓реЗ рдЬрд╛рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдШреБрдорд╛рд╡ рдХреЗ рд▓рд┐рдП рдореЛрдЯрд░реНрд╕ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рдЖрд╡рд╢реНрдпрдХ рджреЗрд░реА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЛрдгреАрдп рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХреЛрдгреАрдп рд╡реЗрдЧ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЕрдВрдд рдореЗрдВ, рдЖрдк рд╕рд┐рд░ рдФрд░ рдЪреЗрд╕рд┐рд╕ рдХреЛ рдПрдХ рд╕рд╛рде рдШреБрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рддрд╛рдХрд┐ рд╕рдордп рдмрд░реНрдмрд╛рдж рди рдХрд░реЗрдВред рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд░рддрд╛ рд╣реВрдВ:

auto waitRotation = std::async(std::launch::async, rotatePlatform, platformAngle);
success = driveHead(headAngle);
waitRotation.wait();

рдХреЗрдВрджреНрд░реАрдп рдордВрдЪ, рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ: PCA9685, рдкрд╛рд╡рд░ рдмрд╕, рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ, MCP3008 ADC


рдкрде рдкреНрд░рджрд░реНрд╢рди


рддрдм рдореИрдВрдиреЗ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд░реЛрдмреЛрдЯ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рджреЛ рддреАрд╡реНрд░ GP2Y0A02YK рдЕрд╡рд░рдХреНрдд рд░реЗрдВрдЬ рдЦреЛрдЬрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рднреА рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реЗрдВрд╕рд░ рдПрдирд╛рд▓реЙрдЧ рд╣реИрдВ, рд▓реЗрдХрд┐рди Arduino рдХреЗ рд╡рд┐рдкрд░реАрдд, рд░рд╛рд╕реНрдкрдмреЗрд░реА рдореЗрдВ рдХреЛрдИ рдПрдирд╛рд▓реЙрдЧ рдЗрдирдкреБрдЯ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдПрдирд╛рд▓реЙрдЧ-рдЯреВ-рдбрд┐рдЬрд┐рдЯрд▓ рдХрдирд╡рд░реНрдЯрд░ (ADC / ADC) рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХреА рдЧрдИ рд╣реИ - рдореИрдВ 10-рдмрд┐рдЯ, 8-рдЪреИрдирд▓ MCP3008 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдорд╛рдЗрдХреНрд░реЛрдХреНрд░рд┐рд╕рд┐рдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдмреЗрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдПрдХ рдореБрджреНрд░рд┐рдд рд╕рд░реНрдХрд┐рдЯ рдмреЛрд░реНрдб рдореЗрдВ рдорд┐рд▓рд╛рдк рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рдерд╛ рдФрд░ рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рди рднреА рдорд┐рд▓рд╛рдк рдХрд┐рдП рдЬрд╛рддреЗ рдереЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЗрд░реА рдмрд╛рдЯреА рдХреА рд╕рд▓рд╛рд╣ рдкрд░, рдЬреЛ рд╕рд░реНрдХрд┐рдЯрд░реА рдореЗрдВ рдЕрдзрд┐рдХ рд▓рдбрд╝рдЦрдбрд╝рд╛рддреА рд╣реИ, рдореИрдВрдиреЗ рдкреВрд░реЗ рд╕рд░реНрдХрд┐рдЯ рдХреЗ рдбрд┐рдЬрд┐рдЯрд▓ рд╣рд┐рд╕реНрд╕реЗ рд╕реЗ рд╢реЛрд░ рдХреЛ рдЕрд╡рд╢реЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреЗ рдкреИрд░реЛрдВ рдФрд░ рдЬрдореАрди рдХреЗ рдмреАрдЪ рджреЛ рдХреИрдкреЗрд╕рд┐рдЯрд░ (рд╕рд┐рд░реЗрдорд┐рдХ рдФрд░ рдЗрд▓реЗрдХреНрдЯреНрд░реЛрд▓рд╛рдЗрдЯрд┐рдХ) рдХреЛ рдорд┐рд▓рд╛рдпрд╛ред рд╕реЗрдВрд╕рд░ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рддреАрди рд╡реЛрд▓реНрдЯ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд░рд╛рд╕реНрдкрдмреЗрд░реА рдХреЗ рд╕рд╛рде 3.3v рдХреЛ рд╕рдВрджрд░реНрдн ADC рд╡реЛрд▓реНрдЯреЗрдЬ (VREF) - MCP3008 (VDD) рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

MCP3008 рдХреЛ SPI рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ , рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЧрд┐рдЯрд╣рдм рдкрд░ рддреИрдпрд╛рд░ рдХреЛрдб рдЦреЛрдЬрдирд╛ рдЖрд╕рд╛рди рд╣реИ ред

рдЗрд╕рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдПрдбреАрд╕реА рдХреЗ рд╕рд╛рде рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЯреИрдореНрдмреЛрд░рд┐рди рдХреЗ рд╕рд╛рде рдХреБрдЫ рдиреГрддреНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
unsigned int analogRead(mcp3008Spi &adc, unsigned char channel)
{
    unsigned char spi_data[3];
    unsigned int val = 0;

    spi_data[0] = 1;  // start bit
    spi_data[1] = 0b10000000 | ( channel << 4); // mode and channel
    spi_data[2] = 0; // anything
    adc.spiWriteRead(spi_data, sizeof(spi_data));
  
    // read value, combine last two bits of second byte with whole third byte
    val = (spi_data[1]<< 8) & 0b1100000000; 
    val |= (spi_data[2] & 0xff);
    return val;
}


рддреАрди рдмрд╛рдЗрдЯреНрд╕ рдХреЛ MCP3008 рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд╣рд╛рдВ рдкрд╣рд▓реА рдмрд┐рдЯ рдореЗрдВ рдмрд╛рдЗрдЯ рд▓рд┐рдЦрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рдореЛрдб рдФрд░ рдЪреИрдирд▓ рдирдВрдмрд░ (4-7)ред рд╣рдореЗрдВ рддреАрди рдмрд╛рдЗрдЯреНрд╕ рднреА рдорд┐рд▓рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдореЗрдВ рддреАрд╕рд░реЗ рдмрд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рджреВрд╕рд░реЗ рдмрд╛рдЗрдЯ рдХреЗ рджреЛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯреНрд╕ рдХреЛ рдЧреЛрдВрдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЕрдм рдЬрдм рд╣рдо рд╕реЗрдВрд╕рд░ рд╕реЗ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдХреИрд▓рд┐рдмреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рджреЛрдиреЛрдВ рд╕реЗрдВрд╕рд░ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдереЛрдбрд╝рд╛ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрди рд╕реЗрдВрд╕рд░ рдХреА рд╕рд┐рдЧреНрдирд▓ рдХреА рддрд╛рдХрдд рдХреЗ рдХрд╛рд░рдг рджреВрд░реА рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдЧреИрд░-рд░реИрдЦрд┐рдХ рд╣реИ рдФрд░ рдмрд╣реБрдд рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ ( рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рд╢реАрдЯ, рдкреАрдбреАрдПрдл рджреЗрдЦреЗрдВ )ред рдЗрд╕рд▓рд┐рдП, рджреЛ рдЧреБрдгрд╛рдВрдХ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЬрдм рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╕реЗрдВрд╕рд░ рдХреБрдЫ рд╕рд╛рд░реНрдердХ, рд╕рдорд╛рди рджреВрд░реА рдкрд░ 1.0 рдХрд╛ рдорд╛рди рджреЗрдВрдЧреЗред

рд╕реЗрдВрд╕рд░ рд░реАрдбрд┐рдВрдЧ рдХрд╛рдлреА рд╢реЛрд░ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рдмрд╛рдзрд╛рдУрдВ рдкрд░, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдВрд╕рд░ рд╕реЗ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рд╕реБрдЪрд╛рд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрд╛рддреАрдп рднрд╛рд░рд┐рдд рдЪрд▓рддреА рдФрд╕рдд (EWMA) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдЖрдВрдЦ рджреНрд╡рд╛рд░рд╛ рдЪреМрд░рд╕рд╛рдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛, рддрд╛рдХрд┐ рд╕рдВрдХреЗрдд рд╢реЛрд░ рди рдХрд░реЗрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рд╕реЗ рдмрд╣реБрдд рдкреАрдЫреЗ рди рд░рд╣реЗрдВред

рд╕рд╛рдордиреЗ рдХрд╛ рджреГрд╢реНрдп: рдмреИрдВрдХ, рд░реЗрдВрдЬрдлрд╛рдЗрдВрдбрд░ рдФрд░ рдмрдореНрдкрд░ред


рдкреЛрд╖рдг


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВ рдХрд┐ рд░реЛрдмреЛрдЯ рдХрд┐рд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЦрдкрдд рдХрд░реЗрдЧрд╛ ( рд░рд╛рд╕реНрдкрдмреЗрд░реА рдФрд░ рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рдЦрдкрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ ):

  • рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 2 рдмреА: 350 рдПрдордП рд╕реЗ рдХрдо рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рд▓реЛрдб рдХреЗ рддрд╣рдд рдЕрдзрд┐рдХ (750-820 рдПрдордП (?) рддрдХ);
  • рдХреИрдорд░рд╛: рд▓рдЧрднрдЧ 250 mA;
  • рддрдВрддреНрд░рд┐рдХрд╛ рдХрдореНрдкреНрдпреВрдЯ рд╕реНрдЯрд┐рдХ: рдпреВрдПрд╕рдмреА рдкрд░ 5 рд╡реЛрд▓реНрдЯ рдХреЗ рд╡реЛрд▓реНрдЯреЗрдЬ рдкрд░ 1 рд╡рд╛рдЯ рдХреА рдмрд┐рдЬрд▓реА рдХреА рдЦрдкрдд рдХреА рдШреЛрд╖рдгрд╛ рдХреА, рдпрд╣ 200 рдПрдордП рд╣реИ;
  • рдЖрдИрдЖрд░ рд╕реЗрдВрд╕рд░: 33 рдПрдордП рдкреНрд░рддреНрдпреЗрдХ ( рдбреЗрдЯрд╛рд╢реАрдЯ, рдкреАрдбреАрдПрдл );
  • MCP3008: , 0.5 (, pdf);
  • PCA9685: , 6 (, pdf);
  • : ~150-200 1500-2000 (stall current), ( FS5109M, pdf)
  • HDMI ( ): 50 ;
  • + ( ): ~200 .

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ 1.5-2.5 рдПрдореНрдкреАрдпрд░ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдмрд╢рд░реНрддреЗ рдХрд┐ рд╕рднреА рд╕рд░реНрд╡реЛ рдПрдХ рд╕рд╛рде рднрд╛рд░реА рднрд╛рд░ рдХреЗ рддрд╣рдд рдПрдХ рд╕рд╛рде рди рдЪрд▓реЗрдВред рдЙрд╕реА рд╕рдордп, рд░рд╛рд╕реНрдкрдмреЗрд░реА рдХреЛ рд╕рд╢рд░реНрдд 5 рд╡реЛрд▓реНрдЯ рдХреЗ рд╡реЛрд▓реНрдЯреЗрдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рд╕рд░реНрд╡реЛ рдХреЗ рд▓рд┐рдП - 4.8-6 рд╡реЛрд▓реНрдЯред рдпрд╣ рдПрдХ рд╢рдХреНрддрд┐ рд╕реНрд░реЛрдд рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдЬреЛ рдЗрди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред

рдирддреАрдЬрддрди, рдореИрдВрдиреЗ 18650 рдмреИрдЯрд░реА рд╕реЗ рд░реЛрдмреЛрдЯ рдХреЛ рдмрд┐рдЬрд▓реА рджреЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдпрджрд┐ рдЖрдк рджреЛ рд░реЙрдмрд┐рдЯрди 3.4 / Li18650 рдмреИрдЯрд░реА (3.6 рд╡реЛрд▓реНрдЯ, 3400 рдПрдордПрдПрдЪ, рдЕрдзрд┐рдХрддрдо рдирд┐рд░реНрд╡рд╣рди рд╡рд░реНрддрдорд╛рди 4875 рдПрдордП) рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ 7.2 рд╡реЛрд▓реНрдЯ рдХреЗ рд╡реЛрд▓реНрдЯреЗрдЬ рдкрд░ 4.8 рдПрдореНрдкреАрдпрд░ рддрдХ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред 1.5-2.5 рдПрдореНрдкреАрдпрд░ рдХреА рдЦрдкрдд рдХреЗ рд╕рд╛рде, рд╡реЗ рдПрдХ рдпрд╛ рджреЛ рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдмреИрдЯрд░рд┐рдпрд╛рдВ, рд╡реИрд╕реЗ, рдПрдХ рдкрдХрдбрд╝ рд╣реИ: рд╕рдВрдХреЗрддрд┐рдд рд░реВрдк рдХрд╛рд░рдХ 18650 рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЙрдирдХреЗ рдЖрдХрд╛рд░ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИрдВ18├Ч650рдорд┐рдореА - рдмрд┐рд▓реНрдЯ-рдЗрди рдЪрд╛рд░реНрдЬ рдХрдВрдЯреНрд░реЛрд▓ рд╕рд░реНрдХрд┐рдЯ рдХреЗ рдХрд╛рд░рдг рд╡реЗ рдХрдИ рдорд┐рд▓реАрдореАрдЯрд░ рд▓рдВрдмреЗ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдореБрдЭреЗ рдмреИрдЯрд░реА рдХреЗ рдбрд┐рдмреНрдмреЗ рдХреЛ рдЪрд╛рдХреВ рд╕реЗ рдорд╛рд░рдирд╛ рдкрдбрд╝рд╛, рддрд╛рдХрд┐ рд╡реЗ рд╡рд╣рд╛рдВ рдлрд┐рдЯ рд╣реЛ рдЬрд╛рдПрдВред

рдпрд╣ рдХреЗрд╡рд▓ рд╡реЛрд▓реНрдЯреЗрдЬ рдХреЛ 5 рд╡реЛрд▓реНрдЯ рддрдХ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдореИрдВ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪрд░рдг-рдбрд╛рдЙрди DC-DC рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ DFRobot Power Module рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рд▓реЛрд╣реЗ рдХрд╛ рдпрд╣ рдЯреБрдХрдбрд╝рд╛ рдЖрдкрдХреЛ 3.6-25 рд╡реЛрд▓реНрдЯ рдХреЗ рдЗрдирдкреБрдЯ рд╡реЛрд▓реНрдЯреЗрдЬ рдФрд░ рдХрдо рд╕реЗ рдХрдо 0.6 рд╡реЛрд▓реНрдЯ рдХреЗ рд╡реЛрд▓реНрдЯреЗрдЬ рдЕрдВрддрд░ рдкрд░ рд╡реЛрд▓реНрдЯреЗрдЬ рдХрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдореЗрдВ рдПрдХ рд╕реНрд╡рд┐рдЪ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдмрд┐рд▓реНрдХреБрд▓ 5 рд╡реЛрд▓реНрдЯ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдпрд╛ рдЖрдк рдПрдХ рд╡рд┐рд╢реЗрд╖ рдирд┐рдпрд╛рдордХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдордирдорд╛рдирд╛ рдЖрдЙрдЯрдкреБрдЯ рд╡реЛрд▓реНрдЯреЗрдЬ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рджреЛрдиреЛрдВ рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХреЛ 5 рд╡реЛрд▓реНрдЯ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ; рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдорд╛рдЗрдХреНрд░реЛ-рдпреВрдПрд╕рдмреА рдХрдиреЗрдХреНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдЦрд┐рд▓рд╛рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдкреАрд╕реАрдП 9685 рдЯрд░реНрдорд┐рдирд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд░реНрд╡реЛ рдХреЛ рдЦрд┐рд▓рд╛рддрд╛ рд╣реИред рд░реЛрдмреЛрдЯ рдХреЗ рддрд╛рд░реНрдХрд┐рдХ рдФрд░ рдмрд┐рдЬрд▓реА рднрд╛рдЧреЛрдВ рдХреА рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреЛ рдЕрдзрд┐рдХрддрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рди рдХрд░реЗрдВред

рдбрд┐рдмрдЧрд┐рдВрдЧ рдЪрд░рдг рдореЗрдВ, рдореИрдВрдиреЗ рдмреИрдЯрд░реА рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЪреАрдиреА 9 рд╡реЛрд▓реНрдЯ, 2 рдПрдореНрдкреАрдпрд░ рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдФрд░ рдпрд╣ рд░реЛрдмреЛрдЯ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ - рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛, рдмреИрдЯрд░реА рдХреА рддрд░рд╣, рджреЛ рдбреАрд╕реА-рдбреАрд╕реА рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдПред рдЗрд╕рд▓рд┐рдП, рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд░реЛрдмреЛрдЯ рдкрд░ рдЯрд░реНрдорд┐рдирд▓реЛрдВ рдХреЛ рдмрдирд╛рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдпрд╛ рдмреИрдЯрд░реА рдбрд┐рдмреНрдмреЗ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдмрд╣реБрдд рдорджрдж рдорд┐рд▓реА рдЬрдм рдореИрдВрдиреЗ рдЖрд░рдУрдПрд╕ рдкрд░ рд╕рднреА рдХреЛрдб рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛, рдФрд░ рдореБрдЭреЗ рд░реЛрдмреЛрдЯ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдбреАрдмрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЬрд┐рд╕рдореЗрдВ рд╕рд░реНрд╡реЛ рднреА рд╢рд╛рдорд┐рд▓ рдерд╛ред

рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдПрдХ "рдкрд╛рд╡рд░ рдмрд╕" рднреА рдмрдирд╛рдирд╛ рдерд╛ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬрдореАрди рдХреЗ рд▓рд┐рдП рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдмреЛрд░реНрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛, рдХреНрд░рдорд╢рдГ 3.3v рдФрд░ 5vред рдмрд╕ рд╕рдВрдмрдВрдзрд┐рдд рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд┐рди рд╕реЗ рдЬреБрдбрд╝рддреА рд╣реИред рдХреЗрд╡рд▓ IR рд░реЗрдВрдЬрдлрд╛рдЗрдВрдбрд░ 5v рдмрд╕ рд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ 3.3v рдмрд╕ рд╕реЗ MCP3008 рдФрд░ PCA9685ред

рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЕрдЪреНрдЫреА рдкреБрд░рд╛рдиреА рдкрд░рдВрдкрд░рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореИрдВрдиреЗ рд░реЛрдмреЛрдЯ рдкрд░ рдмрд┐рдЧ рд░реЗрдб рдмрдЯрди рд▓рдЧрд╛рдпрд╛ - рдЬрдм рдЗрд╕реЗ рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкреВрд░реЗ рдкрд╛рд╡рд░ рд╕рд░реНрдХрд┐рдЯ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЖрдкрд╛рддрдХрд╛рд▓реАрди рд╕реНрдЯреЙрдк рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдПрдХ рдмрдЯрди рдХреА рдорджрдж рд╕реЗ рд░реЛрдмреЛрдЯ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред

рдирд┐рдЪрд▓рд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо, рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ: рдмреИрдЯрд░реА рдХрдореНрдкрд╛рд░реНрдЯрдореЗрдВрдЯ, рдПрдирд╕реАрдПрд╕, рдбреАрд╕реА-рдбреАрд╕реА рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕, рд╕рд░реНрд╡реЛ рдбреНрд░рд╛рдЗрд╡реНрд╕ рд╡рд┐рде рд╡реНрд╣реАрд▓, рд░реЗрдВрдЬрдлрд╛рдЗрдВрдбрд░ред


рд░реЛрдмреЛрдЯ рдирд┐рдпрдВрддреНрд░рдг


рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 2 рдмреА рдкрд░ рдХреЛрдИ рд╡рд╛рдИ-рдлрд╛рдИ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдПрдХ рдИрдерд░рдиреЗрдЯ рдХреЗрдмрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ ssh рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рд╡реИрд╕реЗ, рдпрд╣ рд╕реАрдзреЗ рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛, рд▓реИрдкрдЯреЙрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ )ред рдпрд╣ рдЗрд╕ рдпреЛрдЬрдирд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ: рд╣рдо рдХреЗрдмрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ ssh рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ, рд░реЛрдмреЛрдЯ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреЗрдмрд▓ рдХреЛ рдЦреАрдВрдЪрддреЗ рд╣реИрдВред рдлрд┐рд░ рдЗрд╕реЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рддрдХ рдлрд┐рд░ рд╕реЗ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЬрдЧрд╣ рдкрд░ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ рдЗрд╕реЗ рдЬрдЯрд┐рд▓ рди рдмрдирд╛рдпрд╛ рдЬрд╛рдПред

рддрд╛рдХрд┐ рд░реЛрдмреЛрдЯ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдВрдж рдХрд┐рдП рдмрд┐рдирд╛ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХреЗ, рдореИрдВрдиреЗ рдПрдХ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╕реЛрд╡рд┐рдпрдд рд╕реНрд╡рд┐рдЪ (рдПрдХ рдкрдирдбреБрдмреНрдмреА рд╕реЗ?) рдХреЛ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝рд╛, рдЬрдм рдЖрдк рдЗрд╕реЗ рдмрдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд░реЛрдмреЛрдЯ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рд╕реНрд╡рд┐рдЪ рдЬрдореАрди рдкрд░ рдФрд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА GPIO рдкрд┐рди рдореЗрдВ рд╕реЗ рдПрдХ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдЗрд╕реЗ WiringBookii рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ :

wiringPiSetup();
pinMode(PIN_SWITCH, INPUT);
pullUpDnControl(PIN_SWITCH, PUD_UP);
bool value = digitalRead(BB_PIN_SWITCH);

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЗрд╕ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде, рдкрд┐рди рдкрд░ рд╡реЛрд▓реНрдЯреЗрдЬ 3.3v рддрдХ рдЦреАрдВрдЪрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╕рд╛рде рд╣реА рдпрд╣ рдЦреБрд▓реЗ рд░рд╛рдЬреНрдп рдореЗрдВ рдПрдХ рдЙрдЪреНрдЪ рд╕рд┐рдЧреНрдирд▓ рдФрд░ рдмрдВрдж рд░рд╛рдЬреНрдп рдореЗрдВ рдПрдХ рдХрдо рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛ред

рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рдбрд╛рд▓реЗрдВ


рдереНрд░реЗрдбреНрд╕

рдЕрдм рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЛ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд░реЛрдмреЛрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд░реЛрдмреЛрдЯ рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдореИрдВрдиреЗ рдереНрд░реЗрдбреНрд╕ ( pthread ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛ ред рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдореЗрдВ рд╣реИ , рд▓реЗрдХрд┐рди рдХреЛрдб рдмрд╣реБрдд рдбрд░рд╛рд╡рдирд╛ рд╣реИред

рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрд╛рд░ рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдПрдХ рдзрд╛рдЧрд╛ рдХреИрдорд░реЗ рд╕реЗ рдлреНрд░реЗрдо рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдПрдирд╕реАрдПрд╕ рдкрд░ рдбрд┐рдЯреЗрдХреНрдЯрд░ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ; рджреВрд╕рд░реА рдзрд╛рд░рд╛ рд░реЗрдВрдЬрдлрд╛рдЗрдВрдбрд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рддреА рд╣реИ; рддреАрд╕рд░рд╛ рдзрд╛рдЧрд╛ рд╕реНрд╡рд┐рдЪ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ is_runningрдХреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИfalseрдЕрдЧрд░ рдпрд╣ рдмрдВрдж рд╣реИ; рдореБрдЦреНрдп рдзрд╛рдЧрд╛ рд░реЛрдмреЛрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рд╕рд░реНрд╡реЛ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдзрд╛рдЧреЗ рдореЗрдВ рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рдВрдХреЗрдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╡реЗ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рд╡реИрдХреНрдЯрд░ рдХреЛ рд╕реАрдорд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдбрд┐рдЯреЗрдХреНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдкрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЪреЗрд╣рд░реЛрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдореНрдпреВрдЯреЗрдХреНрд╕ рддрдХ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реЗ, рд╕рд░рд▓ рд╕рд╛рдорд╛рдиреНрдп рдЪрд░ рдХреЛ рдкрд░рдорд╛рдгреБ рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореБрдЦреНрдп рдереНрд░реЗрдб рдХреЗ рд╕рд╛рде рдлреЗрд╕ рдбрд┐рдЯреЗрдХреНрдЯрд░ рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рд╕рдордиреНрд╡рдпрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдзреНрд╡рдЬ face_processedрд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдбрд┐рдЯреЗрдХреНрдЯрд░ рд╕реЗ рдПрдХ рдирдпрд╛ рдкрд░рд┐рдгрд╛рдо рдЖрдиреЗ рдкрд░ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдореБрдЦреНрдп рдереНрд░реЗрдб рдЗрд╕ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рдкреБрд░рд╛рдиреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рди рдХрд┐рдпрд╛ рдЬрд╛рдП рдЬреЛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рд┐рд▓рдиреЗ рдХреЗ рдмрд╛рджред рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд╕рд╛рде

рдЖрд░рдУрдПрд╕

рд╕рдВрд╕реНрдХрд░рдг рдиреЗ рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдХреБрдЫ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдм рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдорд╛рд╕реНрдЯрд░ рдХреНрдпреЛрдВ рдирд╣реАрдВрд░реЛрд╕ ? рдореИрдВ рдЗрд╕ рдврд╛рдВрдЪреЗ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╕реБрди рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореБрдЭреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рд╣реИрдХрд╛рдереЙрди рдкрд░ рднреА рдереЛрдбрд╝рд╛ рдХрд╛рдо рдХрд░рдирд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЕрдВрдд рдореЗрдВ рдореИрдВрдиреЗ рдЖрд░рдУрдПрд╕ рдкрд░ рд╕рднреА рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдХреЛрдб рдХрд╛ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг ros рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╢рд╛рдЦрд╛ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдФрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рднреНрдп рджрд┐рдЦрддрд╛ рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЖрд░рдУрдПрд╕ рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рдЙрдкрд░рд┐ рдХреЗ рдХрд╛рд░рдг рдкреНрд░рд╡рд╛рд╣ рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдзреАрдорд╛ рд╣реЛрдЧрд╛ рдФрд░ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ - рдПрдХрдорд╛рддреНрд░ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХрд┐рддрдирд╛ рд╣реИ?

ROS рдЕрд╡рдзрд╛рд░рдгрд╛
ROS (Robot Operating System) тАФ , , , .

, , , (node), , , .

(topic) (message) , - .

тАФ (service). , , . ┬л ┬╗, .

.msg .srv . .

ROS .

рдореЗрд░реЗ рд░реЛрдмреЛрдЯ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ ROS рд╕реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдПрдХ рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдореЗрдВ рд░реЛрдмреЛрдЯ рдХреЛрдб рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдФрд░ рдЖрд░рдУрдПрд╕ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рдВрдЪ рдиреЛрдбреНрд╕ рдереЗред

рд╕рдмрд╕реЗ рд╕рд░рд▓ рдиреЛрдб switch_node,, рд╕реНрд╡рд┐рдЪ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рд╕реНрд╡рд┐рдЪ рдмрдВрдж рд╣реЛрддрд╛ рд╣реИ, рдиреЛрдб boolрд╡рд┐рд╖рдп рдореЗрдВ рдЯрд╛рдЗрдк рдХреЗ рдЕрдирдЗрдирдлреЙрд░реНрдореЗрдЯрд┐рд╡ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕реНрдкреИрдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ terminatorред рдпрд╣ рдореБрдЦреНрдп рдиреЛрдб рдХрд╛ рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред

рджреВрд╕рд░рд╛ рдиреЛрдб, sensor_nodeрд╕рдордп-рд╕рдордп рдкрд░ рджреЛрдиреЛрдВ рдЖрдИрдЖрд░ рд░реЗрдВрдЬрдлрд╛рдЗрдВрдбрд░ рдХреА рд░реАрдбрд┐рдВрдЧ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ sensor_stateрдПрдХ рд╕рдВрджреЗрд╢ рдореЗрдВ рд╡рд┐рд╖рдп рдкрд░ рднреЗрдЬрддрд╛ рд╣реИ ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдиреЛрдб рд╕рд┐рдЧреНрдирд▓ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ: рдЕрдВрд╢рд╛рдВрдХрди рдХрд╛рд░рдХреЛрдВ рдФрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдФрд╕рдд рд╕реЗ рд╕реНрдХреЗрд▓рд┐рдВрдЧред

рддреАрд╕рд░рд╛ рдЧрд╛рдБрдаcamera_nodeрд╡рд╣ рдЪреЗрд╣рд░реЛрдВ рд╕реЗ рдЬреБрдбрд╝реА рд╣рд░ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ: рд╡рд╣ рдХреИрдорд░реЗ рд╕реЗ рдЪрд┐рддреНрд░ рд▓реЗрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдбрд┐рдЯреЗрдХреНрдЯрд░ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдЯреНрд░реИрдХрд░ рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЪреЗрд╣рд░реЗ рдХреЛ рдлреНрд░реЗрдо рдХреЗ рдХреЗрдВрджреНрд░ рдХреЗ рд╕рдмрд╕реЗ рдХрд░реАрдм рдкрд╛рддрд╛ рд╣реИ - рд░реЛрдмреЛрдЯ рд╡реИрд╕реЗ рднреА рдмрд╛рдХреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЫреЛрдЯреЗ рд╕рдВрджреЗрд╢ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рд╕рдВрджреЗрд╢ рдЬреЛ рдиреЛрдб рдХреЛ рд╡рд┐рд╖рдп рдкрд░ рднреЗрдЬрддрд╛ рд╣реИ, рдЙрд╕рдореЗрдВ camera_stateрдлрд╝реНрд░реЗрдо рдирдВрдмрд░, рдПрдХ рдЪреЗрд╣рд░рд╛ рд╣реЛрдиреЗ рдХрд╛ рддрдереНрдп (рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЪреЗрд╣рд░реЗ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ), рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ, рдЪреЗрд╣рд░реЗ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИред рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрджреЗрд╢ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ DetectionBox.msg:

int64 count
bool present
float32 x
float32 y
float32 width
float32 height

рдЪреМрдерд╛ рдиреЛрдб ,, servo_nodeрд╕рд░реНрд╡реЛрд╕ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдПрдХ рдРрд╕реА рд╕реЗрд╡рд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ servo_actionрдЬреЛ рдЗрд╕рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рд░реНрд╡реЛ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: рдкреВрд░реЗ рдиреЛрдб рдХреЛ рдЕрдкрдиреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рдЦрдирд╛ (рднреМрд╣реЗрдВ, рдмреИрдВрдХ, рд╕рд┐рд░, рдЪреЗрд╕рд┐рд╕ рдмрдВрдж рдХрд░реЛ); рдЕрдкрдиреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рд╕рд┐рд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ; рдЬрд╛рд░ рдХреЛ рд╣рд┐рд▓рд╛рдПрдВ; рдПрдХ рднреМрдВ рдХреЗ рд╕рд╛рде рддреАрди рднрд╛рд╡реЛрдВ (рдЕрдЪреНрдЫреЗ, рддрдЯрд╕реНрде, рдмреБрд░реЗ) рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд░реЗрдВред рджреВрд╕рд░реЗ, рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, servo_speedрдЖрдк рдЕрдиреБрд░реЛрдз рдореЗрдВ рднреЗрдЬрдХрд░ рджреЛрдиреЛрдВ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирдИ рдЧрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рджреЛрдиреЛрдВ рд╕реЗрд╡рд╛рдПрдВ рдХреБрдЫ рднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВред рдЕрдВрдд рдореЗрдВ, рдПрдХ рдРрд╕реА рд╕реЗрд╡рд╛ servo_head_platformрд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕рд┐рд░ рдФрд░ / рдпрд╛ рдЪреЗрд╕рд┐рд╕ рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреЛрдг рдХреЛ рдШреБрдорд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдпрд╣ рд╕реЗрд╡рд╛ trueрдХрдо рд╕реЗ рдХрдо рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ, рдФрд░ рд╕рд┐рд░ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реЛрдиреЗ рдкрд░ рд╡рд╛рдкрд╕ рдЖрддреА рд╣реИfalseрдЕрдиреНрдпрдерд╛, рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬрдм рд╕рд┐рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреБрдореЗрдп рдХреЛрдг рдХреА рд╕реАрдорд╛ рдкрд░ рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕реЗ рдФрд░ рднреА рдореЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдЕрдиреБрд░реЛрдз рдореЗрдВ рджреЛрдиреЛрдВ рдХреЛрдг рдЧреИрд░-рдмреАрддреЗ рд╣реИрдВ, рддреЛ рд╕реЗрд╡рд╛ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реВрдк рд╕реЗ рдШреВрдорддреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореБрдЦреНрдп рд▓реВрдк рдореЗрдВ, рд╕рд░реНрд╡реЛ рдиреЛрдб рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдпрд╣рд╛рдБ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реЗрд╡рд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реИ servo_head_platform:

float32 head_delta
float32 platform_delta
---
bool head_success

рд╕реВрдЪреАрдмрджреНрдз рдиреЛрдбреНрд╕ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ terminate_{switch, camera, sensor, servo}рдЦрд╛рд▓реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрд╡рд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ , рдЬреЛ рдиреЛрдб рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

рдХреБрдЫ рдХреЛрдб
...
std::atomic_bool is_running; // global

bool terminate_node(std_srvs::Empty::Request &req, std_srvs::Empty::Response &ignored) {
    is_running = false;
    return true;
}

int main(int argc, char **argv) {
    is_running = true;
    ...
    while (is_running && ros::ok()) {
        // do stuff
    }
    ...
}


рдиреЛрдб рдореЗрдВ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рд╣реИ is_running, рдЬрд┐рд╕рдХрд╛ рдорд╛рди рдиреЛрдб рдХреЗ рдореБрдЦреНрдп рдЪрдХреНрд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕реЗрд╡рд╛ рдХреЗрд╡рд▓ рдЗрд╕ рдЪрд░ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддреА рд╣реИ, рдФрд░ рдореБрдЦреНрдп рд▓реВрдк рдмрд╛рдзрд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдПрдХ рдореБрдЦреНрдп рдиреЛрдб рднреА рд╣реИ beggar_botрдЬрд┐рд╕рдореЗрдВ рд░реЛрдмреЛрдЯ рдХреЗ рдореВрд▓ рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЦреНрдп рд▓реВрдк рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд╡рд┐рд╖рдпреЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддрд╛ рд╣реИ sensor_stateрдФрд░ camera_stateрдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд╖рдп рдХреЗ рд▓рд┐рдП рднреА рд╕рджрд╕реНрдпрддрд╛ рджреА рдЬрд╛рддреА рд╣реИ terminator, рдХреЙрд▓рдмреИрдХ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЭрдВрдбрд╛ рд╣реЛрддрд╛ рд╣реИ is_running, рдореБрдЦреНрдп рд▓реВрдк рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЪрдХреНрд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдиреЛрдб рдЗрдорджрд╛рджреА рдиреЛрдб рдХреА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рдиреЛрдбреНрд╕ рдХреЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реЗрдХрдВрдб рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдореБрдЦреНрдп рд▓реВрдк рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдиреЛрдб рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИterminate_{switch, camera, sensor, servo}, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЕрдиреНрдп рд╕рднреА рдиреЛрдбреНрд╕ рдХреЛ рдмрдВрдж рдХрд░рдирд╛, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдмрдВрдж рдХрд░рдирд╛ред рдпрд╣реА рд╣реИ, рдЬрдм рд╕реНрд╡рд┐рдЪ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рдкрд╛рдВрдЪ рдиреЛрдб рдСрдкрд░реЗрд╢рди рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВред

рдЖрд░рдУрдПрд╕ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рд╕реЗ рдореБрдЭреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдХрд╛рдлреА рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдирд╛ рдкрдбрд╝рд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рдПрдХ рдЙрдЪреНрдЪ рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдкрд╣рд┐рдпрд╛ рдХреА рдЧрддрд┐ рдХреЛ рдмрджрд▓рдирд╛ рд╕рдВрднрд╡ рдерд╛, рдФрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрд░рдУрдПрд╕ рд╕реЗрд╡рд╛ рдкрд░рд┐рдорд╛рдг рдХреЗ рдзреАрдореЗ рдХреНрд░рдо рдореЗрдВ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдкрдбрд╝рд╛, рддрд╛рдХрд┐ рд╕реЗрд╡рд╛ рдХреЛ рддрднреА рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдП рдЬрдм рдЧрддрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ ("рдЖрд▓рд╕реА рдореЛрдб" рдореЗрдВ)ред

ROS рдЖрдкрдХреЛ рд░реЛрдмреЛрдЯ рдХреЗ рд╕рднреА рдиреЛрдбреНрд╕ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ xml рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд░реЛрдмреЛрдЯ рдХреЗ рд╕рднреА рдиреЛрдбреНрд╕ рдФрд░ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ .launch рд▓реЙрдиреНрдЪ рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ , рдФрд░ рдлрд┐рд░ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВ:

roslaunch beggar_bot robot.launch

ROS рдмрдирд╛рдо pthread

рдЕрдм, рдЕрдВрдд рдореЗрдВ, рдЖрдк ROS рд╕рдВрд╕реНрдХрд░рдг рдФрд░ pthread рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЧрддрд┐ рдХреА рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд░рддрд╛ рд╣реВрдВ: рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдереНрд░реЗрдб / рдиреЛрдб рдЕрдкрдиреЗ рдПрдлрдкреАрдПрд╕ (рд╕рдмрд╕реЗ рдзреАрдореЗ рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ) рдХреЛ рдорд╛рдирддрд╛ рд╣реИ, рдмрд╢рд░реНрддреЗ рдХрд┐ рдмрд╛рдХреА рд╕рдм рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реЛред Pthread рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрд╛рддрд╛рд░ FPS 9.99 рдпрд╛ рддреЛ, ROS рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ рд▓рдЧрднрдЧ 8.3 рдирд┐рдХрд▓рд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдЦрд┐рд▓реМрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдУрд╡рд░рд╣реЗрдб рдХрд╛рдлреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред

рд░реЛрдмреЛрдЯ рд╡реНрдпрд╡рд╣рд╛рд░


рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ: рдпрджрд┐ рд░реЛрдмреЛрдЯ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдбреНрд░рд╛рдЗрд╡ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХреИрди рдХреЛ рд╣рд┐рд▓рд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрд╛рд░ рдХреЛ рд╣рд┐рд▓рд╛рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рдФрд░ рдордЬреЗрджрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ follow_faceрдЬреЛ, рдпрджрд┐ рдлреНрд░реЗрдо рдореЗрдВ рдХреЛрдИ рдЪреЗрд╣рд░рд╛ рд╣реИ, рддреЛ рдЪреЗрд╕рд┐рд╕ рдХреЛ рдШреБрдорд╛рддрд╛ рд╣реИ рдФрд░ рд░реЛрдмреЛрдЯ рдХреЗ рд╕рд┐рд░ рдХреЛ рдЕрдкрдиреА рджрд┐рд╢рд╛ рдореЗрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ (рдХреЗрд╡рд▓ рдХреЗрдВрджреНрд░ рдХреЗ рдирд┐рдХрдЯрддрдо рдЪреЗрд╣рд░реЗ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рд░реЛрдмреЛрдЯ рд╣рдореЗрд╢рд╛ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдкрд░ рдЕрдкрдирд╛ рдкрд╛рдареНрдпрдХреНрд░рдо рд░рдЦреЗ, рдЕрдЧрд░ рд╡рд╣ рдлреНрд░реЗрдо рдореЗрдВ рд╣реИ, рдФрд░ рдЬрдм рд╡рд╣ рдПрдХ рдЬрд╛рд░ рд╣рд┐рд▓рд╛рддрд╛ рд╣реИ рддреЛ рд╕реАрдзреЗ рдЪреЗрд╣рд░реЗ рдкрд░ рднреА рджрд┐рдЦрддрд╛ рд╣реИред

рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╡рд┐рд╖рдп рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП camera_stateрд╕рдорд╛рди рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ редface_processed, рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВред рд╡рд┐рдЪрд╛рд░ рд╕рдорд╛рди рд╣реИ - рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдбреЗрдЯрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд░реЛрдмреЛрдЯ рд▓рдЧрд╛рддрд╛рд░ рдмрдврд╝ рд░рд╣рд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдкрд╣рд▓реЗ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдХреЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде рд╡рд┐рд╖рдп рдХрд╛ рдХреЙрд▓рдмреИрдХ рдЙрд╕ рдзреНрд╡рдЬ рдХреЛ рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдВрддрд┐рдо рдлрд╝реНрд░реЗрдо рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬрдм рд╡рд╣ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреА рд╣реИ, рддреЛ рд╡рд╣ рд▓рдЧрд╛рддрд╛рд░ ros::spinOnce()рдирдП рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░рддреА рд╣реИ (рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдЬрд╣рд╛рдВ рдХрд╣реАрдВ рднреА рдирдП рдбреЗрдЯрд╛ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ) рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдлрд╝реНрд░реЗрдо рдореЗрдВ рдХреЛрдИ рдЪреЗрд╣рд░рд╛ рд╣реИ, рддреЛ рдХреЛрдгреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдФрд░ рд╕рд┐рд░ рдХреЛ рдШреБрдорд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рдпрд╣ рдЪреЗрд╣рд░реЗ рдХреЗ рдХреЗрдВрджреНрд░ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдФрд░ рдХреИрдорд░реЗ рдХреЗ рджреЗрдЦрдиреЗ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдХреНрд╖реИрддрд┐рдЬ рдФрд░ рд▓рдВрдмрд╡рдд рд░реВрдк рд╕реЗ рдЬрд╛рдирдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рд╕реЗрд╡рд╛ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ servo_head_platformрдФрд░ рд░реЛрдмреЛрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

рдПрдХ рд╕реВрдХреНрд╖реНрдо рдмрд┐рдВрджреБ рд╣реИ: рдЪреЗрд╣рд░реЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЪреЗрд╣рд░реЗ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧрддрд┐ рдХреЗ рдкреАрдЫреЗ рд╣реЛрддреА рд╣реИ рдФрд░ рдЦреБрдж рд░реЛрдмреЛрдЯ рдХреЗ рдЖрдВрджреЛрд▓рдиреЛрдВ рд╕реЗ рдкрд┐рдЫрдбрд╝ рд╕рдХрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рд░реЛрдмреЛрдЯ рд░реЛрдЯреЗрд╢рди рдХреЗ рдХреЛрдг рдХреЛ рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд╕рд┐рд░ рдмрдврд╝рддреЗ рдЖрдпрд╛рдо рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рдЪрд▓рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рдХрджрдо (300 рдПрдордПрд╕) рдХреЗ рдмрд╛рдж рджреЗрд░реА рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕ рдХрджрдо рдХреЗ рдмрд╛рдж рдПрдХ рдлреНрд░реЗрдо рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реВрдВред рдЙрд╕реА рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП, рдЪреЗрд╕рд┐рд╕ рдФрд░ рд╕рд┐рд░ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреЗ рдХреЛрдг рдХреЛ 0.8 рдХреЗ рдХрд╛рд░рдХ ( рдкреАрдЖрдИрдбреА тАЛтАЛрдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдкреА-рдШрдЯрдХ рд╕реЗ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ ) рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред

рд╕рдорд╛рд░реЛрд╣follow_faceрд╡реНрдпрдХреНрддрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдПрдХ рд╡реНрдпрдХреНрддрд┐: рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреЗрдВрджреНрд░ рдХреЗ рдХрд░реАрдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд░реЛрдмреЛрдЯ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ; рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк - рдЬрдм рд╣рдордиреЗ рд░реЛрдмреЛрдЯ рдХреЛ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЪреЗрд╣рд░реЗ рдХрд╛ рдХреНрдпрд╛ рд╣реБрдЖ (рдЦреЛрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ); рдЕрднреА рднреА рдПрдХ рджреБрд░реНрд▓рдн рдорд╛рдорд▓рд╛ рд╣реИ рдЬрдм рд╕рд┐рд░ рд╕реАрдорд╛ рдкрд░ рд╣реИ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЪреЗрд╣рд░реЗ рдХреА рдУрд░ рдореБрдбрд╝рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред

рдореБрдЦреНрдп рд▓реВрдк рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдмрд╛рдд рд╣реЛрддреА рд╣реИ:

  1. follow_faceрдЬрдм рддрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдерд┐рддрд┐ (рдХрд┐рд╕реА рднреА, "рдЦреЛрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ" рдХреЛ рдЫреЛрдбрд╝рдХрд░) рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ ред рдЗрд╕ рдЪрд░рдг рдХреЗ рдЕрдВрдд рдореЗрдВ, рд░реЛрдмреЛрдЯ рд╕реАрдзреЗ рдЪреЗрд╣рд░реЗ рдкрд░ рджрд┐рдЦреЗрдЧрд╛ред
  2. рдпрджрд┐ рдЪреЗрд╣рд░рд╛ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрд░реАрдм рд╣реИ:
    1. рдХреИрди рдХреЛ рд╣рд┐рд▓рд╛рдПрдВ;
    2. рдлрд┐рд░ рд╕реЗ рдЪреЗрд╣рд░рд╛ рдвреВрдВрдвреЛ;
    3. рдпрджрд┐ рдЪреЗрд╣рд░рд╛ рдЬрдЧрд╣ рдореЗрдВ рд╣реИ, рддреЛ рднреМрд╣реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдЪреНрдЫреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд░реЗрдВ рдФрд░ рдЬрд╛рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╣рд┐рд▓рд╛рдПрдВ;
    4. рдпрджрд┐ рдЪреЗрд╣рд░рд╛ рдЧрд╛рдпрдм рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдЗрдмреНрд░реЛ рдХреЗ рд╕рд╛рде рдХреНрд░реЛрдзреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд░реЗрдВ;
    5. рдЪрд╛рд░реЛрдВ рдУрд░ рдореБрдбрд╝реЗрдВ, рдЪрдХреНрд░ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬрд╛рдПрдВред

  3. рдпрджрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдирд╣реАрдВ рд╣реИ (рдпрд╛ рдпрд╣ рдмрд╣реБрдд рджреВрд░ рд╣реИ) - рдХрдорд░реЗ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди:
    1. рдпрджрд┐ рджреЛрдиреЛрдВ рддрд░рдл рдХреА рдмрд╛рдзрд╛рдУрдВ рд╕реЗ рджреВрд░ рд╣реИрдВ, рддреЛ рдЖрдЧреЗ рдбреНрд░рд╛рдЗрд╡ рдХрд░реЗрдВ (рдпрджрд┐ рдЪреЗрд╣рд░рд╛ рдорд┐рд▓ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рджреВрд░ рдирд┐рдХрд▓рд╛, рд░реЛрдмреЛрдЯ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкрд╛рд╕ рдЬрд╛рдПрдЧрд╛);
    2. рдпрджрд┐ рдмрд╛рдзрд╛рдПрдВ рджреЛрдиреЛрдВ рддрд░рдл рд╣реИрдВ, рддреЛ рд╕реАрдорд╛ рдореЗрдВ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдореЛрдбрд╝ рдмрдирд╛рдПрдВ [90,180]тИк[тИТ180,тИТ90];
    3. рдпрджрд┐ рдмрд╛рдзрд╛ рдХреЗрд╡рд▓ рдПрдХ рддрд░рдл рд╣реИ, рддреЛ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреЛрдг рдкрд░ рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ рдореБрдбрд╝реЗрдВ [0,90];
    4. рдпрджрд┐ рдЖрдЧреЗ рдХреА рдЧрддрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рддрдХ (рд╕рдВрднрд╡рддрдГ рд░реБрдХреА рд░рд╣реА) рдЬрд╛рд░реА рд░рд╣рддреА рд╣реИ, рддреЛ рдереЛрдбрд╝рд╛ рдкреАрдЫреЗ рдЦреАрдВрдЪреЗрдВ рдФрд░ рд╕реАрдорд╛ рдореЗрдВ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдореЛрдбрд╝ рдмрдирд╛рдПрдВ [90,180]тИк[тИТ180,тИТ90];


рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдПрдХ рдордЬрдмреВрдд рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐ рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдмрдореНрдкрд░ рд░реЛрдмреЛрдЯ рдХреЛ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


рдЕрдкрдиреА рд╕реНрдкрд╖реНрдЯ рд╕рд╛рджрдЧреА рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрдИ рдЧреИрд░-рддреБрдЪреНрдЫ рд╡рд┐рд╖рдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддреА рд╣реИ: рдПрдирд╛рд▓реЙрдЧ рд╕реЗрдВрд╕рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛, рдкреАрдбрдмреНрд▓реВрдПрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛, рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬрди, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдордиреНрд╡рдпред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕рд┐рд░реНрдл рдкрд╛рдЧрд▓рдкрди рд╣реИред рд╢рд╛рдпрдж, рдЖрдЧреЗ рдореИрдВ рдХреБрдЫ рдФрд░ рд╕рд╛рд░реНрдердХ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдЧрд╣рд░реЗ рд╕реАрдЦрдиреЗ рдореЗрдВ рдкреВрд░реНрд╡рд╛рдЧреНрд░рд╣ рдХреЗ рд╕рд╛рдеред

рдПрдХ рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ - рдЧреИрд▓рд░реА:








All Articles