рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдордзреНрдп рдкреНрд░рдмрдВрдзрдХ рджреНрд╡рд╛рд░рд╛ рдкрд╛рдиреА рдХреЗ рдиреАрдЪреЗ рд╕реНрд╡рд╛рдпрддреНрдд рд░реЛрдмреЛрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЗрддрд┐рд╣рд╛рд╕ рд╣реИред рд╡рд░реНрддрдорд╛рди рд▓рдХреНрд╖реНрдп рдореЙрд╕реНрдХреЛ рдирджреА рдХреЗ рдореЗрд▓реЗ рдХрд╛ рдЕрдк-рдЯреВ-рдбреЗрдЯ рдирдХреНрд╢рд╛ рдмрдирд╛рдирд╛ рд╣реИред рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп, рдРрд╕рд╛ рдирдХреНрд╢рд╛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ , рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рд╕рд╡рд╛рд▓ рдЙрдард╛рддреА рд╣реИред рдирджреА рдХрд╛ рддрд▓ рд▓рдЧрд╛рддрд╛рд░ рдмрджрд▓ рд░рд╣рд╛ рд╣реИред рдирджреА рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рдХрд╛ рдХреНрд╖рд░рдг рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЪреИрдирд▓ рдХрд╛ рдирдХреНрд╢рд╛ рдмрджрд▓рддрд╛ рд╣реИред рдорд╛рд╕реНрдХреЛ рдирджреА рдХреА рдмрд░реНрдл (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]]
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
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 рдЬреВрди рдХреЛ рд╕реНрдХреЛрд▓реНрдХреЛрд╡реЛ рдореЗрдВ рдЖрдпреЛрдЬрд┐рдд рдХреА рдЬрд╛рдПрдЧреА ред рд╣рд░ рдХреЛрдИ рд░реЛрдмреЛрдЯрд┐рдХреНрд╕ рдореЗрдВ рдЕрдкрдирд╛ рд╣рд╛рде рдЖрдЬрдорд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдмрд╛рдж, рд╣рдо рдПрдХ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреАрдо рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдо рдкрд╣рд▓рд╛ рд░реВрд╕реА рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рд░реЛрдмреЛрдЯ рдорд▓реНрдЪрд░ рдмрдирд╛рдПрдВрдЧреЗред рд╕рднреА рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпрд╡рд╛рди рдкреБрд░рд╕реНрдХрд╛рд░ рдФрд░ рдЙрдкрд╣рд╛рд░ред