рд╣рдо рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реЗрдмрдХреИрдо рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ

рдкрд░рд┐рдЪрдп


рдЧреАрдд

рд╢реБрдн рджреЛрдкрд╣рд░ рдШрд░-рдирд┐рд░реНрдорд┐рдд рд░реЛрдмреЛрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдмреЗрд░рд╛ рдХреА рдХрдИ рдкреЛрд╕реНрдЯреЛрдВ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реЛрдХрд░, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ, рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╕рд╛рд░реНрдердХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдХреБрдЫ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

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

рдореЗрд░реА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдкрд░ рдПрдХ Arduino Diecimila рд╢реЙрд▓, рдХрдИ рд╕рд░реНрд╡реЛрд╕, рдПрдХ рд╡реЗрдм рдХреИрдорд░рд╛, рдПрдХ рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдФрд░ рдПрдХ рдЕрд▓реНрдЯреНрд░рд╛рд╕реЛрдирд┐рдХ рд░реЗрдВрдЬрдлрд╛рдЗрдВрдбрд░ рдерд╛ред рддрджрдиреБрд╕рд╛рд░, рд╕реНрд╡рд╛рдпрддреНрдд рд╕рдВрдЪрд╛рд▓рди рдФрд░ рдореИрдиреБрдЕрд▓ рдирд┐рдпрдВрддреНрд░рдг (рдЬреЙрдпрд╕реНрдЯрд┐рдХ) рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде, рд╡реЗрдмрдХреИрдо рдкрд░ рдЖрдзрд╛рд░рд┐рдд "рдХрдВрдкреНрдпреВрдЯрд░ рджреГрд╖реНрдЯрд┐" рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдЪреНрдЫрд╛ рддреБрд░рдВрдд рдкреИрджрд╛ рд╣реБрдИред

рдЗрд╕ рд▓реЗрдЦ рдиреЗ рдореБрдЭреЗ рдХреНрдпрд╛ рд▓рд┐рдЦрд╛?

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

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

рдореБрдЦреНрдп рд╢рд░реАрд░


рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╡рд┐рдзрд╛рдирд╕рднрд╛

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

рдлрд╝реЛрдЯреЛ
рдЫрд╡рд┐


рдЕрд╕реЗрдВрдмрд▓реА рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИ, рд╕рд░реНрд╡реЛрд╕ рдФрд░ рдЕрд▓реНрдЯреНрд░рд╛рд╕реЛрдирд┐рдХ рд░реЗрдВрдЬ рдлрд╛рдЗрдВрдбрд░ Arduino, Arduino рд╕реЗ рдкреАрд╕реА рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ, рд╣рдо Arduino рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред

рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ Arduino

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

рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП, рдореИрдВ рддреБрд░рдВрдд рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рддреНрд░реБрдЯрд┐ рдереА рдЬрд┐рд╕реЗ рдореБрдЭреЗ C # рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж рд╡рд╛рдкрд╕ рд▓реМрдЯрдирд╛ рдкрдбрд╝рд╛ред рдЧрд▓рддреА рдпрд╣ рдереА: рдореИрдВ, рднреЛрд▓рд╛ рдФрд░ рдЙрддреНрд╕рд╛рд╣ рд╕реЗ рднрд░рд╛ рд╣реБрдЖ, рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрд╛ рдерд╛ рдЬреЛ рд╕реАрд░рд┐рдпрд▓ рд▓рд╛рдЗрди рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ "90:90" рдХреА рддрд░рд╣ рдПрдХ рд▓рд╛рдЗрди рдХреЛ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдХреНрд░рдорд╢рдГ, рдкрд╣рд▓рд╛ рднрд╛рдЧ рдПрдХреНрд╕ рд╕рдордиреНрд╡рдп рдХреЗ рд╕рд╛рде рдбрд┐рдЧреНрд░реА рд╣реИ, рджреВрд╕рд░рд╛ рднрд╛рдЧ рд╡рд╛рдИред рдореЙрдирд┐рдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рдмрдВрджрд░рдЧрд╛рд╣ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЬрдм рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХрдВрдЯреНрд░реЛрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЬрдм рдмрдВрджрд░рдЧрд╛рд╣ рдиреЗ рдмрджрд▓рддреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рддрд╛рд░ рдкрд░ рд╣рдорд▓рд╛ рдХрд┐рдпрд╛, рддреЛ Arduino рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд╕рдм рдХреБрдЫ рдкрдврд╝рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЗрд╕рд▓рд┐рдП рдЕрдХреНрд╕рд░ рд▓рд╛рдЗрдиреЗрдВ "0: 909", ": 9090" рдореЗрдВ рдмрджрд▓ рдЧрдИрдВред рдФрд░ рд╡рд╣ рдХреА рддрд░рд╣ рдЗрди рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рддрджрдиреБрд╕рд╛рд░, рд╕рд░реНрд╡реЛрд╕ рдкрд╛рдЧрд▓ рд╣реЛ рдЧрдП рдФрд░ рдЙрди рд╕рднреА рдкрджреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рдереАред

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

