Malay
颜色选择
阳光橙
深夜黑
天空蓝
葡萄紫
薄荷绿
深海蓝
首页
论坛
佳礼报道
新闻
搜索
123
返回列表 发新帖
4998
查看
46
回复

2轮平衡ROBOT(更新)

[复制链接]

楼主: 高明       显示全部楼层   阅读模式

发表于 19-12-2009 08:04 PM | 显示全部楼层
本帖最后由 啊寺 于 19-12-2009 08:11 PM 编辑

#include "16F877A.h"
#use delay(clock=10000000)


//PIN_A1 LEFT
//PIN_A2 RIGHT
//PIN_A3 FORWARD
//PIN_A4 BACKWARD
//PIN_A5 ON/OFF
//

void main()

{

int on;
on = 0;

while(1)

{
if(input(PIN_A5)==1&&on==0)
{
on = 1;
}
else if(input(PIN_A5)==1&&on==1)
{
on = 0;
}

//If switch on
if(on == 1)
{
        // If press left, left D3,D5,D7 on together
        if(input(PIN_A1)==1)
        {
        output_high(PIN_D3);
        output_high(PIN_D5);
        output_high(PIN_D7);
        delay_ms(50);            // IR resense time
        }
        // If press right, right D3,D4 and D6 on together
        else if(input(PIN_A2)==1)
        {
        output_high(PIN_D3);
        output_high(PIN_D4);
        output_high(PIN_D6);
        delay_ms(50);           // IR resense time
        }
        // If press forward, Forward D3,D5,D6 on together
        else if(input(PIN_A3)==1)
        {
        output_high(PIN_D3);
        output_high(PIN_D5);
        output_high(PIN_D6);
        delay_ms(50);            // IR resense time
        }
        // If press backward, Backward D3,D4 and D7 on together
        else if(input(PIN_A4)==1)
        {
        output_high(PIN_D3);
        output_high(PIN_D4);
        output_high(PIN_D7);
        delay_ms(50);           // IR resense time
        }

        // Forward D3,D5,D6 on together
        if(input(PIN_C4)==1)
        {
        output_high(PIN_D3);
        output_high(PIN_D5);
        output_high(PIN_D6);
        delay_us(50);            // IR resense time
        }

        // Backward D3,D4 and D7 on together
        if(input(PIN_C5)==1)
        {
        output_high(PIN_D3);
        output_high(PIN_D4);
        output_high(PIN_D7);
        delay_ms(50);           // IR resense time
        }

}



}
请问这样可以吗?我把它转换成c language le... 请问有什么可以改进的地方吗? btw , 我普通的sensor 大概只能量3cm...  因为我不打算买Sharp GP2Y0A21YK , over budget le .. 请问有什么办法可以解决吗?
回复

使用道具 举报

发表于 22-12-2009 03:32 PM | 显示全部楼层
请问这样可以吗?我把它转换成c language le... 请问有什么可以改进的地方吗?

啊寺 发表于 19-12-2009 08:04 PM


你的程序只有 if-else 的 algorithm, 这是行不通的。请看 38#:因为2轮平衡机器人的程序,不是简单的 if else 罢了,而是需要一个 closed loop control system (PID, fuzzy 之类)。

btw , 我普通的sensor 大概只能量3cm...  因为我不打算买Sharp GP2Y0A21YK , over budget le .. 请问有什么办法可以解决吗?


普通的 sensor 是应该不可以的。因为当表面的颜色不一样的时候,你拿到的 reading 是不一样的。
回复

使用道具 举报

发表于 25-12-2009 12:43 AM | 显示全部楼层
回复 42# waiweng83
真的如你所说,全部part能functino, 除了我的servomotor=.=" , 完全没反应。但是我单独test motor driver board 的时候,是可以function de. 我完全没有头绪些programming 了==
回复

使用道具 举报

发表于 29-12-2009 12:09 PM | 显示全部楼层
你是用什么 servo motor?航模用的?经过改装了的?
回复

使用道具 举报

发表于 6-1-2010 12:03 AM | 显示全部楼层
本帖最后由 啊寺 于 6-1-2010 12:50 AM 编辑

回复 44# waiweng83


   我用的事cytron c40s 的,在pasar road 买的咯,一套加轮子^^
回复

使用道具 举报

发表于 8-1-2010 01:17 PM | 显示全部楼层
请问有没有ieee 质料参考?
回复

使用道具 举报

发表于 18-1-2010 10:07 AM | 显示全部楼层
回复  waiweng83


   我用的事cytron c40s 的,在pasar road 买的咯,一套加轮子^^
啊寺 发表于 6-1-2010 12:03 AM



是普通的 servo 还是已经改成可以360度转的 servo?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册 | 登入

本版积分规则

 WeChat
 CARI App
Get it FREE Google play
 Instagram
cari_malaysia
FOLLOW
- 版权所有 © 1996-2019 Cari Internet Sdn Bhd 佳礼网络有限公司 (483575-W) -
Private Cloud provided by IPSERVERONE
0.170755s Gzip On
快速回复 返回顶部 返回列表