DIY: рдореЙрд╕реНрдХреЛ рдирджреА рдХреЗ рдкрд╛рдиреА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЛрдмреЛрдЯ рдкрдирдбреБрдмреНрдмреАред рднрд╛рдЧ 1

рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдордзреНрдп рдкреНрд░рдмрдВрдзрдХ рджреНрд╡рд╛рд░рд╛ рдкрд╛рдиреА рдХреЗ рдиреАрдЪреЗ рд╕реНрд╡рд╛рдпрддреНрдд рд░реЛрдмреЛрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЗрддрд┐рд╣рд╛рд╕ рд╣реИред рд╡рд░реНрддрдорд╛рди рд▓рдХреНрд╖реНрдп рдореЙрд╕реНрдХреЛ рдирджреА рдХреЗ рдореЗрд▓реЗ рдХрд╛ рдЕрдк-рдЯреВ-рдбреЗрдЯ рдирдХреНрд╢рд╛ рдмрдирд╛рдирд╛ рд╣реИред рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп, рдРрд╕рд╛ рдирдХреНрд╢рд╛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ , рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рд╕рд╡рд╛рд▓ рдЙрдард╛рддреА рд╣реИред рдирджреА рдХрд╛ рддрд▓ рд▓рдЧрд╛рддрд╛рд░ рдмрджрд▓ рд░рд╣рд╛ рд╣реИред рдирджреА рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рдХрд╛ рдХреНрд╖рд░рдг рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЪреИрдирд▓ рдХрд╛ рдирдХреНрд╢рд╛ рдмрджрд▓рддрд╛ рд╣реИред рдорд╛рд╕реНрдХреЛ рдирджреА рдХреА рдмрд░реНрдл (61%), рдЬрдореАрди (27%) рдФрд░ рдмрд╛рд░рд┐рд╢ (12%) рдХреЗ рдкреЛрд╖рдг рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред рдЕрдВрддрд┐рдо рд▓рдХреНрд╖реНрдп рдЧрд╣рд░реЗ рд╕рдореБрджреНрд░ рдХреЗ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдкрд╛рдиреА рдХреЗ рдиреАрдЪреЗ рдХрд╛ рд░реЛрдмреЛрдЯ рдмрдирд╛рдирд╛ рд╣реИред рдкреГрдереНрд╡реА рдХреА рд╕рддрд╣ рдХреЗ 2/3 рднрд╛рдЧ рд╡рд╛рд▓реЗ рдорд╣рд╛рд╕рд╛рдЧрд░реЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХреЗрд╡рд▓ 5% рд╣реИред рдПрдХ рд╕реНрд╡рд╛рдпрддреНрдд рд░реЛрдмреЛрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рд╕рд░рд▓ "рдСрдЯреЛрдкрд╛рдпрд▓рдЯ" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдореЙрд╕реНрдХреЛ рдирджреА рдХреЗ рдХрд┐рдирд╛рд░реЗ DIY рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╕реНрддреА рдФрд░ рдЖрд╕рд╛рди рдСрдЯреЛрдкрд╛рдпрд▓рдЯ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП?





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

рдбрд┐рдЬрд╝рд╛рдЗрди


рдореЙрд╕реНрдХреЛ рдирджреА рдХреЗ рдкрд╛рдиреА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЛрдмреЛрдЯ рдкрдирдбреБрдмреНрдмреАред

рдореИрдВрдиреЗ рдЬрд┐рди рддрддреНрд╡реЛрдВ рдХреЛ рджреЗрдЦрд╛, рдЙрдирдХреА рдЕрдиреБрдорд╛рдирд┐рдд рд╡реНрдпрд╡рд╕реНрдерд╛ред


рдХрд▓реЗрдХреНрдЯрд░ рдореЛрдЯрд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ред


рд╕рд░реНрд╡реЛ-рдбреНрд░рд╛рдЗрд╡ рд╕реНрдЯреАрдпрд░рд┐рдВрдЧред


рд╕рд░реНрд╡реЛ-рдбреНрд░рд╛рдЗрд╡ рд╕реНрдЯреАрдпрд░рд┐рдВрдЧ рдЧрд╣рд░рд╛рдИред


рдордЬрд╛рдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдПрдХреНрд╕-рдкреНрд░рд╛рдЗрдЬ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░реА рдХрд░ рд░рд╣рд╛ рд╣реВрдВ ред
рдпрд╣ $ 2000 рдмрдЪрд╛рдирд╛ рд╣реИред :)

