ROBOT рдкрд░ рдЖрдзрд╛рд░рд┐рдд: android, arduino, bluetoothред рдкрд▓рдЯрд╛ред рднрд╛рдЧ реи

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

рдЪрд┐рддреНрд░ 1

рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛


рдЕрдиреБрдЪреНрдЫреЗрдж 1. рд░реЛрдмреЛрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд: Android, arduino, рдмреНрд▓реВрдЯреВрдеред рд╢реБрд░реБрдЖрдд
рдЕрдиреБрдЪреНрдЫреЗрдж 2. рд░реЛрдмреЛрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд: рдПрдВрдбреНрд░реЙрдЗрдб, рдЖрд░реНрдбрд┐рдиреЛ, рдмреНрд▓реВрдЯреВрдеред рдкрд▓рдЯрд╛ред рднрд╛рдЧ реи

рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд▓реЗрдЦ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ:
-рдмрд┐рдЬрд▓реА рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ
-рдкреВрд░рд╛ рд▓реЗрдЦ

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди


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

рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдмрд┐рдЯ


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

рд╕рд╛рд░ рд╡рд╛рддрд╛рд╡рд░рдг

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

рд░реЛрдмреЛрдЯ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЕрдореВрд░реНрддрди

1) рдЖрдВрджреЛрд▓рди - рд░реЛрдмреЛрдЯ рджреЛ рджрд┐рд╢рд╛рдУрдВ (рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ) рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬрдЧрд╣ (рдмрд╛рдПрдВ, рджрд╛рдПрдВ) рдореЗрдВ рдШреВрдо рд╕рдХрддрд╛ рд╣реИ
2) рд░реЛрдмреЛрдЯ рд╕реЗрдВрд╕рд░ (рдЕрд▓реНрдЯреНрд░рд╛рд╕реЛрдирд┐рдХ рд╕реЗрдВрд╕рд░), рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рджреВрд░реА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рджреВрд░реА 0.02 рдореАрдЯрд░ рд╕реЗ 4 рдореАрдЯрд░ рддрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред

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

рдкреНрд░рдпреБрдХреНрдд рднрд╛рдЧреЛрдВ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдкрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА


HG7881 рдЗрдВрдЬрди рдбреНрд░рд╛рдЗрд╡рд░ред рд░реЛрдмреЛрдЯ рдореЛрдЯрд░реНрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЙрдкрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдореЛрдЯрд░реЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╢рдХреНрддрд┐ рдирд┐рдпрдВрддреНрд░рдг рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдзрд╛рд░рд╛рдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рдРрд╕реЗ рдЙрдкрдХрд░рдг рдХреЛ рдЗрдВрдЬрди рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

HG7881 рдПрдХ рджреЛ-рдЪреИрдирд▓ рдЗрдВрдЬрди рдбреНрд░рд╛рдЗрд╡рд░ рд╣реИ, рд╢рдХреНрддрд┐ 2.5 рдХреЗ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрднрд╡ рд╣реИ - 12 рд╡реАред рдбреНрд░рд╛рдЗрд╡рд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рд╡рд┐рд╡рд░рдг:
рддрд╛рд▓рд┐рдХрд╛ 1
рдирд┐рд╖реНрдХрд░реНрд╖рд╡рд┐рд╡рд░рдг
рдмреА-рдЖрдЗрдПрдЗрдВрдЬрди рдмреА рдЗрдирдкреБрдЯ рдП (IA)
рдмреА-рдЖрдИрдмреАрдЗрдВрдЬрди рдмреА рдЗрдирдкреБрдЯ рдмреА (рдЖрдИрдмреА)
GNDрдкреГрдереНрд╡реА (рдорд╛рдЗрдирд╕)
VCCрдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╡реЛрд▓реНрдЯреЗрдЬ 2.5-12V (рдкреНрд▓рд╕)
рдП-рдЖрдЗрдПрдЗрдВрдЬрди рдП рдЗрдирдкреБрдЯ рдП (рдЖрдИрдП)
рдП-рдЖрдИрдмреАрдЗрдВрдЬрди рдП рдЗрдирдкреБрдЯ рдмреА (рдЖрдИрдмреА)

рдЗрдВрдЬрдиреЛрдВ рдХреЛ рд╣рдорд╛рд░реА рдЬрд╝рд░реВрд░рдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЙрдЯрдкреБрдЯрд░реНрд╕ (B-IA, B-IB, A-IA, A-IB) рдХреЛ рд▓реЙрдЬрд┐рдХ рд╕рд┐рдЧреНрдирд▓ (High, LOW) рд▓рдЧрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрдВрдЬрди рдХреА рд╕рдЪреНрдЪрд╛рдИ рддрд╛рд▓рд┐рдХрд╛:
рддрд╛рд▓рд┐рдХрд╛ 2
рдЖрдЗрдПрдЖрдИрдмреАрдЗрдВрдЬрди рдХреА рд╕реНрдерд┐рддрд┐
рдПрд▓рдПрд▓рдмрдВрдж
рдПрдЪрдПрд▓рдЖрдЧреЗ
рдПрд▓рдПрдЪрд░рд┐рд╡рд░реНрд╕
рдПрдЪрдПрдЪрдмрдВрдж

