рд╣рдо рд╡рд┐рдВрдбреЛрдЬ 8. рд░реЛрдмреЛ рдореИрдЬрд┐рдХ рдмреЙрд▓ рдкрд░ рд░реЛрдмреЛрдЯ рдХрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рддреЗ рд╣реИрдВ

рдЫрд╡рд┐

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

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди ...


рд╕реНрдлреЗрд░реЛ ( www.gosphero.com ) Orbotix рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдПрдХ рдЫреЛрдЯрд╛ рдмреЙрд▓ рд░реЛрдмреЛрдЯ рд╣реИред

рдЫрд╡рд┐

рдХрд┐рдЯ рдореЗрдВ рдПрдХ рдЪрд╛рд░реНрдЬрд░, рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдореИрдиреБрдЕрд▓ рдФрд░ рд╕реАрдзреЗ, рдЧреЗрдВрдж рд╣реА рдЖрддреА рд╣реИред

рдЫрд╡рд┐

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

рд╕реНрдлрд╝реАрд░реЛ рдХрд┐рд╕реА рднреА рджрд┐рд╢рд╛ рдореЗрдВ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рд╕рддрд╣ рдкрд░ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рддреИрд░рд╛рдХреА рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рд╕рд╛рде рд╣реА рд╡рд┐рднрд┐рдиреНрди рд░рдВрдЧреЛрдВ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рднреАред

рдирд┐рд░реНрдорд╛рддрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рд░реЛрдмреЛрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИред

рдЫрд╡рд┐

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

рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд░реЗрдбреАрдореЗрдб рд╕реНрдлреЗрд░реЛ рдФрд░ рдПрд╕рдбреАрдХреЗ рдкреНрд░рдмрдВрдзрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрдИ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:


рдореВрд▓реНрдп рдЬрд╛рд░реА рдХрд░реЗрдВ


рдпрд╣ рд░реВрд╕ рдореЗрдВ 4,000 рд╕реЗ 7,000 рд╣рдЬрд╛рд░ рд░реВрдмрд▓ рддрдХ рдХреА рдЦреБрд╢реА рд╣реИред Yandex.Market рдкрд░ред рд╡рд┐рджреЗрд╢ рдореЗрдВ рдЗрд╕реЗ 80 рд╕реЗ 130 рдбреЙрд▓рд░ рдХреА рд░рд╛рд╢рд┐ рдореЗрдВ рдЦрд░реАрджрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рдБ, рдпрд╣ рд╕рдмрд╕реЗ рд╕рд╕реНрддрд╛ рдЦрд┐рд▓реМрдирд╛ рдирд╣реАрдВ рд╣реИред

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


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

рдЫрд╡рд┐

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

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


рдЕрдВрдд рдореЗрдВ рд╣рдо рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рдЧрдПред рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рдЪреАрдЬрд╝ рдХреЛ рдореИрдиреЗрдЬ рдХрд░рдирд╛ред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдПрдХ рдЫреЛрдЯреА рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЧреЗрдо рдмрдирд╛рдПрдВрдЧреЗред рдЪрд▓реЛ рдЗрд╕реЗ рд╕реНрдлреЗрд░реЛ рдкрд╛рд░реНрдЯреА рдЧреЗрдо рдХрд╣рддреЗ рд╣реИрдВ ред

рдЦреЗрд▓ рдХреЗ рдирд┐рдпрдо

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

рдЙрдкрдХрд░рдг

рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛:

рдХрд╛рдо рдкрд░ рд▓рдЧрдирд╛

1. рд╕рдмрд╕реЗ рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рд╣рдореЗрдВ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рд╡рд╣ рд╣реИ Sphero SDK ред рдпрд╣ рдПрдХ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╣реЛрдЧреА рдЬрд┐рд╕реЗ рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреЛрдбрд╝реЗрдВрдЧреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
2. Sphero SDK рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд▓реВрдЯреВрде RFCOMM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╣рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдмреНрд▓реВрдЯреВрде рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЫрд╡рд┐

3. рдЕрдЧрд▓рд╛, рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2013 рдЦреЛрд▓реЗрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓ / рдирдИ / рдкрд░рд┐рдпреЛрдЬрдирд╛ / рдЦрд╛рд▓реА рдРрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдВред

