Final code for our 4180 Drawing Robot!

Dependencies:   4DGL-uLCD-SE gCodeParser mbed

Committer:
jford38
Date:
Tue Apr 29 21:51:29 2014 +0000
Revision:
0:40576dfac535
Child:
1:ad895d72e9ed
Before I fuck all this up.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jford38 0:40576dfac535 1 #include "mbed.h"
jford38 0:40576dfac535 2 #include "gparser.h"
jford38 0:40576dfac535 3 #include "MODSERIAL.h"
jford38 0:40576dfac535 4 #include "motor.h"
jford38 0:40576dfac535 5 #include "drawBot.h"
jford38 0:40576dfac535 6 #include "uLCD_4DGL.h"
jford38 0:40576dfac535 7
jford38 0:40576dfac535 8 #define CMD_LIST_SIZE 512
jford38 0:40576dfac535 9
jford38 0:40576dfac535 10 MODSERIAL gpc(USBTX, USBRX);
jford38 0:40576dfac535 11 uLCD_4DGL uLCD(p9, p10, p11);
jford38 0:40576dfac535 12 //G_cmd gcmd_list[CMD_LIST_SIZE]; // buffer to be filled with commands, main program retrieves commands from here
jford38 0:40576dfac535 13
jford38 0:40576dfac535 14 extern G_cmd* gcmd_list;
jford38 0:40576dfac535 15 extern list_position;
jford38 0:40576dfac535 16
jford38 0:40576dfac535 17 Motor mL(p29, p30, p26, p27, p28, p25, RIGHT_MOTOR);
jford38 0:40576dfac535 18 Motor mR(p12, p13, p16, p15, p14, p17, LEFT_MOTOR);
jford38 0:40576dfac535 19 DrawBot bot(&mL, &mR, p21, 0.5, 45.125);
jford38 0:40576dfac535 20
jford38 0:40576dfac535 21 int main() {
jford38 0:40576dfac535 22
jford38 0:40576dfac535 23 parserInit();
jford38 0:40576dfac535 24
jford38 0:40576dfac535 25 int list_pos = fillInCmdList();
jford38 0:40576dfac535 26 uLCD.printf("%d\r\n",list_pos);
jford38 0:40576dfac535 27
jford38 0:40576dfac535 28 for(int c=0; c<list_pos; c++) {
jford38 0:40576dfac535 29 G_cmd* next = gcmd_list+c;
jford38 0:40576dfac535 30 uLCD.printf("G:%d X%.2f Y%.2f Z%.2f I%.2f J%.2f\n",next->X, next->Y, next->Z, next->I,next->J,next->F);
jford38 0:40576dfac535 31 wait(10);
jford38 0:40576dfac535 32 uLCD.cls();
jford38 0:40576dfac535 33 switch(next->G) {
jford38 0:40576dfac535 34 case 0:
jford38 0:40576dfac535 35 case 1:
jford38 0:40576dfac535 36 //Draw a line.
jford38 0:40576dfac535 37 if(next->X != -1 && next->Y != -1) {
jford38 0:40576dfac535 38 bot.line_safe(next->X, next->Y);
jford38 0:40576dfac535 39 }
jford38 0:40576dfac535 40 if(next->Z > 0) {
jford38 0:40576dfac535 41 bot.pen_up();
jford38 0:40576dfac535 42 }else if(next->Z == 0) {
jford38 0:40576dfac535 43 bot.pen_down();
jford38 0:40576dfac535 44 }
jford38 0:40576dfac535 45 break;
jford38 0:40576dfac535 46 case 2:
jford38 0:40576dfac535 47 //Draw an arc or something.
jford38 0:40576dfac535 48 //bot->arc(px+i, py+j, next_cmd->X, next_cmd->Z);
jford38 0:40576dfac535 49 break;
jford38 0:40576dfac535 50 case 3:
jford38 0:40576dfac535 51 //Draw a different arc or something.
jford38 0:40576dfac535 52 break;
jford38 0:40576dfac535 53 default:
jford38 0:40576dfac535 54 break;
jford38 0:40576dfac535 55
jford38 0:40576dfac535 56 }
jford38 0:40576dfac535 57 }
jford38 0:40576dfac535 58 bot.disable();
jford38 0:40576dfac535 59 }