code of robot bike

Dependencies:   SDFileSystem mbed

Fork of Robot_Bicycle by Chris LU

RobotServo.h

Committer:
YCTung
Date:
2016-06-21
Revision:
1:709be64ca63c
Parent:
0:830ddddc129f
Child:
3:197b748a397a

File content as of revision 1:709be64ca63c:

#include "mbed.h"

#define PWM_PERIOD          1.0f/244.0f
#define POWER_REDU_PW       0.0001f

#define PWR_REDU_PW         0.0001  //100us ~ 200us
#define PWR_REDU_DUTY_1024  PWR_REDU_PW*244*1024
#define PWR_REDU_DUTY_256   PWR_REDU_PW*244*256
#define MIN_SERVO_PW        0.0007  //pulse width in second
#define MAX_SERVO_PW        0.0023  //pulse width in second
#define MIN_SERVO_DUTY_1024 MIN_SERVO_PW*244*1024
#define MAX_SERVO_DUTY_1024 MAX_SERVO_PW*244*1024
#define MIN_SERVO_DUTY_256  MIN_SERVO_PW*244*256
#define MAX_SERVO_DUTY_256  MAX_SERVO_PW*244*256

#define Ts 0.004098
#define pi 3.14159

#define H_PEDAL_DIVIDER 2
#define M_PEDAL_DIVIDER 3
#define L_PEDAL_DIVIDER 5
#define Z_PEDAL_DIVIDER 5

#define TOT_ARM_POS     41
#define TOT_FOOT_POS    55  //48 + TOT_STOP_POS
#define TOT_STOP_POS  7
#define FIRST_POS  7

#define HANDLE_STOP     30
#define HANDLE_STRAIGHT 0 - 6
#define HANDLE_START    20  //16 - 6

#define COUN2_LOW_V   TOT_STOP_POS
#define COUN2_MID_V   19
#define COUN2_HIGH_V  38

#define COUN2_HANDLE_CNTRL  19
#define COUN2_HANDLE_START  10

extern PwmOut pwm_lw;
extern PwmOut pwm_le;
extern PwmOut pwm_ls;
extern PwmOut pwm_la;
extern PwmOut pwm_lk;
extern PwmOut pwm_ll;
extern PwmOut pwm_lb;
extern PwmOut pwm_rb;
extern PwmOut pwm_rl;
extern PwmOut pwm_rk;
extern PwmOut pwm_ra;
extern PwmOut pwm_rs;
extern PwmOut pwm_re;
extern PwmOut pwm_rw;

extern const int servoangle_left[TOT_ARM_POS][3];
extern const int servoangle_right[TOT_ARM_POS][3];

extern const float footangle_left[TOT_FOOT_POS][4];
extern const float footangle_right[TOT_FOOT_POS][4];

extern void setupServo(void);

extern void pwm_left(float angle_up, float angle_mid, float angle_down);    //Left arm
extern void pwm_right(float angle_up, float angle_mid, float angle_down);   //Left arm
extern void lookuptable_steering(int8_t sensor_output);

extern void pwm_left_foot(float angle_1, float angle_2, float angle_3, float angle_4);
extern void pwm_right_foot(float angle_1, float angle_2, float angle_3, float angle_4);
extern void lookuptable_pedaling(int index);

extern void reset_left_butt(void);
extern void reset_pos(void);
extern void stop_pos(void);

extern int angle_to_duty(int resolution, float degree);