佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

123
返回列表 发新帖
楼主: 高明

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 .. 请问有什么办法可以解决吗?
回复

使用道具 举报


ADVERTISEMENT

发表于 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 质料参考?
回复

使用道具 举报

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


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



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

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 29-3-2024 02:52 PM , Processed in 0.055713 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表