Difference between revisions of "F15: Quadcopter by Thomas"
From Embedded Systems Learning Academy
					
										
					
					| Proj user1 (talk | contribs) | Proj user1 (talk | contribs)  | ||
| Line 1: | Line 1: | ||
| + | |||
| + | ==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. | ||
| + | <source lang="c"> | ||
| + | |||
| + | #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; | ||
| + |         } | ||
| + |     } | ||
| + | } | ||
| + | |||
| + | |||
| + | </source> | ||
| Line 4: | Line 70: | ||
| The picture of the SJdrone | The picture of the SJdrone | ||
| − | [[File:Thomas quad SJdrone.jpg]] | + | [[File:Thomas quad SJdrone.jpg|200px]] | 
Revision as of 18:49, 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;
        }
    }
}

 
							