рдЕрд▓реНрдЯреНрд░рд╛рд╕реЛрдирд┐рдХ рджреВрд░реА рд╕реЗрдВрд╕рд░ HC-SR04ред рд╡рд╕реНрддреБ рд╕реЗ рдзреНрд╡рдирд┐ рддрд░рдВрдЧ рдХреЗ рдкрд░рд╛рд╡рд░реНрддрди рд╕рдордп рдХреЛ рдорд╛рдкрдХрд░ рд╡рд╕реНрддреБ рдХреА рджреВрд░реА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╕реЗрдВрд╕рд░ рдПрдХ рд▓рдШреБ рдЕрд▓реНрдЯреНрд░рд╛рд╕реЛрдирд┐рдХ рдкрд▓реНрд╕ (рд╕рдордп 0 рдкрд░) рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╕реЗрдВрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреВрд░реА рдХреА рдЧрдгрдирд╛ рдЙрд╕ рд╕рдордп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреА рдЬрд╛рддреА рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдкреНрд░рддрд┐рдзреНрд╡рдирд┐ рдкреНрд░рд╛рдкреНрдд рди рд╣реЛ рдФрд░ рд╣рд╡рд╛ рдореЗрдВ рдзреНрд╡рдирд┐ рдХреА рдЧрддрд┐ рд╣реЛред
рдПрдХ 10 ╬╝s рдкрд▓реНрд╕ рдЖрдЙрдЯрдкреБрдЯ (рдЯреНрд░рд┐рдЧ) рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд▓реНрдЯреНрд░рд╛рд╕рд╛рдЙрдВрдб рдореЙрдбреНрдпреВрд▓ 40 kHz рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓реНрдЯреНрд░рд╛рд╕реЛрдирд┐рдХ рд╕рд┐рдЧреНрдирд▓ рдХреЗ 8 рдкреИрдХ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреА рдЧреВрдВрдЬ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдорд╛рдкрд╛ рджреВрд░реА рдЗрдХреЛ (рдЗрдХреЛ) рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЗ рд▓рд┐рдП рдЖрдиреБрдкрд╛рддрд┐рдХ рд╣реИ рдФрд░ рд╕реВрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдЧрдгрдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
рдкрд▓реНрд╕ рдЪреМрдбрд╝рд╛рдИ / 58 = рд╕реЗрдореА рдореЗрдВ рджреВрд░реАред

рд░реЛрдмреЛрдЯ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдФрд░ рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдХрдиреЗрдХреНрд╢рди


рд╣рдо рдордВрдЪ (рдЫрд╡рд┐ 2) рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВред

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

рдЪрд┐рддреНрд░ 3
рд╣рдо рдордВрдЪ рдХреЗ рдКрдкрд░реА рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдЬрдХрдбрд╝ рд▓реЗрддреЗ рд╣реИрдВред рд╣рдо рдмреНрд░реЗрдбрдмреЛрд░реНрдб (рдЫрд╡рд┐ 4) рдХреЗ рд▓рд┐рдП рдЗрдВрдЬрди рдбреНрд░рд╛рдЗрд╡рд░, рдЖрд░реНрдбрд┐рдиреЛ, рдмреИрдЯрд░реА, рдмреАрдЯреА рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЕрд▓реНрдЯреНрд░рд╛рд╕реЛрдирд┐рдХ рд╕реЗрдВрд╕рд░ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред

рдЪрд┐рддреНрд░ 4
рдХрдиреЗрдХреНрд╢рди рдЖрд░реЗрдЦ (рдЫрд╡рд┐ 5) рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред Arduino, рдЕрд▓реНрдЯреНрд░рд╛рд╕реЛрдирд┐рдХ рд╕реЗрдВрд╕рд░ рдФрд░ рдЗрдВрдЬрди рдбреНрд░рд╛рдЗрд╡рд░ (рдЗрд╕рд▓рд┐рдП рдЗрдВрдЬрди рд╕реНрд╡рдпрдВ) рд╢реНрд░реГрдВрдЦрд▓рд╛ (1.2 V, 2700 mA / h) рдореЗрдВ рд▓рдЧреА 4 рдмреИрдЯрд░рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдмреАрдЯреА рдореЙрдбреНрдпреВрд▓ рдХреЛ 3.3 V arduino рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреА рдЬрд╛рддреА рд╣реИред

рдЪрд┐рддреНрд░ 5
рд░реЛрдмреЛрдЯ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реЗ рднреЗрдЬреЗ рдЧрдП рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

Arduino STEP 1 рдХреЗ рд▓рд┐рдП рд╕реНрдХреЗрдЪ - рд░рд┐рдореЛрдЯ рд░реЛрдмреЛрдЯ рдХрдВрдЯреНрд░реЛрд▓


