pxt-calliope/docs/projects/rc-car/code.md
Galen Nickel 6976055aa9 Migrate term 'package' to 'extension' (#1280)
* Migrate term 'package' to 'extension'

* Bad link

* Add package term note

* Small article change
2018-09-26 09:35:56 -07:00

2.4 KiB

Code

Step 1: Add the Kitronik extension

Kitronik has an extension with blocks that program their motor driver. We need to add it to our project.

  • Click on Advanced
  • Click Extensions
  • Type kitronik, press Enter
  • Select the kitronik-motor-driver extension

After the extension is loaded, you should see a new Kitronik category in the toolbox.

Step 2: Round and round we go!

https://youtu.be/pD6tM1nXCPA

The first program has the car drive around in a circle for 5 seconds when the user presses the A button. This is simply done by turning both motor controllers on for 5 seconds.

input.onButtonPressed(Button.A, () => {
    basic.showIcon(IconNames.Happy)
    kitronik.motorOn(kitronik.Motors.Motor1, kitronik.MotorDirection.Reverse, 100)
    kitronik.motorOn(kitronik.Motors.Motor2, kitronik.MotorDirection.Forward, 100)
    basic.pause(5000)
    kitronik.motorOff(kitronik.Motors.Motor1)
    kitronik.motorOff(kitronik.Motors.Motor2)
    basic.showIcon(IconNames.SmallDiamond)
})

~ hint

Protect your electronics

Make sure to unplug the @boardname@ from the edge connector when you're connecting it to your computer. This helps protect everything from potential electrical problems.

~

Depending on how your wires are connected to the motor driver, your car may go backward instead of forward. If so, you can either swap the wires or change the MotorDirection in your code to get it to go the right way.

Step 3: Figure eight

https://youtu.be/agor9wtiAkE

Instead of stopping after 5 seconds, we reverse the steering motor to turn in the other direction. This will create a figure eight path.

input.onButtonPressed(Button.A, () => {
    basic.showIcon(IconNames.Happy)
    kitronik.motorOn(kitronik.Motors.Motor1, kitronik.MotorDirection.Reverse, 100)
    kitronik.motorOn(kitronik.Motors.Motor2, kitronik.MotorDirection.Forward, 100)
    basic.pause(3500)
    kitronik.motorOn(kitronik.Motors.Motor2, kitronik.MotorDirection.Reverse, 100)
    basic.pause(3500)
    kitronik.motorOff(kitronik.Motors.Motor1)
    kitronik.motorOff(kitronik.Motors.Motor2)
    basic.showIcon(IconNames.SmallDiamond)
})

Great! The code to drive the car is done! Now let's get another @boardname@ and control the car remotely.

~button /projects/rc-car/connect

Connect

~

pxt-kitronik-motor-driver=github:kitronikltd/pxt-kitronik-motor-driver#v0.0.3