标题:
简单机器人0上台防掉台小程序
[打印本页]
作者:
漂洋过海
时间:
2017-7-21 15:07
标题:
简单机器人0上台防掉台小程序
机器人大赛,小白参赛
所有资料51hei提供下载:
Debug.zip
(1.85 KB, 下载次数: 7)
2017-7-21 15:06 上传
点击文件名下载附件
下载积分: 黑币 -5
0上台防掉台源程序如下:
#include "Apps/SystemTask.h"
uint8 SERVO_MAPPING[5] = {1,2,3,4,5};
int main()
{
int ad[6] = {0};
int io[12] = {0};
int ave = 0;
MFInit();
MFInitServoMapping(&SERVO_MAPPING[0],5);
MFSetPortDirect(0x00000000);
MFSetServoMode(1,1);
MFSetServoMode(2,1);
MFSetServoMode(3,0);
MFSetServoMode(4,0);
MFSetServoMode(5,0);
//初始化状态
MFSetServoRotaSpd(1,0);
MFSetServoRotaSpd(2,0);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
//io1
io[1] = MFGetDigiInput(1);
while (1)
{
if (io[1]==0)
{
break ;
}
//io1
io[1] = MFGetDigiInput(1);
}
//立爪
MFSetServoRotaSpd(1,0);
MFSetServoRotaSpd(2,0);
MFSetServoPos(3,280,512);
MFSetServoPos(4,825,512);
MFSetServoPos(5,116,512);
MFServoAction();
DelayMS(1000);
//立爪前进
MFSetServoRotaSpd(1,400);
MFSetServoRotaSpd(2,-400);
MFSetServoPos(3,280,512);
MFSetServoPos(4,825,512);
MFSetServoPos(5,116,512);
MFServoAction();
DelayMS(1000);
//放前爪
MFSetServoRotaSpd(1,400);
MFSetServoRotaSpd(2,-400);
MFSetServoPos(3,721,512);
MFSetServoPos(4,825,512);
MFSetServoPos(5,116,512);
MFServoAction();
DelayMS(1000);
//放后爪
MFSetServoRotaSpd(1,400);
MFSetServoRotaSpd(2,-400);
MFSetServoPos(3,280,512);
MFSetServoPos(4,300,512);
MFSetServoPos(5,649,512);
MFServoAction();
DelayMS(1000);
//台上状态
MFSetServoRotaSpd(1,400);
MFSetServoRotaSpd(2,-400);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
DelayMS(1000);
while (1)
{
//io3
io[3] = MFGetDigiInput(3);
//io4
io[4] = MFGetDigiInput(4);
//io5
io[5] = MFGetDigiInput(5);
//io6
io[6] = MFGetDigiInput(6);
//台上状态
MFSetServoRotaSpd(1,600);
MFSetServoRotaSpd(2,-600);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
//io3
io[3] = MFGetDigiInput(3);
if (io[3]==1)
{
//后退
MFSetServoRotaSpd(1,-400);
MFSetServoRotaSpd(2,400);
MFSetServoPos(3,671,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
DelayMS(400);
//右转
MFSetServoRotaSpd(1,700);
MFSetServoRotaSpd(2,700);
MFSetServoPos(3,671,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
DelayMS(400);
//台上状态
MFSetServoRotaSpd(1,400);
MFSetServoRotaSpd(2,-400);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
}
else
{
//io4
io[4] = MFGetDigiInput(4);
if (io[4]==1)
{
//后退
MFSetServoRotaSpd(1,-400);
MFSetServoRotaSpd(2,400);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
DelayMS(400);
//左转
MFSetServoRotaSpd(1,-700);
MFSetServoRotaSpd(2,-700);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
DelayMS(400);
//台上状态
MFSetServoRotaSpd(1,400);
MFSetServoRotaSpd(2,-400);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
}
else
{
//io5
io[5] = MFGetDigiInput(5);
if (io[5]==1)
{
//前进
MFSetServoRotaSpd(1,400);
MFSetServoRotaSpd(2,-400);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
DelayMS(400);
//右转
MFSetServoRotaSpd(1,700);
MFSetServoRotaSpd(2,700);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
DelayMS(200);
//台上状态
MFSetServoRotaSpd(1,400);
MFSetServoRotaSpd(2,-400);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
}
else
{
//io6
io[6] = MFGetDigiInput(6);
if (io[6]==1)
{
//前进
MFSetServoRotaSpd(1,400);
MFSetServoRotaSpd(2,-400);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
DelayMS(500);
//左转
MFSetServoRotaSpd(1,-700);
MFSetServoRotaSpd(2,-700);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
DelayMS(200);
//台上状态
MFSetServoRotaSpd(1,400);
MFSetServoRotaSpd(2,-400);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
}
else
{
//io3
io[3] = MFGetDigiInput(3);
//io4
io[4] = MFGetDigiInput(4);
if ((io[3]&&io[4]==1))
{
//后退
MFSetServoRotaSpd(1,-400);
MFSetServoRotaSpd(2,400);
MFSetServoPos(3,671,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
DelayMS(1000);
//右转
MFSetServoRotaSpd(1,700);
MFSetServoRotaSpd(2,700);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
DelayMS(200);
//台上状态
MFSetServoRotaSpd(1,400);
MFSetServoRotaSpd(2,-400);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
}
else
{
//io5
io[5] = MFGetDigiInput(5);
//io6
io[6] = MFGetDigiInput(6);
if ((io[5]&&io[6]==1))
{
//后退
MFSetServoRotaSpd(1,-400);
MFSetServoRotaSpd(2,400);
MFSetServoPos(3,671,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
DelayMS(500);
//右转
MFSetServoRotaSpd(1,700);
MFSetServoRotaSpd(2,700);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
DelayMS(200);
//台上状态
MFSetServoRotaSpd(1,400);
MFSetServoRotaSpd(2,-400);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
}
else
{
//io3
io[3] = MFGetDigiInput(3);
//io5
io[5] = MFGetDigiInput(5);
if ((io[3]&&io[5]==1))
{
//后退
MFSetServoRotaSpd(1,-400);
MFSetServoRotaSpd(2,400);
MFSetServoPos(3,671,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
DelayMS(200);
//左转
MFSetServoRotaSpd(1,-700);
MFSetServoRotaSpd(2,-700);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
DelayMS(200);
//台上状态
MFSetServoRotaSpd(1,400);
MFSetServoRotaSpd(2,-400);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
}
else
{
//io4
io[4] = MFGetDigiInput(4);
//io6
io[6] = MFGetDigiInput(6);
if ((io[4]&&io[6]==1))
{
//前进
MFSetServoRotaSpd(1,400);
MFSetServoRotaSpd(2,-400);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
DelayMS(500);
//台上状态
MFSetServoRotaSpd(1,400);
MFSetServoRotaSpd(2,-400);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
}
else
{
//io3
io[3] = MFGetDigiInput(3);
//io4
io[4] = MFGetDigiInput(4);
//io5
io[5] = MFGetDigiInput(5);
if ((io[3]&&io[4]&&io[5]==1))
{
//右转
MFSetServoRotaSpd(1,700);
MFSetServoRotaSpd(2,700);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
DelayMS(200);
//台上状态
MFSetServoRotaSpd(1,400);
MFSetServoRotaSpd(2,-400);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
}
else
{
//io4
io[4] = MFGetDigiInput(4);
//io5
io[5] = MFGetDigiInput(5);
//io6
io[6] = MFGetDigiInput(6);
if ((io[4]&&io[5]&&io[6]==1))
{
//左转
MFSetServoRotaSpd(1,-700);
MFSetServoRotaSpd(2,-700);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
DelayMS(200);
//台上状态
MFSetServoRotaSpd(1,400);
MFSetServoRotaSpd(2,-400);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
}
else
{
//io1
io[1] = MFGetDigiInput(1);
if (io[1]==0)
{
DelayMS(200);
//撞击
MFSetServoRotaSpd(1,900);
MFSetServoRotaSpd(2,-900);
MFSetServoPos(3,617,512);
MFSetServoPos(4,358,512);
MFSetServoPos(5,581,512);
MFServoAction();
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
微信图片_20170721150432.png
(32.4 KB, 下载次数: 126)
下载附件
2017-7-21 15:05 上传
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1