The registration deadline is 30 June, 2016 (11:59 PM UTC/4:59 PM PST). The registration fee is $2,000.00 USD.



рд▓рдХреНрд╖реНрдп рдПрдХ рд╕реНрд╡рд╛рдпрддреНрдд рдкрд╛рдиреА рдХреЗ рдиреАрдЪреЗ рд░реЛрдмреЛрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╣реИ, рди рдХрд┐ рдЖрд░рдУрд╡реА ред (рджреВрд░ рд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рдкрд╛рдиреА рдХреЗ рдиреАрдЪреЗ рд╡рд╛рд╣рди)ред

рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рднрд╛рдЧ рдХреЛ рдЬрдЯрд┐рд▓рддрд╛ рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░
Arduino рдиреИрдиреЛ + L293D + рдмреНрд▓реВрдЯреВрде + 3 рд╕рд░реНрд╡реЛ + рдкрд╛рд╡рд░ рдмреИрдВрдХ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг (рдСрдирд▓рд╛рдЗрди рд╕реНрдЯреЛрд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рдж рдЬреЛ рдЗрд╕ рддрд░рд╣ 3 рд╕реЗрдВрдЯ рдореЗрдВ рдмреЗрдЪрд╛ рдЧрдпрд╛)ред рдЪрд╛рд░реНрдЬ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рдкрд╛рд╡рд░ рдмреИрдВрдХ рдХреЗ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди Samsung Galaxy S3 рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИред рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдмреНрд▓реВрдЯреВрде рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Arduino рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИред


рдкреНрд░рдмрдВрдзрди рд╕реЙрдлреНрдЯрд╡реЗрдпрд░


"рд╣рдо рдЙрд╕ рд░рд╛рд╕реНрддреЗ рдкрд░ рдЕрдкрдиреЗ рднрд╛рдЧреНрдп рд╕реЗ рдорд┐рд▓ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЗрд╕реЗ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рд╣реИ"
рдЬреАрди рдбреЗ рд▓рд╛рдлреЛрдВрдЯреЗрди


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

SL4A рдкрд╛рдпрдерди


рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ Android рдлреЛрди рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реИред рдЖрдк рдЧреАрдХ рд╣реИрдВ, рд╢рдХреНрдХрд░ рд╡рд╛рд▓реЗ рдлрд▓реЛрдВ рдХреЗ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реИрдВред
рд╣рдо рдХреНрдпреВрдЖрд░ рдХреЛрдб рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ ред
SL4A рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдлреЛрди рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЕрдЬрдЧрд░ рджреБрднрд╛рд╖рд┐рдпрд╛ рдпрд╣рд╛рдБ рд╣реИред

рдпрд╛ QPython3

рдлреЛрди рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рдордЬрд╝реЗрджрд╛рд░ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддреЗред
рдПрдХ рд░рд╛рд╕реНрддрд╛ рд╣реИ
: http://habrahabr.ru/post/134184/
, 9999 Android- (, 46136):
$ adb forward tcp:9999 tcp:46136
:
$ AP_PORT=9999
android.py Python', , , , . helloWorld Android- Python:
>>>import android
>>>droid = android.Android()
>>>droid.makeToast(┬лHello, world!┬╗)

android, droid, API Android'a. ┬лHello, World!┬╗ .
, API, SL4A.


рдПрдХ рдкрде рдХрд╛ рдирд┐рд░реНрдорд╛рдгред рдмрд┐рдВрджреБ рдЪрдпрди



Yandex.maps рдпрд╛ Google.maps рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдирджреА рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд╕реНрдерд┐рдд рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдпрд╣ рдПрдХ рдореЛрдЯрд╛ рд░рд╛рд╕реНрддрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рдореИрдВ рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
[55.671110, 37.686625], [55.668448, 37.675467], [55.660847, 37.671776], [55.654649, 37.671175]

рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдлреЛрди рдФрд░ рдХреЛрдб рдХреА 70 рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ DIY рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╕реНрддреА рдФрд░ рдЖрд╕рд╛рди рдСрдЯреЛрдкрд╛рдпрд▓рдЯ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ?




рдСрдЯреЛрдкрд╛рдпрд▓рдЯ рдХреЛрдб
import math,android,time
coordmas = [[55.671110, 37.686625],[55.668448, 37.675467],[55.660847, 37.671776],[55.654649, 37.671175]]
droid = android.Android()
droid.startSensingTimed(1,200)
droid.startLocating(5000, 30)
def getgps():
	locs = droid.getLastKnownLocation()
	gpspos = locs.result["gps"]
	return gpspos
