DAISEN eDES see: http://mbed.org/users/okini3939/notebook/daisen-edes/

Committer:
okini3939
Date:
Mon Jun 17 01:46:35 2013 +0000
Revision:
2:ef1c45486022
Parent:
1:2a38c9027bd1
fix;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 1:2a38c9027bd1 1 /**
okini3939 1:2a38c9027bd1 2 * DAISEN eDES 2WD driver for mbed
okini3939 1:2a38c9027bd1 3 * Copyright (c) 2012 Suga
okini3939 1:2a38c9027bd1 4 * Released under the MIT License: http://mbed.org/license/mit
okini3939 1:2a38c9027bd1 5 */
okini3939 1:2a38c9027bd1 6
okini3939 1:2a38c9027bd1 7 /** @file
okini3939 1:2a38c9027bd1 8 * @brief DAISEN eDES 2WD driver for mbed
okini3939 1:2a38c9027bd1 9 */
okini3939 1:2a38c9027bd1 10
okini3939 1:2a38c9027bd1 11 #define SUB_ADRS 0x30
okini3939 1:2a38c9027bd1 12
okini3939 1:2a38c9027bd1 13 #define I2C_WCMD_RESET 0x00
okini3939 1:2a38c9027bd1 14 #define I2C_WCMD_START 0x01
okini3939 1:2a38c9027bd1 15 #define I2C_WCMD_ENQ 0x09
okini3939 1:2a38c9027bd1 16
okini3939 1:2a38c9027bd1 17 #define I2C_WCMD_IO 0x10
okini3939 1:2a38c9027bd1 18 #define I2C_WCMD_SENSOR 0x11
okini3939 1:2a38c9027bd1 19 #define I2C_WCMD_MOTOR 0x12
okini3939 1:2a38c9027bd1 20 #define I2C_WCMD_LED 0x13
okini3939 1:2a38c9027bd1 21 #define I2C_WCMD_LAT 0x14
okini3939 1:2a38c9027bd1 22 #define I2C_WCMD_T 0x15
okini3939 1:2a38c9027bd1 23 #define I2C_WCMD_V 0x16
okini3939 1:2a38c9027bd1 24 #define I2C_WCMD_DIR 0x17
okini3939 1:2a38c9027bd1 25 #define I2C_WCMD_EG002 0x18
okini3939 1:2a38c9027bd1 26 #define I2C_WCMD_EG003 0x19
okini3939 1:2a38c9027bd1 27 #define I2C_WCMD_EG009 0x1A
okini3939 1:2a38c9027bd1 28 #define I2C_WCMD_LDM 0x1B
okini3939 1:2a38c9027bd1 29
okini3939 1:2a38c9027bd1 30 #define I2C_RCMD_IO 0x80
okini3939 1:2a38c9027bd1 31 #define I2C_RCMD_SENSOR 0x81
okini3939 1:2a38c9027bd1 32 #define I2C_RCMD_MOTOR 0x82
okini3939 1:2a38c9027bd1 33 #define I2C_RCMD_LED 0x83
okini3939 1:2a38c9027bd1 34 #define I2C_RCMD_LAT 0x84
okini3939 1:2a38c9027bd1 35 #define I2C_RCMD_T 0x85
okini3939 1:2a38c9027bd1 36 #define I2C_RCMD_V 0x86
okini3939 1:2a38c9027bd1 37 #define I2C_RCMD_DIR 0x87
okini3939 1:2a38c9027bd1 38
okini3939 1:2a38c9027bd1 39 #define MAX_PWM 6
okini3939 1:2a38c9027bd1 40 #define MAX_COL 16
okini3939 1:2a38c9027bd1 41
okini3939 1:2a38c9027bd1 42 #define MAX_CN 10
okini3939 1:2a38c9027bd1 43
okini3939 1:2a38c9027bd1 44 #define eDES2WD_ID 1
okini3939 1:2a38c9027bd1 45
okini3939 1:2a38c9027bd1 46 enum eDES2WD_LED {
okini3939 1:2a38c9027bd1 47 LED_GREEN = 0,
okini3939 1:2a38c9027bd1 48 LED_RED,
okini3939 1:2a38c9027bd1 49 LED_LEFT,
okini3939 1:2a38c9027bd1 50 LED_RIGHT,
okini3939 1:2a38c9027bd1 51 };
okini3939 1:2a38c9027bd1 52
okini3939 2:ef1c45486022 53 enum eDES2WD_SENSOR {
okini3939 2:ef1c45486022 54 SENSOR_WALL_CENTER = 0,
okini3939 2:ef1c45486022 55 SENSOR_WALL_LEFT,
okini3939 2:ef1c45486022 56 SENSOR_WALL_RIGHT,
okini3939 2:ef1c45486022 57 SENSOR_FLOOR_CENTER,
okini3939 2:ef1c45486022 58 SENSOR_FLOOR_LEFT,
okini3939 2:ef1c45486022 59 SENSOR_FLOOR_RIGHT,
okini3939 2:ef1c45486022 60 };
okini3939 2:ef1c45486022 61
okini3939 1:2a38c9027bd1 62 class eDES2WD {
okini3939 1:2a38c9027bd1 63 public:
okini3939 1:2a38c9027bd1 64 eDES2WD (I2C &i2c);
okini3939 1:2a38c9027bd1 65 void reset (int id);
okini3939 1:2a38c9027bd1 66 void motor (int id, int l_speed, int r_speed);
okini3939 1:2a38c9027bd1 67 void set_led (int id, eDES2WD_LED led, int sw);
okini3939 1:2a38c9027bd1 68
okini3939 2:ef1c45486022 69 unsigned int get_sensor(int id, eDES2WD_SENSOR cn, unsigned int *dat);
okini3939 1:2a38c9027bd1 70 int get_lat(int id, int cno);
okini3939 1:2a38c9027bd1 71
okini3939 1:2a38c9027bd1 72 private:
okini3939 1:2a38c9027bd1 73 I2C _i2c;
okini3939 1:2a38c9027bd1 74
okini3939 1:2a38c9027bd1 75 };