ver CAN
ikarashiMDC.h@14:b1b58b74dd4c, 2018-11-27 (annotated)
- Committer:
- tknara
- Date:
- Tue Nov 27 06:19:29 2018 +0000
- Revision:
- 14:b1b58b74dd4c
- Parent:
- 13:ea34af94e90c
RS-485 > comment out; CAN > add
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| WAT34 | 0:314f2bed3958 | 1 | #ifndef IKARASHIMDC_H |
| WAT34 | 0:314f2bed3958 | 2 | #define IKARASHIMDC_H |
| WAT34 | 0:314f2bed3958 | 3 | |
| WAT34 | 0:314f2bed3958 | 4 | #include "mbed.h" |
| WAT34 | 13:ea34af94e90c | 5 | #include "algorithm" |
| WAT34 | 0:314f2bed3958 | 6 | |
| WAT34 | 2:75153205d6e8 | 7 | #define LAP 0 |
| WAT34 | 2:75153205d6e8 | 8 | #define SM 1 |
| WAT34 | 3:615ccca78f67 | 9 | /** |
| WAT34 | 3:615ccca78f67 | 10 | * @file ikarashiMDC.h |
| WAT34 | 3:615ccca78f67 | 11 | * @Author Wataru Nakata |
| WAT34 | 3:615ccca78f67 | 12 | * @date August, 2017 |
| WAT34 | 3:615ccca78f67 | 13 | * @brief ikarashi MDC class header file. |
| WAT34 | 3:615ccca78f67 | 14 | * |
| WAT34 | 3:615ccca78f67 | 15 | * MDC control libraly. creates object for each motors. |
| WAT34 | 3:615ccca78f67 | 16 | */ |
| WAT34 | 3:615ccca78f67 | 17 | |
| WAT34 | 2:75153205d6e8 | 18 | /** Ikarashi MDC class |
| WAT34 | 2:75153205d6e8 | 19 | * MDC libraly |
| WAT34 | 2:75153205d6e8 | 20 | *Example : |
| WAT34 | 2:75153205d6e8 | 21 | *@code |
| WAT34 | 11:de577e4080b2 | 22 | #include "mbed.h" |
| WAT34 | 11:de577e4080b2 | 23 | #include "ikarashiMDC.h" |
| WAT34 | 11:de577e4080b2 | 24 | Serial serial(PC_10,PC_11); |
| WAT34 | 11:de577e4080b2 | 25 | DigitalOut serialcontrol(D2); |
| WAT34 | 2:75153205d6e8 | 26 | * |
| WAT34 | 11:de577e4080b2 | 27 | ikarashiMDC ikarashi[]{ |
| WAT34 | 2:75153205d6e8 | 28 | * ikarashiMDC(&serialcontrol,2,2,SM,&serial), |
| WAT34 | 2:75153205d6e8 | 29 | * ikarashiMDC(&serialcontrol,2,3,LAP,&serial), |
| WAT34 | 11:de577e4080b2 | 30 | }; |
| WAT34 | 11:de577e4080b2 | 31 | PwmOut pwm(LED1); |
| WAT34 | 2:75153205d6e8 | 32 | * |
| WAT34 | 11:de577e4080b2 | 33 | int main() { |
| WAT34 | 11:de577e4080b2 | 34 | * serial.baud(38400); |
| WAT34 | 2:75153205d6e8 | 35 | * float i = -1; |
| WAT34 | 2:75153205d6e8 | 36 | * while(1) { |
| WAT34 | 2:75153205d6e8 | 37 | * ikarashi[0].setSpeed(i); |
| WAT34 | 2:75153205d6e8 | 38 | * ikarashi[1].setSpeed(i); |
| WAT34 | 2:75153205d6e8 | 39 | * i += 0.01; |
| WAT34 | 11:de577e4080b2 | 40 | * pwm = fabs(i); |
| WAT34 | 2:75153205d6e8 | 41 | * wait_ms(20); |
| WAT34 | 2:75153205d6e8 | 42 | * if(i >= 1) i = -1; |
| WAT34 | 2:75153205d6e8 | 43 | * } |
| WAT34 | 11:de577e4080b2 | 44 | } |
| WAT34 | 2:75153205d6e8 | 45 | *@endcode |
| WAT34 | 2:75153205d6e8 | 46 | **/ |
| WAT34 | 1:5e8014a1adbd | 47 | class ikarashiMDC |
| WAT34 | 2:75153205d6e8 | 48 | { |
| WAT34 | 0:314f2bed3958 | 49 | public: |
| WAT34 | 2:75153205d6e8 | 50 | /** Create ikarashiMDC inctance |
| WAT34 | 2:75153205d6e8 | 51 | * @param address of cs pin for rs485 |
| WAT34 | 2:75153205d6e8 | 52 | * @param addr for MDC |
| WAT34 | 2:75153205d6e8 | 53 | * @param ch for motor |
| WAT34 | 2:75153205d6e8 | 54 | * @param mdc mode (LAP or SM) |
| WAT34 | 2:75153205d6e8 | 55 | * @param address of serial object |
| WAT34 | 2:75153205d6e8 | 56 | **/ |
| WAT34 | 2:75153205d6e8 | 57 | ikarashiMDC(DigitalOut* serialcontrol,uint8_t taddr,uint8_t tmotorNum,bool tmode,Serial *tserial); |
| tknara | 14:b1b58b74dd4c | 58 | ikarashiMDC(uint8_t taddr,uint8_t tmotorNum,bool tmode,CAN *can); |
| WAT34 | 2:75153205d6e8 | 59 | /** drive motor |
| WAT34 | 2:75153205d6e8 | 60 | * @param speed of motor -1 to 1 |
| WAT34 | 2:75153205d6e8 | 61 | **/ |
| WAT34 | 2:75153205d6e8 | 62 | int setSpeed(const double& speed); |
| WAT34 | 7:a8fcb8df927a | 63 | bool braking; |
| WAT34 | 2:75153205d6e8 | 64 | |
| WAT34 | 0:314f2bed3958 | 65 | protected: |
| WAT34 | 0:314f2bed3958 | 66 | uint8_t addr; |
| WAT34 | 0:314f2bed3958 | 67 | uint8_t motorNum; |
| WAT34 | 2:75153205d6e8 | 68 | bool mode; |
| WAT34 | 0:314f2bed3958 | 69 | Serial* serial; |
| WAT34 | 2:75153205d6e8 | 70 | DigitalOut *serialControl; |
| tknara | 14:b1b58b74dd4c | 71 | CAN* can_driver; |
| tknara | 14:b1b58b74dd4c | 72 | CANMessage msg; |
| WAT34 | 0:314f2bed3958 | 73 | }; |
| WAT34 | 2:75153205d6e8 | 74 | void estop(Serial *serial); |
| WAT34 | 1:5e8014a1adbd | 75 | |
| WAT34 | 0:314f2bed3958 | 76 | #endif |