def distazim(llat1,llong1,llat2,llong2):
	rad=6372795
	#
	lat1=llat1*math.pi/180.
	lat2=llat2*math.pi/180.
	long1=llong1*math.pi/180.
	long2=llong2*math.pi/180.
	cl1=math.cos(lat1)
	cl2=math.cos(lat2)
	sl1=math.sin(lat1)
	sl2=math.sin(lat2)
	delta=long2-long1
	cdelta=math.cos(delta)
	sdelta=math.sin(delta)
	y=math.sqrt(math.pow(cl2*sdelta,2)+math.pow(cl1*sl2-sl1*cl2*cdelta,2))
	x=sl1*sl2+cl1*cl2*cdelta
	ad=math.atan2(y,x)
	dist=ad*rad
	x=(cl1*sl2)-(sl1*cl2*cdelta)
	y=sdelta*cl2
	z=math.degrees(math.atan(-y/x))
	if(x<0):
		z=z+180.
	z2=(z+180.)%360.-180.
	z2=-math.radians(z2)
	anglerad2=z2-((2*math.pi)*math.floor((z2/(2*math.pi))))
	angledeg=(anglerad2*180.)/math.pi
	return [dist,angledeg]
def servoangle(azdiff):
	if azdiff>10 or azdiff<-10:
		deg=azdiff
		if deg>90:
			deg=90
		if deg<-90:
			deg=-90
	return deg
gpspos=getgps()
oldlat = gpspos["latitude"]
oldlon = gpspos["longitude"]
for c in range(len(coordmas)):
	#    
	curcoord=coordmas[c]
	targetlat=curcoord[0]
	targetlon=curcoord[1]
	darange=11;
	while darange>10:
		gpspos=getgps()
		curlat = gpspos["latitude"]
		curlon = gpspos["longitude"]
		time.sleep(0.5)
		da=distazim(curlat,curlon,targetlat,targetlon)
		darange = da[0]
		dazimut = round(da[1])
		pol=droid.sensorsReadOrientation()
		pol2=pol.result
		turn = round(pol2[0])
		turn = (-turn) *180/ 3.2
		azdiff=turn-dazimut
		deg=servoangle(azdiff)
	oldlat = curlat
	oldlon = curlon



рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб
import math,android,time

# 
coordmas = [[55.671110, 37.686625],[55.668448, 37.675467],[55.660847, 37.671776],[55.654649, 37.671175]]

#,  GPS, 
droid = android.Android()
droid.startSensingTimed(1,200)
droid.startLocating(5000, 30)

#
#GPS
def getgps():
	locs = droid.getLastKnownLocation()
	gpspos = locs.result["gps"]
	return gpspos
#       GPS-
def distazim(llat1,llong1,llat2,llong2):
	rad=6372795
	#
	lat1=llat1*math.pi/180.
	lat2=llat2*math.pi/180.
	long1=llong1*math.pi/180.
	long2=llong2*math.pi/180.

	#
	cl1=math.cos(lat1)
	cl2=math.cos(lat2)
	sl1=math.sin(lat1)
	sl2=math.sin(lat2)
	delta=long2-long1
	cdelta=math.cos(delta)
	sdelta=math.sin(delta)

	#
	y=math.sqrt(math.pow(cl2*sdelta,2)+math.pow(cl1*sl2-sl1*cl2*cdelta,2))
	x=sl1*sl2+cl1*cl2*cdelta
	ad=math.atan2(y,x)
	dist=ad*rad

	#
	x=(cl1*sl2)-(sl1*cl2*cdelta)
	y=sdelta*cl2
	z=math.degrees(math.atan(-y/x))

	if(x<0):
	z=z+180.

	z2=(z+180.)%360.-180.
	z2=-math.radians(z2)
	anglerad2=z2-((2*math.pi)*math.floor((z2/(2*math.pi))))
	angledeg=(anglerad2*180.)/math.pi

	return [dist,angledeg]

def servoangle(azdiff):
	if azdiff>10 or azdiff<-10:
		deg=azdiff
		if deg>90:
			deg=90
		if deg<-90:
			deg=-90
	return deg

#     
gpspos=getgps()
oldlat = gpspos["latitude"]
oldlon = gpspos["longitude"]

