写字机器人.docx
《写字机器人.docx》由会员分享,可在线阅读,更多相关《写字机器人.docx(60页珍藏版)》请在冰豆网上搜索。
写字机器人
创新一机器人写字
机器人在我们的生活中应用越来越广泛,例如家务机器人、表演机器人、消防机器人、医疗机器人等。
在写字机器人的制作与创新过程中涉及到了单片机、电子技术、传感器、自动控制、电机技术、机械传动机构等相关知识。
利用单片机的可编程性、易控制、搭接电路简单、工作稳定、性能优越、价格低廉等特点,结合检测传感技术,综合应用到控制系统中,使写字机器人实现智能化。
该写字机器人可用作教师的辅助教学设备和机器人的实践设备等。
一、写字机器人的硬件设计
写字机器人的整体结构如图1所示
图1写字机器人的整体结构
1.写字机器人的X轴运动
写字机器人X轴的运动主要是通过控制底盘上的四个直流电机来实现,对单片机进行编程实现对机器人X轴的运动控制,写字机器人X轴如图2所示:
图2写字机器人X轴运动
2.写字机器人Y轴的运动
写字机器人Y轴的运动采用的抽屉的滑轨配合齿轮齿条传动机构来实现的,具体的硬件的搭接方法如图3所示:
图3Y轴的运动
单片机通过控制电机转动带动齿轮和齿条的运动来实现Y轴的上升和下降,从而实现“竖”笔画的书写
3.写字机器人Z轴的运动
写字机器人Z轴的运动采用的方法同Y轴的方法是一样的,Z轴的运动主要实现笔的进笔和出笔。
具体的硬件搭接方法如图4所示:
图4Z轴的运动
二、程序设计
1.写字机器人编程语言的选择
机器人软件开发平台可以使用LOGO语言、QBASIC语言、汇编语言、C语言四种编程语言,而LOGO语言、QBASIC语言和C语言这三种语言的编程相对比较简单,但是占用程序存储空间比较大,而要在黑板上写出“北京仪表学校”六个字需要的程序存储空间比较大,而单片机只有4K的程序存储空间,所以这三种语言是不能选择的。
最终写字机器人采用的是汇编语言,虽然汇编语言的编程相对来讲比较复杂,但是它属于底层语言(机器语言),占用空间比较小。
2.单片机存储器跨页的问题的解决
机器人软件开发平台如果采用QABSIC语言进行编程,如果程序超过存储器容量的40%后,程序就不会按照编写的程序来执行,程序将出现跑飞,其主要原因是PIC单片机的程序存储器是分页进行存储的,采用QBASIC语言进行编程无法解决分页的问题,所以只能写在第0页上,无法写到后续的存储页上,这样写的程序的容量就受到了限制,这也是为什么采用汇编语言的第二个原因。
3.写字机器人写“撇”和“捺”的处理方法
写字机器人可以在X,Y,Z三个轴上进行运动,写横和竖的笔划是很容易的,利用机器人在X轴上行走写“横”的笔划,利用机器人在Y轴上的上下移动写“竖”的笔划。
撇和捺的处理方法是利用X和Y轴同时动作的方法来实现,X轴向左运动,Y轴向下运动写“撇”的笔划;X轴向右运动,Y轴向右运动写“捺”的笔划。
4.程序流程图
1.程序清单
INCLUDE"P16F873.EQU"
;=============FlashROM中变量的地址================
NEQU20H
MEQU21H
ZHUEQU22H
CCEQU23H
ZZEQU24H
;==========入口程序===============
ORG0000H
GOTOMAIN
ORG0004H
;=======MAINPROGRAM(主程序调用)==========
MAINCALLINITIAL
;===============蔽障==============
CALLSTOPYZ
OOCALLCSQJ
BTFSCPORTB,7
GOTOOO
CALLOOO
OOOCALLCSHT
BTFSCPORTB,6
GOTOOOO
MOVLW40
MOVWFZHU
BZCALLCSQJ
DECFSZZHU,1
GOTOBZ
CALLSTOPYZ
;-----------------------------------抬笔
CALLTB
;=============北=======================
;-----------------------------------上升
MOVLW19
MOVWFZHU
BEICALLUP
DECFSZZHU,1
GOTOBEI
;-----------------------------------落笔
CALLLB0
;-----------------------------------写北字第一笔
MOVLW16
MOVWFZHU
BEI1CALLDOWN
DECFSZZHU,1
GOTOBEI1
;-----------------------------------抬笔
CALLTB0
;------------------------------------上升
MOVLW13
MOVWFZHU
BEI2CALLUP
DECFSZZHU,1
GOTOBEI2
;------------------------------------落笔
CALLLB0
;------------------------------------写北字第二笔
MOVLW35
MOVWFZHU
BEI3CALLKSHT
DECFSZZHU,1
GOTOBEI3
;------------------------------------抬笔
CALLTB0
;------------------------------------下降
MOVLW9
MOVWFZHU
BEI4CALLDOWN
DECFSZZHU,1
GOTOBEI4
;------------------------------------慢速后退
MOVLW5
MOVWFZHU
BEI5CALLMSHT
DECFSZZHU,1
GOTOBEI5
;------------------------------------落笔
CALLLB0
;------------------------------------右上
MOVLW16
MOVWFZHU
BEI6CALLXIEXIAN4
DECFSZZHU,1
GOTOBEI6
;------------------------------------抬笔
CALLTB0
;------------------------------------快速前进
MOVLW14
MOVWFZHU
BEI8CALLKSQJ
DECFSZZHU,1
GOTOBEI8
;-------------------------------------上升
MOVLW12
MOVWFZHU
BEI9CALLUP
DECFSZZHU,1
GOTOBEI9
;-------------------------------------落笔
CALLLB0
;-------------------------------------写北字第四笔
MOVLW17
MOVWFZHU
BEI10CALLDOWN
DECFSZZHU,1
GOTOBEI10
;--------------------------------------抬笔
CALLTB0
;-------------------------------------落笔
CALLLB0
;-------------------------------------快速前进
MOVLW40
MOVWFZHU
BEI11CALLKSQJ
DECFSZZHU,1
GOTOBEI11
;-------------------------------------上升
MOVLW2
MOVWFZHU
BEI12CALLUP
DECFSZZHU,1
GOTOBEI12
;--------------------------------------抬笔
CALLTB0
;-------------------------------------上升
MOVLW10
MOVWFZHU
BEI13CALLUP
DECFSZZHU,1
GOTOBEI13
;--------------------------------------慢速后退
MOVLW10
MOVWFZHU
BEI14CALLMSHT
DECFSZZHU,1
GOTOBEI14
;-------------------------------------落笔
CALLLB0
;--------------------------------------左下
MOVLW10
MOVWFZHU
BEI15CALLXIEXIAN
DECFSZZHU,1
GOTOBEI15
;--------------------------------------抬笔
CALLTB0
;------------------------------------下降
MOVLW8
MOVWFZHU
JIANGCALLDOWN
DECFSZZHU,1
GOTOJIANG
;--------------------------------------超速前进(间距)
MOVLW45
MOVWFZHU
BEI17CALLCSQJ
DECFSZZHU,1
GOTOBEI17
;=================京=======================
;--------------------------------------上升
MOVLW20
MOVWFZHU
JINGCALLUP
DECFSZZHU,1
GOTOJING
;--------------------------------------落笔
CALLLB0
;--------------------------------------写京字第1笔
MOVLW6
MOVWFZHU
JING1CALLXIEXIAN3
DECFSZZHU,1
GOTOJING1
;--------------------------------------抬笔
CALLTB0
;------------------------------------下降
MOVLW1
MOVWFZHU
JING0CALLDOWN
DECFSZZHU,1
GOTOJING0
;--------------------------------------慢速后退
MOVLW80
MOVWFZHU
JING2CALLMSHT
DECFSZZHU,1
GOTOJING2
;--------------------------------------落笔
CALLLB0
;-------------------------------------快速前进
MOVLW78
MOVWFZHU
JING3CALLKSQJ
DECFSZZHU,1
GOTOJING3
;--------------------------------------抬笔
CALLTB0
;--------------------------------------快速后退
MOVLW50
MOVWFZHU
JING4CALLKSHT
DECFSZZHU,1
GOTOJING4
;------------------------------------下降
MOVLW2
MOVWFZHU
JING5CALLDOWN
DECFSZZHU,1
GOTOJING5
;--------------------------------------落笔
CALLLB0
;------------------------------------下降
MOVLW4
MOVWFZHU
JING6CALLDOWN
DECFSZZHU,1
GOTOJING6
;-------------------------------------快速前进
MOVLW47
MOVWFZHU
JING7CALLKSQJ
DECFSZZHU,1
GOTOJING7
;--------------------------------------上升
MOVLW5
MOVWFZHU
JING8CALLUP
DECFSZZHU,1
GOTOJING8
;-------------------------------------快速后退
MOVLW47
MOVWFZHU
JING9CALLKSHT
DECFSZZHU,1
GOTOJING9
;--------------------------------------抬笔
CALLTB0
;------------------------------------下降
MOVLW4
MOVWFZHU
JING10CALLDOWN
DECFSZZHU,1
GOTOJING10
;-------------------------------------慢速前进
MOVLW40
MOVWFZHU
JING11CALLMSQJ
DECFSZZHU,1
GOTOJING11
;--------------------------------------落笔
CALLLB0
;------------------------------------下降
MOVLW8
MOVWFZHU
JING12CALLDOWN
DECFSZZHU,1
GOTOJING12
;--------------------------------------抬笔
CALLTB0
;--------------------------------------落笔
CALLLB0
;------------------------------------左上
MOVLW6
MOVWFZHU
JING13CALLXIEXIAN2
DECFSZZHU,1
GOTOJING13
;--------------------------------------抬笔
CALLTB0
;--------------------------------------上升
MOVLW5
MOVWFZHU
JING14CALLUP
DECFSZZHU,1
GOTOJING14
;--------------------------------------落笔
CALLLB0
;------------------------------------左下
MOVLW8
MOVWFZHU
JING15CALLXIEXIAN
DECFSZZHU,1
GOTOJING15
;--------------------------------------抬笔
CALLTB0
;-------------------------------------快速前进
MOVLW42
MOVWFZHU
JING16CALLKSQJ
DECFSZZHU,1
GOTOJING16
;--------------------------------------上升
MOVLW2
MOVWFZHU
JING17CALLUP
DECFSZZHU,1
GOTOJING17
;--------------------------------------落笔
CALLLB0
;------------------------------------右下
MOVLW10
MOVWFZHU
JING18CALLXIEXIAN3
DECFSZZHU,1
GOTOJING18
;--------------------------------------抬笔
CALLTB0
;------------------------------------下降
MOVLW4
MOVWFZHU
JING00CALLDOWN
DECFSZZHU,1
GOTOJING00
;-------------------------------------超速前进(间距)
MOVLW50
MOVWFZHU
JING19CALLCSQJ
DECFSZZHU,1
GOTOJING19
;======================仪======================
;--------------------------------------上升
MOVLW18
MOVWFZHU
YICALLUP
DECFSZZHU,1
GOTOYI
;--------------------------------------落笔
CALLLB0
;------------------------------------左下
MOVLW18
MOVWFZHU
YI1CALLXIEXIAN
DECFSZZHU,1
GOTOYI1
;--------------------------------------抬笔
CALLTB0
;-------------------------------------快速前进
MOVLW30
MOVWFZHU
YI2CALLKSQJ
DECFSZZHU,1
GOTOYI2
;--------------------------------------上升
MOVLW3
MOVWFZHU
YI3CALLUP
DECFSZZHU,1
GOTOYI3
;--------------------------------------落笔
CALLLB0
;-------------------------------------下降
MOVLW13
MOVWFZHU
YI4CALLDOWN
DECFSZZHU,1
GOTOYI4
;--------------------------------------抬笔
CALLTB0
;-------------------------------------快速前进
MOVLW75
MOVWFZHU
YI5CALLKSQJ
DECFSZZHU,1
GOTOYI5
;--------------------------------------上升
MOVLW11
MOVWFZHU
YI6CALLUP
DECFSZZHU,1
GOTOYI6
;--------------------------------------落笔
CALLLB0
;------------------------------------左下
MOVLW23
MOVWFZHU
YI7CALLXIEXIAN
DECFSZZHU,1
GOTOYI7
;--------------------------------------抬笔
CALLTB0
;--------------------------------------上升
MOVLW6
MOVWFZHU
YI8CALLUP
DECFSZZHU,1
GOTOYI8
;--------------------------------------落笔
CALLLB0
;------------------------------------右下
MOVLW23
MOVWFZHU
YI9CALLXIEXIANA
DECFSZZHU,1
GOTOYI9
;--------------------------------------抬笔
CALLTB0
;--------------------------------------上升
MOVLW9
MOVWFZHU
YI10CALLUP
DECFSZZHU,1
GOTOYI10
;-------------------------------------快速后退
MOVLW45
MOVWFZHU
YI11CALLKSHT
DECFSZZHU,1
GOTOYI11
;--------------------------------------落笔
CALLLB0
;------------------------------------右下
MOVLW4
MOVWFZHU
YI12CALLXIEXIAN3
DECFSZZHU,1
GOTOYI12
;--------------------------------------抬笔
CALLTB0
;-------------------------------------超速前进(间距)
MOVLW50
MOVWFZHU
YI14CALLCSQJ
DECFSZZHU,1
GOTOYI14
;======================表====================
;--------------------------------------上升
MOVLW3
MOVWFZHU
BIAOCALLUP
DECFSZZHU,1
GOTOBIAO
;--------------------------------------落笔
CALLLB0
;-------------------------------------快速前进
MOVLW60
MOVWFZHU
BIAO1CALLKSQJ
DECFSZZHU,1
GOTOBIAO1
;--------------------------------------抬笔
CALLTB0
;-----------