Hoe maak je een Power-Up in Brick in Visual Basic Maak

Hoe maak je een Power-Up in Brick in Visual Basic Maak


Visual Basic is een gemeenschappelijke programmeertaal gebruikt in een verscheidenheid aan toepassingen. De taal kan worden gebruikt LEGOmindstorms robotics kits voor verschillende toepassingen. Deze kits worden geleverd met programmeerbare computers bekend als "stenen", dat de robots te controleren. De software voor deze kits kunnen worden geprogrammeerd om een ​​power-up maken of startprogramma voor de robot.

instructies

1 Sluit de robot die u gebouwd met behulp van de fundamentele instrumenten en instructies in uw robotica kit. Zorg ervoor dat de Bluetooth-optie is ingeschakeld van de belangrijkste LED-menu gebruikt voor het opzetten van uw robot.

2 Maak de dienst die verantwoordelijk is voor het besturen van de robot de eersten zullen zijn. In visual basic, voer "dssnewservice / taal: VB / service:" gevolgd door de naam van de dienst. Bijvoorbeeld, als u wilt dat de dienst LegoBot naam, voert u het volgende: "dssnewservice / taal: VB / service: LegoBot". Het eindresultaat zal een map met meerdere bestanden die nodig zijn voor de verdere configuratie van uw power-up programma.

3 Open het LegoBot bestand, dat moet de naam LegoBot.sln. Stel de verwijzingen in het vak of het menu dat wordt geopend wanneer u het bestand opent. Klik links "RoboticsCommon.proxy" en "XInputGamePad.Y2006.M09.proxy" in de LegoBot directory.

4 Open de LegoBot.cs / .vb bestand naar drie lijnen van Visual Basic-code toe te voegen:

De invoer bumper = Microsoft.Robotics.Services.ContactSensor.Proxy
De invoer rijden = Microsoft.Robotics.Services.Drive.Proxy
De invoer gamepad = Microsoft.Robotics.Services.Sample.XInputGamepad.Proxy

5 Maak de poorten die u wilt gebruiken om te communiceren met het apparaat door het invoeren van de volgende code:

"Partnerships met bumper, differentiële aandrijving en gamepad
<Partner ( "bumper", Contract: = bumper.Contract.Identifier, CreationPolicy: = PartnerCreationPolicy.UseExisting)> _
Private _bumperPort Zoals bumper.ContactSensorArrayOperations = Nieuwe bumper.ContactSensorArrayOperations ()

<Partner ( "drive", Contract: = drive.Contract.Identifier, CreationPolicy: = PartnerCreationPolicy.UseExisting)> _
Private _drivePort Zoals drive.DriveOperations = Nieuwe drive.DriveOperations ()

<Partner ( "XInputGamepad", Contract: = gamepad.Contract.Identifier, CreationPolicy: = PartnerCreationPolicy.CreateAlways)> _
Private _gamepadPort Zoals gamepad.XInputGamepadOperations = Nieuwe gamepad.XInputGamepadOperations

6 Abonneer je op je gamepad dienst door het invoeren van "abonneren op drukken op een knop en thumbstick veranderingen op de 360 ​​pad
Dim gamepadNotify Zoals gamepad.XInputGamepadOperations = Nieuwe gamepad.XInputGamepadOperations ()
_gamepadPort.Subscribe (gamepadNotify)
Activeer (Arbiter.Receive (Of gamepad.ThumbsticksChanged) (True, gamepadNotify, AddressOf ThumbstickHandler))
Activeer (Arbiter.Receive (Of gamepad.ButtonsChanged) (True, gamepadNotify, AddressOf ButtonHandler "

7 Open de LegoBotState object en voeg "in stand te houden of de motoren zijn ingeschakeld
Openbare MotorEnabled zoals Van Boole "om aan te geven dat de motoren van de robot zijn ingeschakeld.

8 Voeg de code die nodig is om te bepalen hoe het bot zal worden behandeld:
"Private Sub ThumbstickHandler (ByVal msg Zoals gamepad.ThumbsticksChanged)

If (_state.MotorEnabled) Then
' Left/RightWheelPower expects a value from -1.0f to 1.0f.
' the Thumbsticks will return a value form -1.0f to 1.0f. Convenient.

'Maak een verzoek
Dim req Zoals drive.SetDrivePowerRequest = Nieuwe drive.SetDrivePowerRequest ()

'Wijzen de waarden
req.LeftWheelPower = msg.Body.LeftY
req.RightWheelPower = msg.Body.RightY

'Post de aanvraag
_drivePort.SetDrivePower (req)
Stop als

end Sub

Private Sub ButtonHandler (ByVal msg Zoals gamepad.ButtonsChanged)

If (msg.Body.A) Then
_state.MotorEnabled = True
End If

End Sub "

9 Opzetten van je bumper functionaliteit door het invoeren van: " 'abonneren op bumper meldingen
Dim bumperNotify Zoals bumper.ContactSensorArrayOperations = Nieuwe bumper.ContactSensorArrayOperations ()
_bumperPort.Subscribe (bumperNotify)
Activeer (Arbiter.Receive (Of bumper.Update) (True, bumperNotify, AddressOf BumperHandler)) "

10 Schakel de bumper handler door het invoeren van de benodigde code: "Private Sub BumperHandler (ByVal msg Zoals bumper.Update)

If (msg.Body.Pressed) Then
LogInfo(&quot;Pressed!&quot;)

_state.MotorEnabled = False

'Maak een verzoek
Dim req Zoals drive.SetDrivePowerRequest = Nieuwe drive.SetDrivePowerRequest ()

'Stoppen met de wielen
req.LeftWheelPower = 0.0F
req.RightWheelPower = 0.0F

'Post de aanvraag
_drivePort.SetDrivePower (req)
Stop als

End Sub "

11 Voer de service debuggen van het programma en het programma om de bovenstaande apparaten geïnstalleerd om te werken met de programmering te vertellen. Klik met de rechtermuisknop op de "Eigenschappen" commando binnen het project. Links-klik op "Debug" en voeg vervolgens "Manifeste:". Samples \ config \ LEGO.NXT.LegoBot.manifest.xml "" om het tekstvak "Command line argumenten"