tes ir atas semua

Dependencies:   mbed ADS1115 StepperMotor SRF05 TPA81new

Committer:
Ezeuz
Date:
Fri Feb 09 15:21:40 2018 +0000
Revision:
5:dae415fb4bad
Parent:
4:9932af380e56
Child:
6:69c59bcab6ea
Before LIDAR & CMPS

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dmgongora 1:ef90d942ce78 1 /*****************************************************
dmgongora 1:ef90d942ce78 2 - Description: mbed to Dynamixel connection test using
dmgongora 1:ef90d942ce78 3 the library
dmgongora 1:ef90d942ce78 4 - Requirements:
dmgongora 1:ef90d942ce78 5 Dynamixel (i.e. DX116, RX28)
dmgongora 1:ef90d942ce78 6 MAX3088/MAX485 (RS485 transceiver)
dmgongora 1:ef90d942ce78 7 - Connections:
dmgongora 1:ef90d942ce78 8 MAX3088 -- mbed
dmgongora 1:ef90d942ce78 9 ======================
dmgongora 1:ef90d942ce78 10 Pin 1 -- Pin 14
dmgongora 1:ef90d942ce78 11 Pin 2 -- Pin 15
dmgongora 1:ef90d942ce78 12 Pin 4 -- Pin 13
dmgongora 1:ef90d942ce78 13
dmgongora 1:ef90d942ce78 14 - Comments:
dmgongora 1:ef90d942ce78 15 See schematic for wiring details and class
dmgongora 1:ef90d942ce78 16 documentation for available methods.
dmgongora 1:ef90d942ce78 17 *****************************************************/
Ezeuz 4:9932af380e56 18
dmgongora 0:79e2a8171b16 19 #include "mbed.h"
dmgongora 0:79e2a8171b16 20 #include "Dynamixel.h"
Ezeuz 4:9932af380e56 21 #include "TextLCD.h"
Ezeuz 4:9932af380e56 22 #include "Uvtron.h"
Ezeuz 4:9932af380e56 23
Ezeuz 4:9932af380e56 24 // Defines
Ezeuz 4:9932af380e56 25 #define IR_CONST 1.229
Ezeuz 4:9932af380e56 26
Ezeuz 5:dae415fb4bad 27 // Settings // Servo comm : tx, rx, txEn, id, baud
Ezeuz 5:dae415fb4bad 28 TextLCD lcd(PA_5, PA_11, PA_6, PB_12, PA_7, PB_6); // LCD : rs, e, d4-d7
Ezeuz 5:dae415fb4bad 29 AnalogIn ir(PC_5); // Sharp IR : analog
Ezeuz 4:9932af380e56 30 DigitalOut m2(PA_15); // extinguisher : 12V out M2
Ezeuz 4:9932af380e56 31 DigitalOut m1(PB_7); // extinguisher : 12V out M1, possibly broken
Ezeuz 4:9932af380e56 32 DigitalOut led1(PC_13); // GPIO high is 3V3
Ezeuz 4:9932af380e56 33 DigitalOut led2(PC_14);
Ezeuz 5:dae415fb4bad 34 DigitalIn sound(PA_12); // Sound act : digital, active low
Ezeuz 5:dae415fb4bad 35 DigitalIn uv(PB_8); // UVTron : digital, pin 2 = active low
Ezeuz 5:dae415fb4bad 36 Serial pc(USBTX, USBRX); // tx, rx
Ezeuz 4:9932af380e56 37
Ezeuz 4:9932af380e56 38
Ezeuz 4:9932af380e56 39 /* About interrupt
Ezeuz 4:9932af380e56 40 Where are the interrupt pins on NUCLEO-F411RE?
Ezeuz 4:9932af380e56 41
Ezeuz 4:9932af380e56 42 If you use a recent version of the mbed lib (right mouse button, update in the online compiler):
Ezeuz 4:9932af380e56 43 Every unique numbered pin. That means you can use any pin as InterruptIn, but you cannot use multiple
Ezeuz 4:9932af380e56 44 pins with the same number on a different port as InterruptIn. So you can use PA_1, PB_2, PA_3, PC_4, etc.
Ezeuz 4:9932af380e56 45 But in this example you could not use also PE_1. */
dmgongora 0:79e2a8171b16 46
dmgongora 0:79e2a8171b16 47 int main()
Ezeuz 4:9932af380e56 48 {
Ezeuz 5:dae415fb4bad 49 // Servos
Ezeuz 5:dae415fb4bad 50 for (int i = 1; i <= 18; i++) {
Ezeuz 5:dae415fb4bad 51 Dynamixel servo(PC_6, PC_7, PC_4, i, 1000000);
Ezeuz 5:dae415fb4bad 52 servo.setSpeed(100);
Ezeuz 5:dae415fb4bad 53 servo.move(512); // Midddle, thus 90 deg position
Ezeuz 5:dae415fb4bad 54 }
Ezeuz 5:dae415fb4bad 55
Ezeuz 4:9932af380e56 56 float meas = 0;
Ezeuz 4:9932af380e56 57 int snd = 0;
Ezeuz 5:dae415fb4bad 58 int uvo = 0;
dmgongora 0:79e2a8171b16 59
Ezeuz 4:9932af380e56 60 while (1) {
Ezeuz 4:9932af380e56 61 // LCD
Ezeuz 5:dae415fb4bad 62 lcd.printf("%.2fcm\n", meas);
Ezeuz 5:dae415fb4bad 63 pc.printf("%.2fcm ", meas);
Ezeuz 5:dae415fb4bad 64
Ezeuz 5:dae415fb4bad 65 lcd.printf("s%d u%d\n", snd, uvo);
Ezeuz 5:dae415fb4bad 66 pc.printf("s%d u%d\n", snd, uvo);
Ezeuz 4:9932af380e56 67
Ezeuz 4:9932af380e56 68 // IR
Ezeuz 4:9932af380e56 69 meas = ir.read(); // Converts and read the analog input value (value from 0.0 to 1.0)
Ezeuz 5:dae415fb4bad 70 meas = ((1-meas)*26+4);
Ezeuz 4:9932af380e56 71
Ezeuz 4:9932af380e56 72 // Extinguisher or 12V output
Ezeuz 4:9932af380e56 73 m2 = 1;
Ezeuz 4:9932af380e56 74 m1 = 1;
Ezeuz 4:9932af380e56 75
Ezeuz 4:9932af380e56 76 // LED
Ezeuz 4:9932af380e56 77 led1 = 1;
Ezeuz 4:9932af380e56 78 led2 = 1;
Ezeuz 4:9932af380e56 79
Ezeuz 4:9932af380e56 80 // Sound Activator
Ezeuz 4:9932af380e56 81 snd = sound.read();
Ezeuz 5:dae415fb4bad 82
Ezeuz 5:dae415fb4bad 83 // UV
Ezeuz 5:dae415fb4bad 84 uvo = uv.read();
Ezeuz 4:9932af380e56 85 }
dmgongora 0:79e2a8171b16 86 }