BakeBit - Servo
From FriendlyELEC WiKi
Contents
1 Introduction
- The BakeBit - Servo is a servo module which contains a DC motor and a transmission system.
- Its input signal is PWM. The motor's steering angle changes according to PWM signals' changes. The input PWM's frequency is 50Hz and its width is 0.5ms—2.5ms. The motor's steering angle is 0 - 180°。
- A PWM input steers the motor to an angle. When no input signals are applied the motor will stop.
2 Hardware Spec
- Standard 2.0mm pitch 4-Pin BakeBit Interface
Servo's dimension
- Spec:
- Pin Description:
Pin | Name | Description |
1 | SIG | Signal |
2 | NC | Not Connected |
3 | 5V | 5V Supply Voltage |
4 | GND | Ground |
3 示例程序:Servo and Rotary Angle Sensor
这个示例演示用BakeBit - Rotary Angle Sensor来控制舵机的转动, 随着你转动电位器,舵机将在0~180角范围里旋转。
3.1 硬件连接
简单的将 舵机 模块插入D5接口,将电位器模块插入A0接口,如下面这样:
3.2 示例源代码
import time import bakebit import random # Connect the servo to digital port D5 # SIG,NC,VCC,GND servo = 5 # Connect the BakeBit Rotary Angle Sensor to analog port A0 # SIG,NC,VCC,GND potentiometer = 0 # Reference voltage of ADC is 5v adc_ref = 5 # Vcc of the bakebit interface is normally 5v bakebit_vcc = 5 # Full value of the rotary angle is 180 degrees, as per it's specs (0 to 180) full_angle = 180 old_degrees = -1 bakebit.pinMode(potentiometer,"INPUT") bakebit.bakeBitServo_Attach(servo) while True: try: # Read sensor value from potentiometer sensor_value = bakebit.analogRead(potentiometer) # Calculate voltage voltage = round((float)(sensor_value) * adc_ref / 1023, 2) # Calculate rotation in degrees (0 to 180) degrees = int((voltage * full_angle) / bakebit_vcc) if degrees != old_degrees: print("sensor_value = %d voltage = %.2f degrees = %d" % (sensor_value, voltage, degrees)) bakebit.bakeBitServo_Write(servo, degrees) old_degrees = degrees except KeyboardInterrupt: bakebit.bakeBitServo_Detach(servo) break except IOError: print ("Error")
3.3 运行示例
假设你已经参考bakebit教程安装了BakeBit源代码,
要运行示例程序,可以在开发板上进入 BakeBit/Software/Python目录,运行bakebit_prj_Servo_And_RotaryAngleSensor.py:
cd ~/BakeBit/Software/Python sudo python bakebit_prj_Servo_And_RotaryAngleSensor.py
3.4 运行结果
随着你转动电位器,舵机将在0~180角范围里旋转。
4 相关资料
- [Specification](BakeBit - Servo Specification.pdf)
- [BakeBit Github项目](https://github.com/friendlyarm/BakeBit)
- [BakeBit Starter Kit手册](http://wiki.friendlyarm.com/bakebit/bakebit_starter_kit_manual_cn.pdf)