this code is for inverted pendulum balancer. it is based on two-loop PID controller. One controller is for Angle and another one is for velocity.

Dependencies:   HCSR04 L298HBridge mbed

Committer:
dudu941014
Date:
Fri Aug 25 21:10:23 2017 +0000
Revision:
0:489498e8dae5
this code is for inverted pendulum balancer. it is based on two-loop PID controller. one PID controller is for angle and another one is for velocity.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dudu941014 0:489498e8dae5 1 //////////////////////////////////////////////////////////////////////////////////
dudu941014 0:489498e8dae5 2 // Company: edinburgh of university
dudu941014 0:489498e8dae5 3 // Engineer: ZEjun DU
dudu941014 0:489498e8dae5 4 //
dudu941014 0:489498e8dae5 5 // Create Date: 2017/08/20 13:06:52
dudu941014 0:489498e8dae5 6 // Design Name: Inverted Pendulum Balancer
dudu941014 0:489498e8dae5 7 // Module Name: acquiring real-time distance
dudu941014 0:489498e8dae5 8 // Tool Versions: “Keil 5” or “Mbed Complie Online”
dudu941014 0:489498e8dae5 9 // Description: this part is to get real-time distance from distance sensor
dudu941014 0:489498e8dae5 10 //
dudu941014 0:489498e8dae5 11 //
dudu941014 0:489498e8dae5 12 //////////////////////////////////////////////////////////////////////////////////
dudu941014 0:489498e8dae5 13 #include "distance.h"
dudu941014 0:489498e8dae5 14
dudu941014 0:489498e8dae5 15 HCSR04 usensor(p10,p11);//this defines the pins of Distance sensor of HCSR04
dudu941014 0:489498e8dae5 16 float home = 0;//this is a offset to set the original
dudu941014 0:489498e8dae5 17 float distance;//this is final distance which should be outputed
dudu941014 0:489498e8dae5 18 float distance_original;
dudu941014 0:489498e8dae5 19
dudu941014 0:489498e8dae5 20 //////////////////////////////////////////////////////////////
dudu941014 0:489498e8dae5 21 ////this part is to get distance without filter
dudu941014 0:489498e8dae5 22 //////////////////////////////////////////////////////////////
dudu941014 0:489498e8dae5 23 void get_distance(void){
dudu941014 0:489498e8dae5 24 usensor.start();//start the distance sensor
dudu941014 0:489498e8dae5 25 distance_original = usensor.get_dist_cm();//acquiring real-time distance
dudu941014 0:489498e8dae5 26 distance = distance_original - home ;//acquiring real-time distance after configuring the original
dudu941014 0:489498e8dae5 27 }