Difference between revisions of "F15: Quadcopter by Thomas"
From Embedded Systems Learning Academy
Proj user1 (talk | contribs) |
Proj user1 (talk | contribs) |
||
Line 67: | Line 67: | ||
+ | Here is the diagram shows the output of the PWM. PWM_FREQ variable from the previous sample code can control the period and p variable can control the duration. | ||
+ | |||
+ | [[File:Thomas quad PWM diagram.PNG|800px]] | ||
The picture of the SJdrone | The picture of the SJdrone | ||
[[File:Thomas quad SJdrone.jpg|200px]] | [[File:Thomas quad SJdrone.jpg|200px]] |
Revision as of 21:13, 2 September 2015
Abstract
The goal of this project is try to implement the basic function of a drone, fly and controlling the direction by remote control.
Design & Implementation
PWM
The four motor on the done is controlled by the PWM (Pulse Width Modulation). The SJSUone board already gave us a good library to use, so we just have to set the frequency and pin at the beginning of the code.
The example of using the library.
#define PWM_FREQ 500
#include "lpc_pwm.hpp"
#include "uart0.hpp"
#include "stdio.h"
void motor_test()
{
PWM servo1(PWM::pwm1, PWM_FREQ);
PWM servo2(PWM::pwm2, PWM_FREQ);
PWM servo3(PWM::pwm3, PWM_FREQ);
PWM servo4(PWM::pwm4, PWM_FREQ);
Uart0& terminal = Uart0::getInstance();
terminal.init(38400);
float p;
int num;
while(1){
printf("NO=");
scanf("%d",&num);
printf("pwm percent=");
scanf("%f", &p);
switch(num){
case 1:
servo1.set(p);
break;
case 2:
servo2.set(p);
break;
case 3:
servo3.set(p);
break;
case 4:
servo4.set(p);
break;
default:
return;
}
}
}
Here is the diagram shows the output of the PWM. PWM_FREQ variable from the previous sample code can control the period and p variable can control the duration.