How to control a servo

Dependencies:   Servo mbed

Fork of Program3_Servo by Robotics Kit Workshop

Seeed_Arch_link_Servo

Setup

  1. Connect the Temperature sensor as well as the Servo to the Seeeduino-Arch-Link board, and then connect the board to you PC using the micro-USB cable.
  2. The board mounts as a mass-storage device (like a USB drive). Verify that you can see it (drive name will be MBED).
  3. Go to http://developer.mbed.org
  4. Create an ARM mbed account if you do not have one.
  5. On the top right corner, click the Compiler button.

An IDE should open. Congratulations!

On Windows: To see debug messages, install the serial driver.

Debug messages: We can talk to the board via a serial port, but you might need some software. Read this doc and install required software (like PuTTY or CoolTermon Windows).

Locally: If you like things locally, you can do so by exporting to a supported toolchain.

I very much recommend to just use the online IDE, as it makes it easier for us, but if you want to continue hacking in the future, this is a nice way.

Seeed_Arch_link_Servo

  1. Go back to the compiler browser window and click F5 to refresh the page.
  2. Click the Import button, then click "Click Here to import from URL"
  3. Paste the URL https://developer.mbed.org/teams/znrobotics/code/Seeed_Arch_link_Servo/
  4. Double click to open main.cpp
  5. Here we try to present you how to control the Servo
  6. Try to finish the code under ' YOUR CODE HERE : make code run between 0-1 only!' for challenge!
  1. Now press Compile
  2. A file downloads (Seeed_Arch_link_Servo.hex)
  3. Drag the file to the 'MBED' disk
  4. After flashing, hit the 'Reset' button to start the program.
  5. The servo will now move!
Committer:
simon
Date:
Thu Sep 02 17:37:55 2010 +0000
Revision:
0:ea7182628dfa
Child:
1:40d2fd0b99e6
Publish as program containing Servo library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
simon 0:ea7182628dfa 1 // Hello World for the Servo interface
simon 0:ea7182628dfa 2
simon 0:ea7182628dfa 3 #include "mbed.h"
simon 0:ea7182628dfa 4 #include "Servo.h"
simon 0:ea7182628dfa 5
simon 0:ea7182628dfa 6 Servo myservo(p21);
simon 0:ea7182628dfa 7 Serial pc(USBTX, USBRX);
simon 0:ea7182628dfa 8
simon 0:ea7182628dfa 9 int main() {
simon 0:ea7182628dfa 10 printf("Servo Calibration Controls:\n");
simon 0:ea7182628dfa 11 printf("1,2,3 - Position Servo (full left, middle, full right)\n");
simon 0:ea7182628dfa 12 printf("4,5 - Decrease or Increase range\n");
simon 0:ea7182628dfa 13
simon 0:ea7182628dfa 14 float range = 0.0005;
simon 0:ea7182628dfa 15 float position = 0.5;
simon 0:ea7182628dfa 16
simon 0:ea7182628dfa 17 while(1) {
simon 0:ea7182628dfa 18 switch(pc.getc()) {
simon 0:ea7182628dfa 19 case '1': position = 0.0; break;
simon 0:ea7182628dfa 20 case '2': position = 0.5; break;
simon 0:ea7182628dfa 21 case '3': position = 1.0; break;
simon 0:ea7182628dfa 22 case '4': range += 0.0001; break;
simon 0:ea7182628dfa 23 case '5': range -= 0.0001; break;
simon 0:ea7182628dfa 24 }
simon 0:ea7182628dfa 25 printf("position = %.1f, range = +/-%0.4f\n", position, range);
simon 0:ea7182628dfa 26 myservo.calibrate(range, 45.0);
simon 0:ea7182628dfa 27 myservo = position;
simon 0:ea7182628dfa 28 }
simon 0:ea7182628dfa 29 }