рдЫрд╡рд┐

4. рд╣рдо рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ RobotKit.dll SDK рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ

рдЫрд╡рд┐

5. рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдмреНрд▓реВрдЯреВрде RFCOMM рд╕рдорд░реНрдерди рдЬреЛрдбрд╝реЗрдВред рдХреЛрдб рд╕рдВрдкрд╛рджрди рдореЛрдб рдореЗрдВ Package.appxmanifest рдЦреЛрд▓реЗрдВ рдФрд░ рдХреНрд╖рдорддрд╛ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВред

рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдмреНрд▓реВрдЯреВрде RFCOMM рд╕рдорд░реНрдерди
<wb:DeviceCapability Name="bluetooth.rfcomm"> <wb:Device Id="any"> <wb:Function Type="serviceId:00001101-0000-1000-8000-00805F9B34FB" /> </wb:Device> </wb:DeviceCapability> 


рдЫрд╡рд┐

6. рдЖрд╡реЗрджрди рдХреА рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди рдкрд░:

MainPage.xaml рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рд╡рд╣рд╛рдВ рдЬреЛрдбрд╝реЗрдВред

рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореБрдЦреНрдп рд╕реНрдХреНрд░реАрди
 <Grid Background="#0094D0"> <TextBlock x:Name="SpheroName" HorizontalAlignment="Left" Margin="82,97,0,0" TextWrapping="Wrap" Text="No Sphero Connected" VerticalAlignment="Top" FontSize="24"/> <ToggleSwitch x:Name="ConnectionToggle" HorizontalAlignment="Left" Margin="76,122,0,0" VerticalAlignment="Top" Toggled="ConnectionToggle_Toggled" /> <Grid HorizontalAlignment="Center" Height="512" Margin="0,0,0,0" VerticalAlignment="Center" Width="512"> <Button Name="startGameBtn" Click="startGameBtn_Click" Content="Start" Height="113" Width="334" /> </Grid> </Grid> 


рдЫрд╡рд┐

