My modifications/additions to the code
Dependencies: ADXL345 ADXL345_I2C IMUfilter ITG3200 Servo fishgait mbed-rtos mbed pixy_cam
Fork of robotic_fish_ver_4_8 by
main.cpp@5:090ef6275773, 2014-01-28 (annotated)
- Committer:
- sandwich
- Date:
- Tue Jan 28 23:59:21 2014 +0000
- Revision:
- 5:090ef6275773
- Parent:
- 3:666c1bae1a34
- Child:
- 6:a4d6f3e4bf28
added interrupts
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sandwich | 0:ff9bc5f69c57 | 1 | #include "mbed.h" |
sandwich | 0:ff9bc5f69c57 | 2 | #include "motor_controller.h" |
sandwich | 2:430c068cf570 | 3 | #include "guardian.h" |
sandwich | 0:ff9bc5f69c57 | 4 | #include "IMU.h" |
sandwich | 2:430c068cf570 | 5 | #include "Servo.h" |
sandwich | 2:430c068cf570 | 6 | #include "rtos.h" |
sandwich | 5:090ef6275773 | 7 | #include "PwmReader.h" |
sandwich | 2:430c068cf570 | 8 | bool quit=false; |
sandwich | 0:ff9bc5f69c57 | 9 | |
sandwich | 0:ff9bc5f69c57 | 10 | PololuMController mcon(p22, p6, p5); |
sandwich | 2:430c068cf570 | 11 | Servo servo(p21); |
sandwich | 2:430c068cf570 | 12 | Guardian ap(p21, p23, p24, p25, p26, p26); |
sandwich | 2:430c068cf570 | 13 | Serial xbee(p13, p14); |
sandwich | 2:430c068cf570 | 14 | Serial pc(USBTX, USBRX); |
sandwich | 0:ff9bc5f69c57 | 15 | |
sandwich | 5:090ef6275773 | 16 | |
sandwich | 2:430c068cf570 | 17 | //IMU imu(0.1, 0.3, 0.005, 0.005); |
sandwich | 3:666c1bae1a34 | 18 | void motor_thread(void const *args) { |
sandwich | 5:090ef6275773 | 19 | |
sandwich | 0:ff9bc5f69c57 | 20 | Timer t; |
sandwich | 0:ff9bc5f69c57 | 21 | t.start(); |
sandwich | 5:090ef6275773 | 22 | PwmReader thrDutyCycl(p7); |
sandwich | 5:090ef6275773 | 23 | |
sandwich | 5:090ef6275773 | 24 | PwmReader freqDutyCycl(p8); |
sandwich | 5:090ef6275773 | 25 | |
sandwich | 5:090ef6275773 | 26 | while (quit==false) { |
sandwich | 5:090ef6275773 | 27 | float td = thrDutyCycl.getDuty(); |
sandwich | 5:090ef6275773 | 28 | float fd = freqDutyCycl.getDuty(); |
sandwich | 5:090ef6275773 | 29 | pc.printf("throttle: %f frequency: %f\n",td,fd); |
sandwich | 5:090ef6275773 | 30 | mcon.drive_sinusoidal(t.read(), 1, 2*3.141 ,0); // (time,amplitude,frequency,freqoffset) |
sandwich | 5:090ef6275773 | 31 | Thread::wait(10); |
sandwich | 0:ff9bc5f69c57 | 32 | } |
sandwich | 0:ff9bc5f69c57 | 33 | t.stop(); |
sandwich | 0:ff9bc5f69c57 | 34 | } |
sandwich | 2:430c068cf570 | 35 | |
sandwich | 2:430c068cf570 | 36 | int main() |
sandwich | 2:430c068cf570 | 37 | { |
sandwich | 2:430c068cf570 | 38 | Thread thread(motor_thread); |
sandwich | 5:090ef6275773 | 39 | //ap.calibrate(); |
sandwich | 5:090ef6275773 | 40 | //ap.set2D(); |
sandwich | 5:090ef6275773 | 41 | ap.setoff(); |
sandwich | 5:090ef6275773 | 42 | while(1) { |
sandwich | 5:090ef6275773 | 43 | //char buf[128]; |
sandwich | 5:090ef6275773 | 44 | // if (xbee.readable()) |
sandwich | 5:090ef6275773 | 45 | // { |
sandwich | 5:090ef6275773 | 46 | // xbee.gets(buf, 128); |
sandwich | 5:090ef6275773 | 47 | // //xbee.scanf("%d"); |
sandwich | 5:090ef6275773 | 48 | // pc.puts(buf); |
sandwich | 5:090ef6275773 | 49 | // } |
sandwich | 5:090ef6275773 | 50 | // memset(buf, 0, 128); |
sandwich | 5:090ef6275773 | 51 | |
sandwich | 5:090ef6275773 | 52 | |
sandwich | 5:090ef6275773 | 53 | Thread::wait(10); |
sandwich | 2:430c068cf570 | 54 | } |
sandwich | 2:430c068cf570 | 55 | } |