рд░реЗрдВрдЬрдлрд╛рдЗрдВрдбрд░ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рддреЛ рд╕рдм рдХреБрдЫ рдареАрдХ рд░рд╣реЗрдЧрд╛ред рд░реЗрдВрдЬ рдлрд╛рдЗрдВрдбрд░ рдЕрд▓реНрдЯреНрд░рд╛рд╕реЛрдирд┐рдХ рд╣реИ, рдпрд╣ рдПрдХ рдмреИрдВрдЧ рдХреЗ рд╕рд╛рде рджреВрд░реА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдИ рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрджрд┐ рд░реЗрдВрдЬ рдлрд╛рдЗрдВрдбрд░ рдФрд░ рджреАрд╡рд╛рд░ рдХреЗ рдмреАрдЪ рдХрд╛ рдХреЛрдг 45 рдбрд┐рдЧреНрд░реА (рдкреНрд▓рд╕ рдпрд╛ рдорд╛рдЗрдирд╕) рд╕реЗ рддреЗрдЬ рд╣реИ, рддреЛ рдзреНрд╡рдирд┐ рджреАрд╡рд╛рд░ рд╕реЗ рд╕реНрдкрд░реНрд╢рд░реЗрдЦрд╛ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддреА рд╣реИ, рдФрд░ рдореВрд▓реНрдп рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рджреВрд╕рд░реЗ, рд╕рд┐рдЧреНрдирд▓ рдЙрддреНрд╕рд░реНрдЬрди рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдХреЛрдг, рд▓рдЧрднрдЧ 30 рдбрд┐рдЧреНрд░реА (рдореИрдиреБрдЕрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░), рдФрд░ рдирд┐рдХрдЯрддрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рджреВрд░реА рдХреЛ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд╕реЗрдВрд╕рд░ рдЬрд┐рд╕ рдХреЛрдг рдкрд░ рд╕реЗрдВрд╕рд░ рд╣реЛрддрд╛ рд╣реИ рд╡рд╣ рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдПрдХ рд╕реАрдзреА рд░реЗрдЦрд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреВрд░реА рдорд┐рд▓рддреА рд╣реИред , рд▓реЗрдХрд┐рди рд╣рд╕реНрддрдХреНрд╖реЗрдк рдЕрднреА рднреА рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдХрд╛рдлреА рдмрд╛рд░ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рд╛ рдЬреЛ n рджреВрд░реА рдорд╛рдк рд▓реЗрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ, n = 10 рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рд╕реНрддрдХреНрд╖реЗрдк рдЕрдзрд┐рдХ рдЪрд┐рдХрдиреА рдФрд░ рдХрдо рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛ рдЧрдпрд╛ред