7. MainPage.xaml.cs рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдЧреЗрдо рдХреЗ рддрд░реНрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВред рд╕реНрдлреЗрд░реЛ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрд╕рдбреАрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдЦреЗрд▓ рддрд░реНрдХ
 public sealed partial class MainPage : Page { private Sphero m_robot = null; private long m_lastCommandSentTimeMs; private bool m_gameIsStarted = false; private const string c_noSpheroConnected = "No Sphero Connected"; private const string c_connectingToSphero = "Connecting to {0}"; private const string c_spheroConnected = "Connected to {0}"; public MainPage() { this.InitializeComponent(); } // .     protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); SetupRobotConnection(); Application app = Application.Current; app.Suspending += OnSuspending; } // .     protected override void OnNavigatedFrom(NavigationEventArgs e) { base.OnNavigatedFrom(e); ShutdownRobotConnection(); Application app = Application.Current; app.Suspending -= OnSuspending; } //     private void OnSuspending(object sender, SuspendingEventArgs args) { ShutdownRobotConnection(); } //      private void SetupRobotConnection() { SpheroName.Text = c_noSpheroConnected; RobotProvider provider = RobotProvider.GetSharedProvider(); provider.DiscoveredRobotEvent += OnRobotDiscovered; provider.NoRobotsEvent += OnNoRobotsEvent; provider.ConnectedRobotEvent += OnRobotConnected; provider.FindRobots(); } //    private void ShutdownRobotConnection() { if (m_robot != null) { m_robot.SensorControl.StopAll(); m_robot.Sleep(); m_robot.Disconnect(); ConnectionToggle.OffContent = "Disconnected"; SpheroName.Text = c_noSpheroConnected; m_robot.SensorControl.AccelerometerUpdatedEvent -= OnAccelerometerUpdated; RobotProvider provider = RobotProvider.GetSharedProvider(); provider.DiscoveredRobotEvent -= OnRobotDiscovered; provider.NoRobotsEvent -= OnNoRobotsEvent; provider.ConnectedRobotEvent -= OnRobotConnected; } } // ! private void OnRobotDiscovered(object sender, Robot robot) { if (m_robot == null) { RobotProvider provider = RobotProvider.GetSharedProvider(); provider.ConnectRobot(robot); ConnectionToggle.OnContent = "Connecting..."; m_robot = (Sphero)robot; SpheroName.Text = string.Format(c_connectingToSphero, robot.BluetoothName); } } //   :( private void OnNoRobotsEvent(object sender, EventArgs e) { MessageDialog dialog = new MessageDialog(c_noSpheroConnected); dialog.DefaultCommandIndex = 0; dialog.CancelCommandIndex = 1; dialog.ShowAsync(); } //    private void OnRobotConnected(object sender, Robot robot) { ConnectionToggle.IsOn = true; ConnectionToggle.OnContent = "Connected"; SpheroName.Text = string.Format(c_spheroConnected, robot.BluetoothName); SetRobotDefault(); m_robot.SensorControl.Hz = 10; m_robot.SensorControl.AccelerometerUpdatedEvent += OnAccelerometerUpdated; } //   private void OnAccelerometerUpdated(object sender, AccelerometerReading reading) { if (m_gameIsStarted) MoveRobot(reading.X, reading.Y); } //  .      private void SetRobotDefault() { m_robot.SetHeading(0); m_robot.SetRGBLED(0, 255, 0); m_robot.Roll(0, 0); } //        public async void ChangeRobotColor() { int colorsCount = 20; Random r = new Random(); List<Color> colors = new List<Color> { Color.FromArgb(100, 0, 255, 0) }; for (int c = 0; c < colorsCount; c++) colors.Add(Color.FromArgb(100, (byte)r.Next(255), 0, (byte)r.Next(255))); List<int> miliseconds = new List<int>(); for (int m = 0; m <= 5; m++) miliseconds.Add(r.Next(1000)); while (true) { int colorNumber = r.Next(colorsCount); Color color = colors[colorNumber]; int milisecond = miliseconds[r.Next(5)]; m_robot.SetRGBLED(color.R, color.G, color.B); await Task.Delay(TimeSpan.FromMilliseconds(milisecond)); } } //   .  10    public void MoveRobot(float x, float y) { m_robot.SetHeading(0); int angleDegrees = 10; long milliseconds = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond; if ((milliseconds - m_lastCommandSentTimeMs) > 1) { m_robot.Roll(angleDegrees, 0); m_lastCommandSentTimeMs = milliseconds; } } //      private void startGameBtn_Click(object sender, RoutedEventArgs e) { m_gameIsStarted = !m_gameIsStarted; if (m_gameIsStarted) { startGameBtn.Content = "Stop"; ChangeRobotColor(); } else { startGameBtn.Content = "Start"; SetRobotDefault(); } } //    private void ConnectionToggle_Toggled(object sender, RoutedEventArgs e) { ConnectionToggle.OnContent = "Connecting..."; if (ConnectionToggle.IsOn) { if (m_robot == null) { SetupRobotConnection(); } } else { ShutdownRobotConnection(); } } } 


8. рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред рдореЗрд░рд╛ рдЖрд╡реЗрджрди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

рдЫрд╡рд┐

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

рдЫрд╡рд┐

рдЫрд╡рд┐

9. рд╕реНрдЯрд╛рд░реНрдЯ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдЦреЗрд▓ рдХреЛ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рджреЗрдЦреЗрдВред



рдЖрдк рдпрд╣рд╛рдВ рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: http://1drv.ms/MXwR6w

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


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

рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ


Sphero рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ
рд╕реНрдлреЗрд░реЛ рдбреЗрд╡рд▓рдкрд░ рд╕реЗрдВрдЯрд░
рд╡рд┐рдВрдбреЛрдЬ 8.1 рд╕реНрдлреЗрд░реЛ рдПрд╕рдбреАрдХреЗ
рд╡рд┐рдВрдбреЛрдЬ 8.1 рдХреЗ рд▓рд┐рдП рд╕реНрдлреЗрд░реЛ рдПрд╕рдбреАрдХреЗ рдЙрджрд╛рд╣рд░рдг
Sphero youtube рдбреЗрд╡рд▓рдкрд░ рдЪреИрдирд▓
рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2013 рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
Visual Studio рдСрдирд▓рд╛рдЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдиреЗрдВред
Visual Studio рдСрдирд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВ

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


All Articles