Motor control for robotic arm

Dependencies:   MCP23017 WattBob_TextLCD mbed

Fork of Balanced Arm by Balanced Arm

Committer:
Hamilton252
Date:
Fri Jan 29 17:38:18 2016 +0000
Revision:
10:d7cce35b7bfd
Parent:
9:87558e7cfecb
Child:
11:7f74fb17c328
New Command array

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ADAMSTRUTT 7:40d7d88deba3 1 //*********************************************************************
ADAMSTRUTT 7:40d7d88deba3 2 // Author: Adam Strutt
ADAMSTRUTT 7:40d7d88deba3 3 // File: (PS2C.cpp) PlayStation 2 controller
ADAMSTRUTT 7:40d7d88deba3 4 // Version: 1.0v
ADAMSTRUTT 7:40d7d88deba3 5 // Date: 11/12/2015
ADAMSTRUTT 7:40d7d88deba3 6 //*********************************************************************
ADAMSTRUTT 7:40d7d88deba3 7
ADAMSTRUTT 7:40d7d88deba3 8 #include <string>
ADAMSTRUTT 7:40d7d88deba3 9 #include "HandShake.h"
ADAMSTRUTT 7:40d7d88deba3 10 #include "mbed.h"
ADAMSTRUTT 7:40d7d88deba3 11 #include "MCP23017.h"
ADAMSTRUTT 7:40d7d88deba3 12 #include "WattBob_TextLCD.h"
ADAMSTRUTT 7:40d7d88deba3 13
wm70 9:87558e7cfecb 14 #include "AX12.h"
wm70 9:87558e7cfecb 15
ADAMSTRUTT 7:40d7d88deba3 16
ADAMSTRUTT 7:40d7d88deba3 17
ADAMSTRUTT 7:40d7d88deba3 18 MCP23017 *par_port1;
ADAMSTRUTT 7:40d7d88deba3 19 WattBob_TextLCD *lcd1;
ADAMSTRUTT 7:40d7d88deba3 20
ADAMSTRUTT 7:40d7d88deba3 21 //*********************************************************************
ADAMSTRUTT 7:40d7d88deba3 22 // Object: PC_HandShake
ADAMSTRUTT 7:40d7d88deba3 23 // Description: To create a HandShake object.
ADAMSTRUTT 7:40d7d88deba3 24 //*********************************************************************
ADAMSTRUTT 7:40d7d88deba3 25
wm70 9:87558e7cfecb 26 PC_HandShake::PC_HandShake(Serial& PCbus, AX12& ax12)
wm70 9:87558e7cfecb 27 : _PCbus(PCbus), _ax12 (ax12){
ADAMSTRUTT 7:40d7d88deba3 28
ADAMSTRUTT 7:40d7d88deba3 29 //*********************************************************************
ADAMSTRUTT 7:40d7d88deba3 30 // Description:Setting up the LCD display and turning on LCD display
ADAMSTRUTT 7:40d7d88deba3 31 // Pins: p8, p10
ADAMSTRUTT 7:40d7d88deba3 32 //*********************************************************************
ADAMSTRUTT 7:40d7d88deba3 33 par_port1 = new MCP23017(p9, p10, 0x40);
ADAMSTRUTT 7:40d7d88deba3 34 par_port1->config(0x0F00, 0x0F00, 0x0F00);
ADAMSTRUTT 7:40d7d88deba3 35 lcd1 = new WattBob_TextLCD(par_port1);
ADAMSTRUTT 7:40d7d88deba3 36 par_port1->write_bit(1,BL_BIT);
ADAMSTRUTT 7:40d7d88deba3 37 }
ADAMSTRUTT 7:40d7d88deba3 38
ADAMSTRUTT 7:40d7d88deba3 39 //*********************************************************************
ADAMSTRUTT 7:40d7d88deba3 40 // Method: PC_Connect
ADAMSTRUTT 7:40d7d88deba3 41 // Description: This method is used to connect the PC to the mbed.
ADAMSTRUTT 7:40d7d88deba3 42 //*********************************************************************
ADAMSTRUTT 7:40d7d88deba3 43
ADAMSTRUTT 7:40d7d88deba3 44 void PC_HandShake::PC_Connect(void){
ADAMSTRUTT 7:40d7d88deba3 45 lcd1->cls();
ADAMSTRUTT 7:40d7d88deba3 46 lcd1->printf("Connecting");
ADAMSTRUTT 7:40d7d88deba3 47 lcd1->locate(1,0);
ADAMSTRUTT 7:40d7d88deba3 48 lcd1->printf("to PC");
ADAMSTRUTT 7:40d7d88deba3 49 wait(2);
ADAMSTRUTT 7:40d7d88deba3 50 lcd1->cls();
ADAMSTRUTT 7:40d7d88deba3 51 lcd1->printf("Waiting\n");
Hamilton252 10:d7cce35b7bfd 52 while('s' != _PCbus.getc()){
ADAMSTRUTT 7:40d7d88deba3 53 }
Hamilton252 10:d7cce35b7bfd 54 while('s' != _PCbus.getc()){
ADAMSTRUTT 7:40d7d88deba3 55 }
ADAMSTRUTT 7:40d7d88deba3 56 lcd1->cls();
ADAMSTRUTT 7:40d7d88deba3 57 lcd1->printf("Conneced\n");
ADAMSTRUTT 7:40d7d88deba3 58 wait(2);
wm70 9:87558e7cfecb 59 }
wm70 9:87558e7cfecb 60
wm70 9:87558e7cfecb 61 void PC_HandShake::PC_Read(void){
wm70 9:87558e7cfecb 62 lcd1->cls();
wm70 9:87558e7cfecb 63 lcd1->printf("Reading");
wm70 9:87558e7cfecb 64 lcd1->locate(1,0);
wm70 9:87558e7cfecb 65 lcd1->printf("to PC");
wm70 9:87558e7cfecb 66 wait(2);
wm70 9:87558e7cfecb 67 lcd1->cls();
wm70 9:87558e7cfecb 68 lcd1->printf("Waiting\n");
Hamilton252 10:d7cce35b7bfd 69 char Command[8];
Hamilton252 10:d7cce35b7bfd 70 int x;
wm70 9:87558e7cfecb 71
wm70 9:87558e7cfecb 72 while(_PCbus.readable()==0){}
Hamilton252 10:d7cce35b7bfd 73 for(x=0;x<=8;x++)
Hamilton252 10:d7cce35b7bfd 74 {
Hamilton252 10:d7cce35b7bfd 75 Command[x] = _PCbus.getc();
Hamilton252 10:d7cce35b7bfd 76 }
Hamilton252 10:d7cce35b7bfd 77
Hamilton252 10:d7cce35b7bfd 78 if(Command[0]=='s')
Hamilton252 10:d7cce35b7bfd 79 {
Hamilton252 10:d7cce35b7bfd 80 if (Command[1]=='c')
Hamilton252 10:d7cce35b7bfd 81 if(Command[2]=='1')
Hamilton252 10:d7cce35b7bfd 82 _ax12.SetGoal(100);
Hamilton252 10:d7cce35b7bfd 83
Hamilton252 10:d7cce35b7bfd 84 else if (Command[2]=='0')
Hamilton252 10:d7cce35b7bfd 85 _ax12.SetGoal(0);
Hamilton252 10:d7cce35b7bfd 86
Hamilton252 10:d7cce35b7bfd 87 else return;
Hamilton252 10:d7cce35b7bfd 88
Hamilton252 10:d7cce35b7bfd 89 }
wm70 9:87558e7cfecb 90
Hamilton252 10:d7cce35b7bfd 91 //while('s' != _PCbus.getc()){
Hamilton252 10:d7cce35b7bfd 92 // }
Hamilton252 10:d7cce35b7bfd 93 // while(_PCbus.readable()==0){}
Hamilton252 10:d7cce35b7bfd 94 // char _byteOne=_PCbus.getc();
Hamilton252 10:d7cce35b7bfd 95 //
Hamilton252 10:d7cce35b7bfd 96 // while(_PCbus.readable()==0){}
Hamilton252 10:d7cce35b7bfd 97 // char _byteTwo=_PCbus.getc();
Hamilton252 10:d7cce35b7bfd 98 //
Hamilton252 10:d7cce35b7bfd 99 // if (_byteOne=='s'){
Hamilton252 10:d7cce35b7bfd 100 // }
Hamilton252 10:d7cce35b7bfd 101 // else if (_byteOne=='c')
Hamilton252 10:d7cce35b7bfd 102 // {
Hamilton252 10:d7cce35b7bfd 103 // switch(_byteTwo)
Hamilton252 10:d7cce35b7bfd 104 // {
Hamilton252 10:d7cce35b7bfd 105 // case '0':
Hamilton252 10:d7cce35b7bfd 106 // _ax12.SetGoal(100);
Hamilton252 10:d7cce35b7bfd 107 // break;
Hamilton252 10:d7cce35b7bfd 108 // case '1':
Hamilton252 10:d7cce35b7bfd 109 // _ax12.SetGoal(0);
Hamilton252 10:d7cce35b7bfd 110 // break;
Hamilton252 10:d7cce35b7bfd 111 // }
Hamilton252 10:d7cce35b7bfd 112 // }
wm70 9:87558e7cfecb 113
wm70 9:87558e7cfecb 114
wm70 9:87558e7cfecb 115 lcd1->cls();
wm70 9:87558e7cfecb 116 lcd1->printf("Reading\n");
wm70 9:87558e7cfecb 117 wait(2);
ADAMSTRUTT 7:40d7d88deba3 118 }