Arduino рдкрд░ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рд▓рд┐рдпрд╛ рдЧрдпрд╛:
Arduino рдХреЛрдб
#include <Servo.h> #include <String.h> /*          ax180y180z  a -    x -    x y -    y z -    */ String str_X=""; String str_Y=""; int XY_Flag=0; // 1 = X, 2 = Y Servo X_Servo; Servo Y_Servo; const int distancePin = 12; const int distancePin2 = 11; void setup() { Serial.begin(115200); X_Servo.attach(7); Y_Servo.attach(8); } void loop() { delay(50); if(Serial.available()>0) //    { int inChar=Serial.read(); //  if(inChar == 97) { //     while(Serial.available()>0) { inChar=Serial.read(); //  if(inChar==120){ // x XY_Flag=1; continue; } if(inChar==121){ // y XY_Flag=2; continue; } if(inChar==122){ // z ( ) XY_Flag=0; } if(XY_Flag==0) break; //   ,      if(XY_Flag==1) str_X +=(char)inChar; // X,    X if(XY_Flag==2) str_Y +=(char)inChar; // Y,    Y } if(XY_Flag==0) //    ,  ... { servo(str_X.toInt(), str_Y.toInt()); str_X=""; str_Y=""; //  Serial.println("d" + String(trueDistance()) + "z"); } } } } void servo(int x, int y){ //       :) X_Servo.write(x); Y_Servo.write(y); } long trueDistance() //  n      { int n=10; long _value=0; for(int i =0; i<n; i++) _value += distance(); return _value/n; } long distance() //    { long duration, cm; pinMode(distancePin, OUTPUT); digitalWrite(distancePin, LOW); delayMicroseconds(2); digitalWrite(distancePin, HIGH); delayMicroseconds(10); digitalWrite(distancePin, LOW); pinMode(distancePin, INPUT); duration = pulseIn(distancePin, HIGH); cm = microsecondsToCentimeters(duration); return cm; } long microsecondsToCentimeters(long microseconds) //    { return microseconds / 29 / 2; } 



рдЧрд▓рдд рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИ, 100 рдореЗрдВ рд╕реЗ 100 рдЯреЗрд╕реНрдЯ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрд╛рд╕ рд╣реБрдПред