рд╣рдо Arduino рдореЗрдВ рд╕реНрдХреЗрдЪ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдмреАрдЯреА рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдмрд┐рдЬрд▓реА рдХреЛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреВрд▓ рдХреЗ рдмрд┐рдирд╛ (рдЕрдиреНрдпрдерд╛, рдЗрд╕реЗ рд▓реЛрдб рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛):
Arduino STEP 1 рдХреЗ рд▓рд┐рдП рд╕реНрдХреЗрдЪ
//  char incomingbyte; //     //motors A (RIGHT) int R_A_IA = 9; // A-IA int R_A_IB = 10; // A-IB //motors B (LEFT) int L_B_IA = 11; // B-IA int L_B_IB = 12; // B-IB //  void setup() { Serial.begin(38400); //motors RIGHT pinMode(R_A_IA,OUTPUT); digitalWrite(R_A_IA, HIGH); pinMode(R_A_IB,OUTPUT); digitalWrite(R_A_IB, HIGH); //motors LEFT pinMode(L_B_IA,OUTPUT); digitalWrite(L_B_IA, HIGH); pinMode(L_B_IB,OUTPUT); digitalWrite(L_B_IB, HIGH); } void go_forward(){ //motors LEFT digitalWrite(L_B_IA, LOW); digitalWrite(L_B_IB, HIGH); //motors RIGHT digitalWrite(R_A_IA, LOW); digitalWrite(R_A_IB, HIGH); } void go_back(){ //motors LEFT digitalWrite(L_B_IA, HIGH); digitalWrite(L_B_IB, LOW); //motors RIGHT digitalWrite(R_A_IA, HIGH); digitalWrite(R_A_IB, LOW); } void go_right(){ //motors LEFT digitalWrite(L_B_IA, LOW); digitalWrite(L_B_IB, HIGH); //motors RIGHT digitalWrite(R_A_IA, LOW); digitalWrite(R_A_IB, LOW); } void go_left(){ //motors LEFT digitalWrite(L_B_IA, LOW); digitalWrite(L_B_IB, LOW); //motors RIGHT digitalWrite(R_A_IA, LOW); digitalWrite(R_A_IB, HIGH); } void stop_robot(){ //motors LEFT digitalWrite(L_B_IA, LOW); digitalWrite(L_B_IB, LOW); //motors RIGHT digitalWrite(R_A_IA, LOW); digitalWrite(R_A_IB, LOW); } //   void loop() { if (Serial.available() > 0){ incomingbyte = Serial.read(); if (incomingbyte == '1'){ go_forward(); Serial.println("FORWARD"); } if (incomingbyte == '2'){ go_back(); Serial.println("BACK"); } if (incomingbyte == '3'){ go_right(); Serial.println("RIGHT"); } if (incomingbyte == '4'){ go_left(); Serial.println("LEFT"); } if (incomingbyte=='0'){ stop_robot(); Serial.println("STOP"); } } } 


рд╣рдо рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ: R_A_IA, R_A_IB - рдЗрдВрдЬрди рдП (рджрд╛рдПрдВ рд╣рд╛рде рдХреЗ рдЗрдВрдЬрди), L_B_IA, L_B_IB - рдореЛрдЯрд░ рдмреА (рдмрд╛рдПрдВ-рд╕рд╛рдЗрдб рдЗрдВрдЬрди) рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдПрдХ рд╕реАрд░рд┐рдпрд▓ рдХрдиреЗрдХреНрд╢рди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрд┐рдЯ / рд╕реА (рдмреЙрдб) рдореЗрдВ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рджрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдореЛрдЯрд░реНрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЯрд░реНрдорд┐рдирд▓реЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЛрдб рдХреЛ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ - OUTPUT (рдЖрдЙрдЯрдкреБрдЯ)ред рд╣рдо рд╕рднреА рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рд╣рд╛рдИ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдореЛрдЯрд░реНрд╕ рдмрдВрдж рд╣реЛ рдЧрдП рд╣реИрдВ (рддрд╛рд▓рд┐рдХрд╛ 2)ред
рд╣рдо рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ: go_forward (), go_back (), go_right (), go_left (), stop_robot (), рдЬреЛ рдШреБрдорд╛рд╡ рдХреЗ рдЖрдЧреЗ рдпрд╛ рдкреАрдЫреЗ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдЗрдВрдЬрди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд░реЛрдмреЛрдЯ рдХреЛ рдЧрддрд┐ рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП - рдЖрдЧреЗ, рдкреАрдЫреЗ, рджрд╛рдПрдВ, рдмрд╛рдПрдВ, рд░реБрдХрддреЗ рд╣реИрдВ рдХреНрд░рдорд╢рдГред
рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрдХреНрд░ рдореЗрдВ, рдмреАрдЯреА рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рд╛ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рд╛рдкреНрдд рдХрдорд╛рдВрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╛рда рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдкреЛрд░реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред

Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди STEP 1 - рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рд░реЛрдмреЛрдЯ


