h. Hình ảnh của module ñ iều khiển
3.3.5.3. Xây dựng giao diện phần mềm ñ iều khiển tự ñộ ng cho robot
ðể ñiều khiển tự ñộng một cách tuần tự theo sự sắp xếp cài ñặt. ðề tài dùng giải pháp ñưa ra các lệnh ñiều khiển, và chương trình tựñộng là lần lượt thực hiện các lệnh ñiều khiển ñó rồi quay lại lệnh ñầu tiên.
Các lệnh phải lần lượt thực hiện từ 1 ñến hết, lệnh ñiều khiển robot ñi
ñến các ñiểm. ðể có thể thực hiện ñược các lệnh thì cần có bản dữ liệu của lệnh. Các giá trị trong bảng dữ liệu lệnh và vị trí robot cần phải di chuyển
ñến.
Trong khi thực hiện cấu trúc các lệnh cho robot, ñưa ra 2 loại lênh là: Lệnh di chuyển ñến các ñiểm, và lệnh trễ thời gian cho robot, ñề tài thành lập một chương trình thực hiện lệnh cho robot với lưu ñồ thuật toán như hình 3.35.
Việc thực hiện lệnh ñã ñược giải quyết, nhưng ñể có thểñảm bảo chương trình ñiều khiển tựñộng vẫn cần phải có những khâu cơ bản là:
• Xử lý nút bấm: Khâu này chỉ có duy nhất một nút thoát khỏi chương trình.
• Xử lý hiển thị: Phần này vẫn ñòi hỏi phải có cái nhìn tổng thể nên vẫn phải hiển thị tất cả các thông số lên màn hình.
Hình 3.35: Lưu ñồ thuật toán thực hiện lệnh của robot
Vậy tôi xin ñưa ra mã lệnh của chương trình:
char but_Auto=1; void Auto_display(void) {
if (add_EN_display[2]==bat) { A_Program();
if (but_Auto==3) but_Auto=1; if (but_Auto==0) but_Auto=2; if (timer_display>=100) {timer_display=0;
//======hien giao dien================ lcd_gotoxy(0,0); lcd_putsf("VT");
lcd_gotoxy(0,1); itoa(R_vitri_diden+1,lcd_buffer);lcd_puts(lcd_buffer);lcd_putsf(" "); lcd_gotoxy(3,0); lcd_putsf("TD_DC "); lcd_gotoxy(10,0); lcd_putsf("TD_ST"); lcd_gotoxy(3,1); ftoa(td(),2,lcd_buffer); lcd_puts(lcd_buffer);
lcd_gotoxy(10,1); ftoa(goc_ht(),1,lcd_buffer); lcd_puts(lcd_buffer); //==========
lcd_gotoxy(0,2); lcd_putsf("Than "); lcd_gotoxy(5,2); lcd_putsf("c_tay "); lcd_gotoxy(11,2); lcd_putsf("b_tay");
//==========
lcd_gotoxy(0,3); if (xilanh_than==1) lcd_putsf("cao "); else lcd_putsf("thap"); lcd_gotoxy(5,3); if (xilanh_canhtay==1) lcd_putsf("ra "); else lcd_putsf("vao"); lcd_gotoxy(11,3);if (xilanh_bantay==1) lcd_putsf("kep"); else lcd_putsf("nha"); if (but_Auto==1) {lcd_gotoxy(2,0); lcd_putsf(">");};
if (but_Auto==2) {lcd_gotoxy(9,0); lcd_putsf(">");}; }
//xu ly nut bam trong giao dien
if ((nut[nut_up]==an)&&(tt_nut_up==nha))
{ tt_nut_up=an; but_Auto--;lcd_gotoxy(2,0);lcd_putsf(" "); lcd_gotoxy(9,0); lcd_putsf(" ");
};
if ((nut[nut_down]==an)&&(tt_nut_down==nha))
{ tt_nut_down=an; but_Auto++; lcd_gotoxy(2,0);lcd_putsf(" ");lcd_gotoxy(9,0); lcd_putsf(" "); };
if ((nut[nut_enter]==an)&&(tt_nut_enter==nha))
{ tt_nut_enter=an; if (but_Auto==1) {EN_display(10); lcd_clear();}; if (but_Auto==2) {EN_display(11);lcd_clear();}; };
if (nut[nut_up]==nha) tt_nut_up=nha; if (nut[nut_down]==nha) tt_nut_down=nha; if (nut[nut_enter]==nha) tt_nut_enter=nha;
if((nut[nut_exit]==an)&&(tt_nut_exit==nha)){tt_nut_exit=an;EN_display(0);lcd_clear(); }; if (nut[nut_exit]==nha) tt_nut_exit=nha;