Final Version from RoboticHackathon 4.-5. April 2015

Dependencies:   Autopilot dillerdasker Rfid mbed

Fork of RoboticHackathon2 by Mathias Lyngklip

Committer:
iLyngklip
Date:
Sat Apr 05 11:26:42 2014 +0000
Revision:
1:e854d5c12659
Child:
2:b996c95912b5
plz

Who changed what in which revision?

UserRevisionLine numberNew contents of line
iLyngklip 1:e854d5c12659 1 #include "mbed.h"
iLyngklip 1:e854d5c12659 2 #include "hack_motor.h"
iLyngklip 1:e854d5c12659 3 #include "PwmOut.h"
iLyngklip 1:e854d5c12659 4
iLyngklip 1:e854d5c12659 5 Wheel::Wheel() : M1A(PTC8), M1B(PTC10), M2A(PTC9), M2B(PTC11), GrabA(PTA5), GrabB(PTC7), HejsA(PTA4), HejsB(PTC5)
iLyngklip 1:e854d5c12659 6 {
iLyngklip 1:e854d5c12659 7 init();
iLyngklip 1:e854d5c12659 8 }
iLyngklip 1:e854d5c12659 9
iLyngklip 1:e854d5c12659 10
iLyngklip 1:e854d5c12659 11 void Wheel::init() //Initialize the driver pwm to 150Hz
iLyngklip 1:e854d5c12659 12 {
iLyngklip 1:e854d5c12659 13 M1A.period(0.0066);
iLyngklip 1:e854d5c12659 14 M2A.period(0.0066);
iLyngklip 1:e854d5c12659 15 GrabA.period(0.0066);
iLyngklip 1:e854d5c12659 16 HejsA.period(0.0066);
iLyngklip 1:e854d5c12659 17 speed = 0.0;
iLyngklip 1:e854d5c12659 18 }
iLyngklip 1:e854d5c12659 19
iLyngklip 1:e854d5c12659 20 void Wheel::FW()
iLyngklip 1:e854d5c12659 21 {
iLyngklip 1:e854d5c12659 22 fw = 0.5+(0.5*speed); //forward lies in the upper 50% of the duty cycle
iLyngklip 1:e854d5c12659 23 M1A.write(fw); //Set the duty cycle to the wanted percent, from speed variable
iLyngklip 1:e854d5c12659 24 M2A.write(fw); // -//-
iLyngklip 1:e854d5c12659 25 M1B = 0;
iLyngklip 1:e854d5c12659 26 M2B = 0;
iLyngklip 1:e854d5c12659 27 wait_ms(1);
iLyngklip 1:e854d5c12659 28 }
iLyngklip 1:e854d5c12659 29
iLyngklip 1:e854d5c12659 30 void Wheel::BW()
iLyngklip 1:e854d5c12659 31 {
iLyngklip 1:e854d5c12659 32 bw = 0.5-(0.5*speed); //Backward lies within the lower 50% of the duty cycle
iLyngklip 1:e854d5c12659 33 M1A.write(bw); //Set the duty cycle to the wanted percent, from speed variable
iLyngklip 1:e854d5c12659 34 M2A.write(bw); // -//-
iLyngklip 1:e854d5c12659 35 M1B = 1;
iLyngklip 1:e854d5c12659 36 M2B = 1;
iLyngklip 1:e854d5c12659 37 }
iLyngklip 1:e854d5c12659 38
iLyngklip 1:e854d5c12659 39 void Wheel::right()
iLyngklip 1:e854d5c12659 40 {
iLyngklip 1:e854d5c12659 41 M1A.write(0.75); //Left side forward 50%
iLyngklip 1:e854d5c12659 42 M2A.write(0.25); //Right side backwards 50%
iLyngklip 1:e854d5c12659 43 M1B = 0;
iLyngklip 1:e854d5c12659 44 M2B = 1;
iLyngklip 1:e854d5c12659 45 }
iLyngklip 1:e854d5c12659 46
iLyngklip 1:e854d5c12659 47 void Wheel::left()
iLyngklip 1:e854d5c12659 48 {
iLyngklip 1:e854d5c12659 49 M1A.write(0.25); //Right side forward 50%
iLyngklip 1:e854d5c12659 50 M2A.write(0.75); //Left side backwards 50%
iLyngklip 1:e854d5c12659 51 M1B = 1;
iLyngklip 1:e854d5c12659 52 M2B = 0;
iLyngklip 1:e854d5c12659 53 }
iLyngklip 1:e854d5c12659 54
iLyngklip 1:e854d5c12659 55 void Wheel::stop()
iLyngklip 1:e854d5c12659 56 {
iLyngklip 1:e854d5c12659 57 M1A.write(0.0); //Pin A's set low
iLyngklip 1:e854d5c12659 58 M2A.write(0.0);
iLyngklip 1:e854d5c12659 59 M1B = 0;
iLyngklip 1:e854d5c12659 60 M2B = 0; //Pin B's set high
iLyngklip 1:e854d5c12659 61 GrabA.write(0.0);
iLyngklip 1:e854d5c12659 62 HejsA.write(0.0);
iLyngklip 1:e854d5c12659 63 GrabB = 0;
iLyngklip 1:e854d5c12659 64 HejsB = 0;
iLyngklip 1:e854d5c12659 65 }
iLyngklip 1:e854d5c12659 66
iLyngklip 1:e854d5c12659 67 void Wheel::open()
iLyngklip 1:e854d5c12659 68 {
iLyngklip 1:e854d5c12659 69 GrabA.write(0.3);
iLyngklip 1:e854d5c12659 70 GrabB = 1;
iLyngklip 1:e854d5c12659 71 wait(0.1);
iLyngklip 1:e854d5c12659 72 GrabA.write(0.0);
iLyngklip 1:e854d5c12659 73 GrabB = 0;
iLyngklip 1:e854d5c12659 74 }
iLyngklip 1:e854d5c12659 75
iLyngklip 1:e854d5c12659 76 void Wheel::close()
iLyngklip 1:e854d5c12659 77 {
iLyngklip 1:e854d5c12659 78 GrabA.write(0.8);
iLyngklip 1:e854d5c12659 79 GrabB = 0;
iLyngklip 1:e854d5c12659 80 wait(0.1);
iLyngklip 1:e854d5c12659 81 GrabA.write(0.0);
iLyngklip 1:e854d5c12659 82 GrabB = 0;
iLyngklip 1:e854d5c12659 83 }
iLyngklip 1:e854d5c12659 84
iLyngklip 1:e854d5c12659 85 void Wheel::hejs()
iLyngklip 1:e854d5c12659 86 {
iLyngklip 1:e854d5c12659 87 HejsA.write(0.7);
iLyngklip 1:e854d5c12659 88 HejsB = 0;
iLyngklip 1:e854d5c12659 89 wait(0.1);
iLyngklip 1:e854d5c12659 90 HejsA.write(0.0);
iLyngklip 1:e854d5c12659 91 HejsB = 0;
iLyngklip 1:e854d5c12659 92
iLyngklip 1:e854d5c12659 93 }
iLyngklip 1:e854d5c12659 94
iLyngklip 1:e854d5c12659 95 void Wheel::saenk()
iLyngklip 1:e854d5c12659 96 {
iLyngklip 1:e854d5c12659 97 HejsA.write(0.25);
iLyngklip 1:e854d5c12659 98 HejsB = 1;
iLyngklip 1:e854d5c12659 99 wait(0.1);
iLyngklip 1:e854d5c12659 100 HejsA.write(0.0);
iLyngklip 1:e854d5c12659 101 HejsA = 0;
iLyngklip 1:e854d5c12659 102 }
iLyngklip 1:e854d5c12659 103
iLyngklip 1:e854d5c12659 104 void Wheel::venSelv1()
iLyngklip 1:e854d5c12659 105 {
iLyngklip 1:e854d5c12659 106 M1A.write(0.9); //Set the duty cycle to the wanted percent, from speed variable
iLyngklip 1:e854d5c12659 107 M2A.write(0.7); // -//-
iLyngklip 1:e854d5c12659 108 M1B = 0;
iLyngklip 1:e854d5c12659 109 M2B = 0;
iLyngklip 1:e854d5c12659 110 wait_ms(10);
iLyngklip 1:e854d5c12659 111 M2A.write(0.9);
iLyngklip 1:e854d5c12659 112 }
iLyngklip 1:e854d5c12659 113 void Wheel::venSelv2()
iLyngklip 1:e854d5c12659 114 {
iLyngklip 1:e854d5c12659 115 M1A.write(0.7); //Set the duty cycle to the wanted percent, from speed variable
iLyngklip 1:e854d5c12659 116 M2A.write(0.9); // -//-
iLyngklip 1:e854d5c12659 117 M1B = 0;
iLyngklip 1:e854d5c12659 118 M2B = 0;
iLyngklip 1:e854d5c12659 119 wait_ms(10);
iLyngklip 1:e854d5c12659 120 M1A.write(0.9);
iLyngklip 1:e854d5c12659 121 }