рд╣рдо рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ "рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ" рдмрдирд╛рддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдмреАрдЯреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдкрд░ рдЬрд╛рдПрдВ, рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдЯреИрдм рдЪреБрдиреЗрдВ, рдРрдб рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдлрд┐рд░ рдЕрдиреБрдорддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ рдирд┐рдореНрди рдЕрдзрд┐рдХрд╛рд░ рд╕реЗрдЯ рдХрд░реЗрдВ: android.permission.BLUETOOTH, android.permission.BLUETOOTH_ADMIN
рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдмрдирд╛рдПрдБ, рдХреЛрдб рдХреЛ res / layout / activity_main.xml рдореЗрдВ рдбрд╛рд▓реЗрдВ:
рдХреЛрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ STEP 1
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/txtrobot" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="  " /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <Button android:id="@+id/b1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="100" android:text="" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="100" > <Button android:id="@+id/b4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="100" android:text="" /> <Button android:id="@+id/b0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="100" android:text="" /> <Button android:id="@+id/b3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="100" android:text="" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <Button android:id="@+id/b2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="100" android:text="" /> </LinearLayout> </LinearLayout> 


рдпрд╣ рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

Txtrobot рдЯреЗрдХреНрд╕реНрдЯ рдмреЙрдХреНрд╕ рдореЗрдВ рд╡рд╣ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛рдИ рджреЗрдЧреА рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реИред рдмрдЯрди рдмреА 0, рдмреА 1, рдмреА 2, рдмреА 3, рдмреА 4 рдЖрд░реНрджреАрдиреЛ (0, 1, 2, 3, 4) рдХреЛ рдХрдорд╛рдВрдб рднреЗрдЬреЗрдВрдЧреЗ
рдпрд╣рд╛рдВ src /../ MainActivity.java рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рд╣рдорд╛рд░рд╛ рдореБрдЦреНрдп рдХреЛрдб рд╕реНрдерд┐рдд рд╣реЛрдЧрд╛ред
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдЪрд░рдг 4 рдореЗрдВ, рдПрдХ рдХреЛрдб рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдЖрдкрдХреЛ рдмреАрдЯреА рдкрд░ рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд░рд┐рдд рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЖрдЗрдП рдЗрд╕ рдХреЛрдб рдХреЛ рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдВред
OnPause () рдФрд░ onResume () рд╕рдХреНрд░рд┐рдпрдг рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рд╣рдо рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдмреАрдЯреА рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдФрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рдХреНрд╖рдо рд╣реИ, рдХреЗ рд▓рд┐рдП рд╢рд░реНрдд рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдпрд╣ рд╕реНрдерд┐рддрд┐ рдЕрдиреБрдкрд╕реНрдерд┐рдд рдереА рдЬрд┐рд╕рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, рдпрджрд┐ рдмреАрдЯреА рдЕрдХреНрд╖рдо рдерд╛, рддреЛ рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдмреАрдЯреА рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХреА рдЧрдИред
  if (btAdapter != null){ if (btAdapter.isEnabled()){ //  } } 

рдмрдЯрди рд╕рдВрдЪрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ:
 Button b0, b1, b2, b3, b4; 

рдЙрдиреНрд╣реЗрдВ рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреЗрдВ:
  b0 = (Button) findViewById(R.id.b0);// b1 = (Button) findViewById(R.id.b1);// b2 = (Button) findViewById(R.id.b2);// b3 = (Button) findViewById(R.id.b3);// b4 = (Button) findViewById(R.id.b4);// 

рд╣рдо рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдмрдЯрди рдХреЛ рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рд▓рд┐рдЦреЗрдВрдЧреЗ:
  b0.setOnClickListener(new OnClickListener() { public void onClick(View v) { MyThred.sendData("0"); } }); b1.setOnClickListener(new OnClickListener() { public void onClick(View v) { MyThred.sendData("1"); } }); b2.setOnClickListener(new OnClickListener() { public void onClick(View v) { MyThred.sendData("2"); } }); b3.setOnClickListener(new OnClickListener() { public void onClick(View v) { MyThred.sendData("3"); } }); b4.setOnClickListener(new OnClickListener() { public void onClick(View v) { MyThred.sendData("4"); } }); 

рдкреВрд░реНрдг рдЖрд╡реЗрджрди рдХреЛрдб:
рдЖрд╡реЗрджрди рдХреЛрдб рдЪрд░рдг 1
 package com.example.rob_2_3_0; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.UUID; import com.example.rob_2_3_0.R; import android.os.Bundle; import android.os.Handler; import android.app.Activity; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import android.bluetooth.*; import android.content.Intent; public class MainActivity extends Activity { private static final int REQUEST_ENABLE_BT = 1; final int ArduinoData = 1; final String LOG_TAG = "myLogs"; private BluetoothAdapter btAdapter = null; private BluetoothSocket btSocket = null; private static String MacAddress = "20:11:02:47:01:60"; // MAC-   private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); private ConnectedThred MyThred = null; public TextView mytext; Button b0, b1, b2, b3, b4; boolean fl=false; Handler h; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btAdapter = BluetoothAdapter.getDefaultAdapter(); mytext = (TextView) findViewById(R.id.txtrobot); if (btAdapter != null){ if (btAdapter.isEnabled()){ mytext.setText("Bluetooth .  ."); }else { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); } }else { MyError("Fatal Error", "Bluetooth "); } b0 = (Button) findViewById(R.id.b0);// b1 = (Button) findViewById(R.id.b1);// b2 = (Button) findViewById(R.id.b2);// b3 = (Button) findViewById(R.id.b3);// b4 = (Button) findViewById(R.id.b4);// b0.setOnClickListener(new OnClickListener() { public void onClick(View v) { MyThred.sendData("0"); } }); b1.setOnClickListener(new OnClickListener() { public void onClick(View v) { MyThred.sendData("1"); } }); b2.setOnClickListener(new OnClickListener() { public void onClick(View v) { MyThred.sendData("2"); } }); b3.setOnClickListener(new OnClickListener() { public void onClick(View v) { MyThred.sendData("3"); } }); b4.setOnClickListener(new OnClickListener() { public void onClick(View v) { MyThred.sendData("4"); } }); h = new Handler() { public void handleMessage(android.os.Message msg) { switch (msg.what) { case ArduinoData: byte[] readBuf = (byte[]) msg.obj; String strIncom = new String(readBuf, 0, msg.arg1); mytext.setText("  Arduino: " + strIncom); break; } }; }; } @Override public void onResume() { super.onResume(); if (btAdapter != null){ if (btAdapter.isEnabled()){ BluetoothDevice device = btAdapter.getRemoteDevice(MacAddress); Log.d(LOG_TAG, "***  Device***"+device.getName()); try { btSocket = device.createRfcommSocketToServiceRecord(MY_UUID); Log.d(LOG_TAG, "... ..."); } catch (IOException e) { MyError("Fatal Error", " onResume()    : " + e.getMessage() + "."); } btAdapter.cancelDiscovery(); Log.d(LOG_TAG, "***   ***"); Log.d(LOG_TAG, "***...***"); try { btSocket.connect(); Log.d(LOG_TAG, "***  ***"); } catch (IOException e) { try { btSocket.close(); } catch (IOException e2) { MyError("Fatal Error", " onResume()    " + e2.getMessage() + "."); } } MyThred = new ConnectedThred(btSocket); MyThred.start(); } } } @Override public void onPause() { super.onPause(); Log.d(LOG_TAG, "...In onPause()..."); if (btAdapter != null){ if (btAdapter.isEnabled()){ if (MyThred.status_OutStrem() != null) { MyThred.cancel(); } try { btSocket.close(); } catch (IOException e2) { MyError("Fatal Error", " onPause()    " + e2.getMessage() + "."); } } } }//OnPause private void MyError(String title, String message){ Toast.makeText(getBaseContext(), title + " - " + message, Toast.LENGTH_LONG).show(); finish(); } //     private class ConnectedThred extends Thread{ private final BluetoothSocket copyBtSocket; private final OutputStream OutStrem; private final InputStream InStrem; public ConnectedThred(BluetoothSocket socket){ copyBtSocket = socket; OutputStream tmpOut = null; InputStream tmpIn = null; try{ tmpOut = socket.getOutputStream(); tmpIn = socket.getInputStream(); } catch (IOException e){} OutStrem = tmpOut; InStrem = tmpIn; } public void run() { byte[] buffer = new byte[1024]; int bytes; while(true){ try{ bytes = InStrem.read(buffer); h.obtainMessage(ArduinoData, bytes, -1, buffer).sendToTarget(); }catch(IOException e){break;} } } public void sendData(String message) { byte[] msgBuffer = message.getBytes(); Log.d(LOG_TAG, "*** : " + message + "***" ); try { OutStrem.write(msgBuffer); } catch (IOException e) {} } public void cancel(){ try { copyBtSocket.close(); }catch(IOException e){} } public Object status_OutStrem(){ if (OutStrem == null){return null; }else{return OutStrem;} } } } 


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

Arduino STEP 2 рдХреЗ рд▓рд┐рдП рд╕реНрдХреЗрдЪ - рд╕реНрд╡рд╛рдпрддреНрдд рд░реЛрдмреЛрдЯ рдирд┐рдпрдВрддреНрд░рдг рдореЛрдб


рдЕрд▓реНрдЯреНрд░рд╛рд╕реЛрдирд┐рдХ рд╕реЗрдВрд╕рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рддреИрдпрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ
ultrasonic-HC-SR04.zip
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирдкреИрдХ рдХрд░реЗрдВ рдФрд░ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рдЦреЗрдВ рдЬрд╣рд╛рдВ рд╕реНрдХреЗрдЪ рд╕реНрдерд┐рдд рд╣реИ
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
 #include "Ultrasonic.h" 

рдЕрд▓реНрдЯреНрд░рд╛рд╕реЛрдирд┐рдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ - рдкрд┐рди рдирдВрдмрд░ рдЬрд┐рд╕реЗ рдХреНрд░рдорд╢рдГ рдЯреНрд░рд┐рдЧ рдФрд░ рдЗрдХреЛ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ:
 Ultrasonic ultrasonic(5, 6); 

рд╣рдо рд╕реЗрдВрдЯреАрдореАрдЯрд░ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рджреВрд░реА рдкрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:
 float dist_cm = ultrasonic.Ranging(CM); //    

рд╣рдо рдмреАрдЯреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рдж рдХреЗ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рдХреЛ рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
  Serial.print("*"); Serial.print(dist_cm); Serial.print("#"); 

рдкреНрд░рддреАрдХреЛрдВ "*" рдФрд░ "#" рдХрд╛ рдЕрд░реНрде рд╣реИ рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рджреВрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдкреНрд░реЗрд╖рд┐рдд рдмреНрд▓реЙрдХ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрддред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рд╡реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╣рд┐рд╕реНрд╕рд╛ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рджреЗрд░ рд╕реЗ рдЖрддрд╛ рд╣реИред
Arduino рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╕реНрдХреЗрдЪ:
Arduino STEP 2 рдХреЗ рд▓рд┐рдП рд╕реНрдХреЗрдЪ
 #include "Ultrasonic.h" //  char incomingbyte; int i=0; //motors A (LEFT) int R_A_IA = 9; // A-IA int R_A_IB = 10; // A-IB //motors B (RIGHT) int L_B_IA = 11; // B-IA int L_B_IB = 12; // B-IB //      Ultrasonic ultrasonic(5, 6); //  void setup() { Serial.begin(38400); //RIGHT pinMode(R_A_IA,OUTPUT); digitalWrite(R_A_IA, HIGH); pinMode(R_A_IB,OUTPUT); digitalWrite(R_A_IB, HIGH); //LEFT pinMode(L_B_IA,OUTPUT); digitalWrite(L_B_IA, HIGH); pinMode(L_B_IB,OUTPUT); digitalWrite(L_B_IB, HIGH); } void go_forward(){ //LEFT digitalWrite(L_B_IA, LOW); digitalWrite(L_B_IB, HIGH); //RIGHT digitalWrite(R_A_IA, LOW); digitalWrite(R_A_IB, HIGH); } void go_back(){ //LEFT digitalWrite(L_B_IA, HIGH); digitalWrite(L_B_IB, LOW); //RIGHT digitalWrite(R_A_IA, HIGH); digitalWrite(R_A_IB, LOW); } void go_right(){ //LEFT digitalWrite(L_B_IA, LOW); digitalWrite(L_B_IB, HIGH); //RIGHT digitalWrite(R_A_IA, LOW); digitalWrite(R_A_IB, LOW); } void go_left(){ //LEFT digitalWrite(L_B_IA, LOW); digitalWrite(L_B_IB, LOW); //RIGHT digitalWrite(R_A_IA, LOW); digitalWrite(R_A_IB, HIGH); } void stop_robot(){ //LEFT digitalWrite(L_B_IA, LOW); digitalWrite(L_B_IB, LOW); //RIGHT digitalWrite(R_A_IA, LOW); digitalWrite(R_A_IB, LOW); } //   void loop() { if (Serial.available() > 0){ incomingbyte = Serial.read(); if (incomingbyte == '1'){ go_forward(); } if (incomingbyte == '2'){ go_back(); } if (incomingbyte == '3'){ go_right(); } if (incomingbyte == '4'){ go_left(); } if (incomingbyte=='0'){ stop_robot(); } } float dist_cm = ultrasonic.Ranging(CM); //    Serial.print("*"); Serial.print(dist_cm); Serial.print("#"); } 



Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди STEP 2 - рд░реЛрдмреЛрдЯ рдХрд╛ рд╕реНрд╡рд╛рдпрддреНрдд рдирд┐рдпрдВрддреНрд░рдг


рдмрдЯрди "b5" (рдСрдЯреЛ рдХрдВрдЯреНрд░реЛрд▓) рдХреЛ рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рдХреЛрдб рдиреАрдЪреЗ рд╣реИ:
рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ STEP 2
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <Button android:id="@+id/b5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="" /> </LinearLayout> <TextView android:id="@+id/txtrobot" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="  " /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <Button android:id="@+id/b1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="100" android:text="" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="100" > <Button android:id="@+id/b4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="100" android:text="" /> <Button android:id="@+id/b0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="100" android:text="" /> <Button android:id="@+id/b3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="100" android:text="" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <Button android:id="@+id/b2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="100" android:text="" /> </LinearLayout> </LinearLayout> 

рдЕрдВрддрд░реНрд╡рд╕реНрддреБ

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдлреЙрд░реНрдо рд▓реЗрдЧреА:

рд╡реИрд░рд┐рдПрдмрд▓ b5 рдХреА рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВ:
 Button b0, b1, b2, b3, b4, b5; 

рдФрд░ рдПрдХ рдзреНрд╡рдЬ рдЬреЛ рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдСрдЯреЛ-рдирд┐рдпрдВрддреНрд░рдг рд╕рдХреНрд╖рдо рд╣реИ рдпрд╛ рдирд╣реАрдВ:
 boolean fl=false; 

рдЗрд╕реЗ рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреЗрдВ:
 b5 = (Button) findViewById(R.id.b5);// 

рдЗрд╕реЗ рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рдПрдВ:
  b5.setOnClickListener(new OnClickListener() { public void onClick(View v) { Log.d(LOG_TAG, " "); if (!fl){ Log.d(LOG_TAG, "  "); fl=true; b1.setEnabled(false); b2.setEnabled(false); b3.setEnabled(false); b4.setEnabled(false); MyThred.sendData("1"); Log.d(LOG_TAG, " 1"); } } }); 

рдФрд░ рдмрдЯрди рд╣реИрдВрдбрд▓рд░ "b0" (рд╕реНрдЯреЙрдк) рдореЗрдВ рднреА рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВ
  b0.setOnClickListener(new OnClickListener() { public void onClick(View v) { MyThred.sendData("0"); if (fl) { fl = false; b1.setEnabled(true); b2.setEnabled(true); b3.setEnabled(true); b4.setEnabled(true); } } }); 


рдпрд╣ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдЬреЛ рд░реЛрдмреЛрдЯ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХрдорд░реЗ рдореЗрдВ рдШреВрдордиреЗ рдФрд░ рдмрд╛рдзрд╛рдУрдВ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЬрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╣рдо рдкреНрд░рд╛рдкреНрдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рдЖрд░реНрдбрд┐рдиреЛ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рджреВрд░реА рдкрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рджреВрд░реА 50 рд╕реЗрдореА рд╕реЗ рдХрдо рд╣реИ, рддреЛ рджрд╛рдПрдВ рдореБрдбрд╝реЗрдВ, рдЕрдиреНрдпрдерд╛ рд╣рдо рд╕реАрдзреЗ рдЦрд╛рддреЗ рд╣реИрдВ:
  byte[] readBuf = (byte[]) msg.obj; String strIncom = new String(readBuf, 0, msg.arg1); sb.append(strIncom);//   int beginOfLineIndex = sb.indexOf("*");//    int endOfLineIndex = sb.indexOf("#");//    //     *#    if ((endOfLineIndex > 0) && (beginOfLineIndex == 0)) { String sbprint = sb.substring(beginOfLineIndex+1, endOfLineIndex-3); mytext.setText("  Arduino: " + sbprint); if (fl){ int dist = Integer.parseInt(sbprint); if (dist<50) { MyThred.sendData("3"); } else { MyThred.sendData("1"); } } } sb.delete(0, sb.length()); 

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреВрд░реНрдг рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛрдб рд╣реИ:
рдЖрд╡реЗрджрди рдХреЛрдб рдЪрд░рдг 2
 package com.robot.rob_2_3; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.util.UUID; import com.robot.rob_2_3.R; import android.os.Bundle; import android.os.CountDownTimer; import android.os.Handler; import android.app.Activity; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import android.bluetooth.*; import android.content.Intent; public class MainActivity extends Activity { private static final int REQUEST_ENABLE_BT = 1; final int ArduinoData = 1; final String LOG_TAG = "myLogs"; private BluetoothAdapter btAdapter = null; private BluetoothSocket btSocket = null; private static String MacAddress = "20:11:02:47:01:60"; // MAC-   private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); private static final long MILLIS_PER_SECOND = 0; private ConnectedThred MyThred = null; public TextView mytext; Button b0, b1, b2, b3, b4, b5; boolean fl=false; Handler h; private StringBuilder sb = new StringBuilder(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btAdapter = BluetoothAdapter.getDefaultAdapter(); mytext = (TextView) findViewById(R.id.txtrobot); if (btAdapter != null){ if (btAdapter.isEnabled()){ mytext.setText("Bluetooth .  ."); }else { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); } }else { MyError("Fatal Error", "Bluetooth "); } b0 = (Button) findViewById(R.id.b0);// b1 = (Button) findViewById(R.id.b1);// b2 = (Button) findViewById(R.id.b2);// b3 = (Button) findViewById(R.id.b3);// b4 = (Button) findViewById(R.id.b4);// b5 = (Button) findViewById(R.id.b5);// b0.setOnClickListener(new OnClickListener() { public void onClick(View v) { MyThred.sendData("0"); if (fl) { fl = false; b1.setEnabled(true); b2.setEnabled(true); b3.setEnabled(true); b4.setEnabled(true); } } }); b1.setOnClickListener(new OnClickListener() { public void onClick(View v) { MyThred.sendData("1"); } }); b2.setOnClickListener(new OnClickListener() { public void onClick(View v) { MyThred.sendData("2"); } }); b3.setOnClickListener(new OnClickListener() { public void onClick(View v) { MyThred.sendData("3"); } }); b4.setOnClickListener(new OnClickListener() { public void onClick(View v) { MyThred.sendData("4"); } }); b5.setOnClickListener(new OnClickListener() { public void onClick(View v) { Log.d(LOG_TAG, " "); if (!fl){ Log.d(LOG_TAG, "  "); fl=true; b1.setEnabled(false); b2.setEnabled(false); b3.setEnabled(false); b4.setEnabled(false); MyThred.sendData("1"); Log.d(LOG_TAG, " 1"); } } }); h = new Handler() { public void handleMessage(android.os.Message msg) { switch (msg.what) { case ArduinoData: byte[] readBuf = (byte[]) msg.obj; String strIncom = new String(readBuf, 0, msg.arg1); sb.append(strIncom);//   int beginOfLineIndex = sb.indexOf("*");//    int endOfLineIndex = sb.indexOf("#");//    //     *#    if ((endOfLineIndex > 0) && (beginOfLineIndex == 0)) { //    , String sbprint = sb.substring(beginOfLineIndex+1, endOfLineIndex-3); //    mytext.setText("  Arduino: " + sbprint); if (fl){ int dist = Integer.parseInt(sbprint); if (dist<50) { MyThred.sendData("3"); } else { MyThred.sendData("1"); } } } sb.delete(0, sb.length()); break; } }; }; } @Override public void onResume() { super.onResume(); if (btAdapter != null){ if (btAdapter.isEnabled()){ BluetoothDevice device = btAdapter.getRemoteDevice(MacAddress); Log.d(LOG_TAG, "***  Device***"+device.getName()); try { btSocket = device.createRfcommSocketToServiceRecord(MY_UUID); Log.d(LOG_TAG, "... ..."); } catch (IOException e) { MyError("Fatal Error", " onResume()    : " + e.getMessage() + "."); } btAdapter.cancelDiscovery(); Log.d(LOG_TAG, "***   ***"); Log.d(LOG_TAG, "***...***"); try { btSocket.connect(); Log.d(LOG_TAG, "***  ***"); } catch (IOException e) { try { btSocket.close(); } catch (IOException e2) { MyError("Fatal Error", " onResume()    " + e2.getMessage() + "."); } } MyThred = new ConnectedThred(btSocket); MyThred.start(); } } } @Override public void onPause() { super.onPause(); Log.d(LOG_TAG, "...In onPause()..."); if (btAdapter != null){ if (btAdapter.isEnabled()){ if (MyThred.status_OutStrem() != null) { MyThred.cancel(); } try { btSocket.close(); } catch (IOException e2) { MyError("Fatal Error", " onPause()    " + e2.getMessage() + "."); } } } }//OnPause private void MyError(String title, String message){ Toast.makeText(getBaseContext(), title + " - " + message, Toast.LENGTH_LONG).show(); finish(); } //     private class ConnectedThred extends Thread{ private final BluetoothSocket copyBtSocket; private final OutputStream OutStrem; private final InputStream InStrem; public ConnectedThred(BluetoothSocket socket){ copyBtSocket = socket; OutputStream tmpOut = null; InputStream tmpIn = null; try{ tmpOut = socket.getOutputStream(); tmpIn = socket.getInputStream(); } catch (IOException e){} OutStrem = tmpOut; InStrem = tmpIn; } public void run() { byte[] buffer = new byte[1024]; int bytes; while(true){ try{ bytes = InStrem.read(buffer); h.obtainMessage(ArduinoData, bytes, -1, buffer).sendToTarget(); }catch(IOException e){break;} } } public void sendData(String message) { byte[] msgBuffer = message.getBytes(); Log.d(LOG_TAG, "*** : " + message + "***" ); try { OutStrem.write(msgBuffer); } catch (IOException e) {} } public void cancel(){ try { copyBtSocket.close(); }catch(IOException e){} } public Object status_OutStrem(){ if (OutStrem == null){return null; }else{return OutStrem;} } } } 



Arduino рдХреЗ рдкреНрд░рд╕реНрддреБрдд рд╕реНрдХреЗрдЪ рдХреЗ рд╕рд╛рде Android рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреЛрдиреЛрдВ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд░реЛрдмреЛрдЯ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕реНрд╡рд╛рдпрддреНрдд рдирд┐рдпрдВрддреНрд░рдг рдореЛрдб рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд░реЛрдмреЛрдЯ рдЖрдЧреЗ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдмрд╛рдзрд╛рдУрдВ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдХрд╛рдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╕рдмрд╕реЗ рд╕рд░рд▓ рд░рд┐рдлреНрд▓реЗрдХреНрд╕ рд░реЛрдмреЛрдЯ рд╣реИред рджрд┐рдП рдЧрдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рд╕реНрдХреЗрдЪ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдЖрдЧреЗ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ, рдПрдХ рдореЙрдбрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд, рдПрдХ рд▓рдХреНрд╖реНрдп рдкрд░, рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкрд░, рд░реЛрдмреЛрдЯ рд╕реАрдЦрдиреЗ рдЖрджрд┐ рдкрд░ рд░реЛрдмреЛрдЯ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗред
рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЖрджреЗрд╢ рджрд┐рдпрд╛:
рдирд╛рдорд▓рд┐рдВрдХрдореВрд▓реНрдп рддреБрдореВрд▓реНрдп рд░рдЧрдбрд╝рдЧрд┐рдирддреАрдпреЛрдЧ
рд╡рд╛рдИрдлрд╝рд╛рдИ рдореЙрдбреНрдпреВрд▓dx.com/p/hi-link-hlk-rm04-serial-port-ethernet-wi-fi-adapter-module-blue-black-214540#.UutHKD1_sd014.99524.651524.65

рдХреБрд▓: 524.65

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

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


All Articles