#
for c in range(len(coordmas)):
	#    
	curcoord=coordmas[c]
	targetlat=curcoord[0]
	targetlon=curcoord[1]

	#     10   .
	darange=11;
	while darange>10:
		# 	
		gpspos=getgps()
		curlat = gpspos["latitude"]
		curlon = gpspos["longitude"]
		time.sleep(0.5)
		#     . .
		da=distazim(curlat,curlon,targetlat,targetlon)
		darange = da[0]
		dazimut = round(da[1])
		#  
		pol=droid.sensorsReadOrientation()
		pol2=pol.result
		turn = round(pol2[0])
		#[1.57=left, 0=stop, -1.57=right]
		turn = (-turn) *180/ 3.2
		#        10     
		azdiff=turn-dazimut
		#      
		deg=servoangle(azdiff)
		#     

	#   , ..     
	oldlat = curlat
	oldlon = curlon



Android рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдердиред рд╡реЗ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ
:
droid.batteryStartMonitoring() тАФ o .
droid.batteryStopMonitoring()
droid.batteryGetHealth() тАФ (1-, 2-, 3 тАФ , 4 тАФ , 5 тАФ , 6 тАФ )
droid.batteryGetStatus() тАФ (1 тАФ , 2 тАФ , 3 тАФ , 4 тАФ , 5 тАФ )
droid.batteryGetTechnology()
droid.readBatteryData() тАФ .
droid.batteryGetTemperature()
droid.batteryGetVoltage()
droid.batteryGetLevel()

Bluetooth:
droid.checkBluetoothState() тАФ Bluetooth
droid.toggleBluetoothState() тАФ True , False
droid.bluetoothAccept() тАФ
droid.bluetoothActiveConnections() тАФ ,
droid.bluetoothGetConnectedDeviceName()
droid.bluetoothMakeDiscoverable() тАФ
droid.bluetoothStop()

Wi-Fi:
droid.checkWifiState() тАФ Wi-Fi
droid.toggleWifiState() тАФ True , False
droid.wifiStartScan()
droid.wifiGetScanResults()
droid.wifiGetConnectionInfo()

:
droid.checkAirplaneMode() тАФ ┬л ┬╗
droid.checkRingerSilentMode() тАФ
droid.checkScreenOn() тАФ
droid.toggleRingerSilentMode() тАФ
droid.toggleAirplaneMode()
droid.toggleVibrateMode()

:
droid.getMaxMediaVolume()
droid.getMaxRingerVolume()
droid.getMediaVolume()
droid.getRingerVolume()
droid.getScreenBrightness()
droid.getScreenTimeout()
droid.getVibrateMode()

:
droid.setMediaVolume()
droid.setRingerVolume()
droid.setScreenBrightness()
droid.setScreenTimeOut()


рдпреЛрдЬрдирд╛рдПрдВ:
  • Arduino рдХреЛ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рдмреНрд▓реВрдЯреВрде рдбреЗрдЯрд╛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
  • Arduino рд╕реЗ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред рдореИрдВ рдПрдХ рдЕрд▓реНрдЯреНрд░рд╛рд╕реЛрдирд┐рдХ рд╕реЗрдВрд╕рд░ рдХреЗ рд╕рд╛рде рдЧрд╣рд░рд╛рдИ рдХреЛ рдорд╛рдкреВрдВрдЧрд╛ред
  • рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдЧрд╣рд░рд╛рдИ рдорд╛рдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рднреЗрдЬрдирд╛ред
  • . , . .
  • , ,


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

рдореБрдЭреЗ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдирд╛ рд╣реИ: рд░реЛрдмреЛрдЯ рд▓реЙрдореВрд╡рд░реНрд╕ рдХреА
рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ 3 рдЬреВрди рдХреЛ рд╕реНрдХреЛрд▓реНрдХреЛрд╡реЛ рдореЗрдВ рдЖрдпреЛрдЬрд┐рдд рдХреА рдЬрд╛рдПрдЧреА ред рд╣рд░ рдХреЛрдИ рд░реЛрдмреЛрдЯрд┐рдХреНрд╕ рдореЗрдВ рдЕрдкрдирд╛ рд╣рд╛рде рдЖрдЬрдорд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдмрд╛рдж, рд╣рдо рдПрдХ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреАрдо рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдо рдкрд╣рд▓рд╛ рд░реВрд╕реА рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рд░реЛрдмреЛрдЯ рдорд▓реНрдЪрд░ рдмрдирд╛рдПрдВрдЧреЗред рд╕рднреА рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпрд╡рд╛рди рдкреБрд░рд╕реНрдХрд╛рд░ рдФрд░ рдЙрдкрд╣рд╛рд░ред

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


All Articles