рдореБрдЦреНрдп рдирд┐рдпрдВрддреНрд░рдг рдХрд╛рд░реНрдпрдХреНрд░рдо (C #)

рдкрд╣рд▓реЗ рдореИрдВ рдХреНрдпреВрдЯреА рдХреЗ рддрд╣рдд рд╕реА ++ рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдореБрдЭреЗ рдЕрднреА рднреА рд╕реА # рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдерд╛, рд▓реЗрдХрд┐рди рдУрд╣ рдЕрдЪреНрдЫрд╛ред

рдореИрдВ рдХреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛:
1. рд▓реЛрдЧреЛрдВ рдХреА рдкрд╣рдЪрд╛рдиред
2. рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЪреЗрд╣рд░рд╛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ред
3. рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХреЗ рд╕рд╛рде рдореИрдиреБрдЕрд▓ рдирд┐рдпрдВрддреНрд░рдгред
4. рд╡рд╕реНрддреБ рд╕реЗ рджреВрд░реА рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдгред

рд╡реЗрдм рдХреИрдорд░рд╛ рд╕реЗ рдЪреЗрд╣рд░реЗ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рд╡рд╛рд▓ рдХреЗ, OpenCV рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛, рдпрд╛ рдмрд▓реНрдХрд┐ C # - Cgu рд╕реАрд╡реА рдХреЗ рд▓рд┐рдП рдЙрд╕рдХрд╛ рдЦреЛрд▓ред

рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ Microsoft.DirectX.DirectInput рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╕рдВрдж рдирд╣реАрдВ рдерд╛, рдФрд░ рдореИрдВрдиреЗ SharpDX рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд╛рдлреА рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реЗ рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛:
1. рд╡реЗрдм рдХреИрдорд░рд╛ рд╕реЗ рдЫрд╡рд┐ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред
2. рдЫрд╡рд┐ рдореЗрдВ рдЪреЗрд╣рд░реЗ рдХреЛ рдкрд╣рдЪрд╛рдиреЗрдВ, рдЙрдиреНрд╣реЗрдВ рд╕рд░реНрдХрд▓ рдХрд░реЗрдВ рдФрд░ рдЫрд╡рд┐ рдореЗрдВ рдЪреЗрд╣рд░реЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
3. рдкреНрд░рдкрддреНрд░ "ax90y90z" рдХреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдлреЙрд░реНрдо рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд╕рд░реНрд╡рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ рдкрд░ рднреЗрдЬреЗрдВред
4. рдЬреЙрдпрд╕реНрдЯрд┐рдХ рд╕реНрдерд┐рддрд┐ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкрдврд╝реЗрдВред
5. рд░реЗрдВрдЬрдлрд╛рдЗрдВрдбрд░ рд╕реЗ рд░реАрдбрд┐рдВрдЧ рдкрдврд╝реЗрдВред

рдХрд╛рд░реНрдп рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред

SharpDX рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣рдореЗрдВ рдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдЧрдП рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдЗрд╕реЗ (0 рд╕реЗ 65535 рддрдХ) рд╕реЗ рдЕрдХреНрд╖ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рджрдмрд╛рдиреЗ рдФрд░ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред рд╕рд░реНрд╡реЛ рдХреНрд░рдорд╢рдГ 0 рд╕реЗ 180 рдбрд┐рдЧреНрд░реА рддрдХ рдШреВрдо рд╕рдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ 0 рд╕реЗ 180 рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрднреА рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдХреЛ 363 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ 0 рд╕реЗ 180 рддрдХ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ рд╕рд░реНрд╡реЛ рдХреА рд╕реНрдерд┐рддрд┐ рд░реЗрдЦрд╛ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рднреЗрдЬрддрд╛ рд╣реИред рдмрдВрджрд░рдЧрд╛рд╣ред

рдЗрдореЗрдЬ рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рдлреЗрд╕ рд░рд┐рдХрдЧреНрдирд┐рд╢рди OpenCV рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ рдФрд░ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ (рд╣рдорд╛рд░реЗ рд▓рд┐рдП) рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк, рд╣рд╛рде рдореЗрдВ рдПрдХ рд░реЗрдВрдЬрдлрд╛рдЗрдВрдбрд░ рд╣реЛрдирд╛, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореИрдВ рдПрдХ рд░рдбрд╛рд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдЕрдиреБрдорд╛рдирд┐рдд рдЪрд┐рддреНрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

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

рдХреЛрдб (рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рд╡рд┐рд╕реНрддреГрдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ):

рдлреЙрд░реНрдо рдХреНрд▓рд╛рд╕
 Capture myCapture; private bool captureInProgress = false; string _distance = "0"; string coords; int X_joy = 90; int Y_joy = 90; SerialPort _serialPort = new SerialPort(); Image<Bgr, Byte> image; DirectInput directInput; Guid joystickGuid; Joystick joystick; Thread th; private int GRAD_TURN_X = 2; private int GRAD_TURN_Y = 2; private void GetVideo(object sender, EventArgs e) { myCapture.FlipHorizontal = true; image = myCapture.QueryFrame(); try { // Image<Gray, Byte> gray = image.Convert<Gray, Byte>().Canny(100, 60); // CamImageBoxGray.Image = gray; } catch { } /*  */ if (FaceCheck.Checked) { List<System.Drawing.Rectangle> faces = new List<System.Drawing.Rectangle>(); DetectFace.Detect(image, "haarcascade_frontalface_default.xml", "haarcascade_eye.xml", faces); foreach (System.Drawing.Rectangle face in faces) { image.Draw(face, new Bgr(System.Drawing.Color.Red), 2); int faceX = face.X + face.Width / 2; int faceY = face.Y + face.Height / 2; if ((faceX - 320 > 120) || (faceX - 320 < -120)) //     ,     GRAD_TURN_X = 4; else if ((faceX - 320 > 80) || (faceX - 320 < -80)) GRAD_TURN_X = 3; else GRAD_TURN_X = 2; if ((faceY - 240 > 120) || (faceY - 240 < -120)) GRAD_TURN_Y = 4; else if ((faceY - 240 > 80) || (faceY - 240 < -80)) GRAD_TURN_Y = 3; else GRAD_TURN_Y = 2; label7.Text = faceX.ToString(); label8.Text = faceY.ToString(); if (!JoyCheck.Checked) { if (faceX > 370) X_joy += GRAD_TURN_X; else if (faceX < 290) X_joy -= GRAD_TURN_X; if (faceY > 270) Y_joy -= GRAD_TURN_Y; else if (faceY < 210) Y_joy += GRAD_TURN_Y; serialPortWrite(X_joy, Y_joy); } } } /*=============*/ System.Drawing.Rectangle rect1 = new System.Drawing.Rectangle(305, 240, 30, 1); System.Drawing.Rectangle rect2 = new System.Drawing.Rectangle(320, 225, 1, 30); System.Drawing.Rectangle rect3 = new System.Drawing.Rectangle(0, 0, 640, 22); image.Draw(rect1, new Bgr(System.Drawing.Color.Yellow), 1); image.Draw(rect2, new Bgr(System.Drawing.Color.Yellow), 1); image.Draw(rect3, new Bgr(System.Drawing.Color.Black), 22); MCvFont f = new MCvFont(FONT.CV_FONT_HERSHEY_TRIPLEX, 0.9, 0.9); image.Draw("Distance: " + _distance + " cm", ref f, new System.Drawing.Point(0, 30), new Bgr(0, 255, 255)); CamImageBox.Image = image; if (JoyCheck.Checked) { th = new Thread(joy); //  ,    th.Start(); } label1.Text = X_joy.ToString(); label2.Text = Y_joy.ToString(); label3.Text = coords; } private void ReleaseData() { if (myCapture != null) myCapture.Dispose(); } public Form1() { InitializeComponent(); } private void serialPortWrite(int X, int Y) //        { try { coords = "ax" + X + "y" + Y + "z"; _serialPort.Write(coords); _distance = _serialPort.ReadLine(); if (_distance[0] == 'd') if (_distance[_distance.Length - 2] == 'z') { _distance = _distance.Remove(_distance.LastIndexOf('z')).Replace('d', ' '); } else _distance = "0"; else _distance = "0"; } catch { } } private void joy() //   { joystick.Poll(); var datas = joystick.GetBufferedData(); foreach (var state in datas) { if (state.Offset.ToString() == "X") X_joy = 180 - (state.Value / 363); else if (state.Offset.ToString() == "Y") Y_joy = state.Value / 363; } serialPortWrite(X_joy, Y_joy); } private void Form1_Load(object sender, EventArgs e) { if (myCapture == null) { try { myCapture = new Capture(); } catch (NullReferenceException excpt) { MessageBox.Show(excpt.Message); } } if (myCapture != null) { if (captureInProgress) { Application.Idle -= GetVideo; } else { Application.Idle += GetVideo; } captureInProgress = !captureInProgress; } _serialPort.PortName = "COM3"; _serialPort.BaudRate = 115200; if (_serialPort.IsOpen) _serialPort.Close(); if (!_serialPort.IsOpen) _serialPort.Open(); directInput = new DirectInput(); joystickGuid = Guid.Empty; foreach (var deviceInstance in directInput.GetDevices(DeviceType.Gamepad, DeviceEnumerationFlags.AllDevices)) joystickGuid = deviceInstance.InstanceGuid; if (joystickGuid == Guid.Empty) foreach (var deviceInstance in directInput.GetDevices(DeviceType.Joystick, DeviceEnumerationFlags.AllDevices)) joystickGuid = deviceInstance.InstanceGuid; joystick = new Joystick(directInput, joystickGuid); joystick.Properties.BufferSize = 128; joystick.Acquire(); } private void JoyCheck_CheckedChanged(object sender, EventArgs e) { if (FaceCheck.Checked) FaceCheck.Checked = !JoyCheck.Checked; } private void FaceCheck_CheckedChanged(object sender, EventArgs e) { if (JoyCheck.Checked) JoyCheck.Checked = !FaceCheck.Checked; } private void RadarPaint() { Bitmap map = new Bitmap(pictureBox1.Size.Width, pictureBox1.Size.Height); Graphics g = Graphics.FromImage(map); var p = new Pen(System.Drawing.Color.Black, 2); System.Drawing.Point p1 = new System.Drawing.Point(); System.Drawing.Point p2 = new System.Drawing.Point(); System.Drawing.Point p3 = new System.Drawing.Point(); System.Drawing.Point p4 = new System.Drawing.Point(); p1.X = pictureBox1.Size.Width/2 ; //       p1.Y = pictureBox1.Size.Height; // pictureBox'a  for (int i = 0; i < 181; i++) { serialPortWrite(i, 90); p2.X = Convert.ToInt32(Math.Ceiling(320 + int.Parse(_distance) * Math.Cos(i * Math.PI / 180))); //   p2.Y = Convert.ToInt32(Math.Ceiling(480 - int.Parse(_distance) * Math.Sin(i * Math.PI / 180))); if (i > 0) g.DrawLine(p, p2, p3); if (i % 18 == 0) { p4 = p2; p4.Y -= 50; g.DrawString(_distance, new Font("Arial", 18), new SolidBrush(System.Drawing.Color.Red), p4); } p3.X = p2.X; p3.Y = p2.Y; g.DrawLine(p, p1, p2); try { pictureBox1.Image = map; } catch (Exception e) { MessageBox.Show(e.Message); } } } private void button1_Click(object sender, EventArgs e) { if (FaceCheck.Checked || JoyCheck.Checked) { FaceCheck.Checked = false; JoyCheck.Checked = false; } Thread t = new Thread(RadarPaint); t.Start(); } 


рдХрдХреНрд╖рд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рд╡рд╛рд▓рд╛
  class DetectFace { public static void Detect(Image<Bgr, Byte> image, String faceFileName, String eyeFileName, List<Rectangle> faces) { CascadeClassifier face = new CascadeClassifier(faceFileName); // CascadeClassifier eye = new CascadeClassifier(eyeFileName); Image<Gray, Byte> gray = image.Convert<Gray, Byte>(); gray._EqualizeHist(); Rectangle[] facesDetected = face.DetectMultiScale( gray, 1.1, 5, new Size(70, 70), Size.Empty); faces.AddRange(facesDetected); } } 



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

рд╡реАрдбрд┐рдпреЛ

рдпрд╣рд╛рдБ рдЕрдВрдд рдореЗрдВ рдХреНрдпрд╛ рд╣реБрдЖ рд╣реИред





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


рдкрд░рд┐рдгрд╛рдо

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

рднрд╡рд┐рд╖реНрдп рдХреА рдпреЛрдЬрдирд╛

рдЕрдЧрд▓рд╛ рдХрджрдо рд░реЛрдмреЛрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╣рд┐рдПрджрд╛рд░ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ (рд╡рд╛рдИрдлрд╛рдИ, 3 рдЬреА), рдорд╛рдЙрдВрдЯ рд╕реЗрдВрд╕рд░ (рддрд╛рдкрдорд╛рди, рджрдмрд╛рд╡, рдЖрджрд┐), рднрд╛рд╖рдг рд╕рдВрд╢реНрд▓реЗрд╖рдг рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╡рд┐рд╢рд▓рд┐рд╕реНрдЯ рдореЗрдВ рдПрдХ рдпрд╛рдВрддреНрд░рд┐рдХ рднреБрдЬрд╛ рдХреА рдпреЛрдЬрдирд╛ рднреА рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд░реБрдЪрд┐ рд╣реИ рдФрд░ рдЗрд╕рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреБрд╕рд░рдг рдХрд░реЗрдЧрд╛! рд╕реБрдзрд╛рд░ рдФрд░ рдЖрд▓реЛрдЪрдирд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

Source: https://habr.com/ru/post/In198102/


All Articles