找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 9159|回复: 21

原创颜色分类程序,呆颜色自动识别功能

[复制链接]
发表于 2013-10-23 17:59:51 | 显示全部楼层 |阅读模式
颜色分类机器人 NXC程序,自己写的,带有颜色自动分辨功能
如果不想要开头的汉字显示,可注销掉center();这个函数

/*
      NXT机器人 分拣程序  版本2.0  boylong制作 2013.10.23  15:55
*/
#include "center.h"                //汉字显示
int numb_1 = 0;
int numb_2 = 0;
int numb_3 = 0;
int biaozhi = 1;
#define Null  28                      //空积木判断
void Set_all(void);                  // 启动外围端口设置
void display(int i,int j,int k);    //样本数据显示
int fangzhi(int data);               //积木放置程序
void good(void);                     // 样本颜色读取程序
task main()
{
   int test;
   Set_all();
   center();    // 信息显示
   good();
   display(numb_1,numb_2,numb_3);
   while(1){
   
            test = Sensor(IN_3);
           if( ( test > (numb_1 - 2) ) && ( test < (numb_1 + 2) )){
                       PlayToneEx(3000,500,100,0);
                       fangzhi(1);
           }
           
           if( ( test > (numb_2 - 2) ) && ( test < (numb_2 + 2) )){
                       PlayToneEx(3000,500,100,0);
                       fangzhi(2);
           }
            
           if( ( test > (numb_3 - 2) ) && ( test < (numb_3 + 2) )){
                       PlayToneEx(3000,500,100,0);
                       fangzhi(3);
           }
           
      }
}
void Set_all(void)
{
     SetSensorLight(IN_3,1);
     SetSensorTouch(IN_1);
}

void display(int i,int j,int k)
{
     TextOut(8,55,"A:");
     NumOut(20,55,i);
     
     TextOut(8,35,"B:");
     NumOut(20,35,j);
     
     TextOut(8,20,"C:");
     NumOut(20,20,k);
}
int fangzhi(int data)
{
     if(data == 1){
             RotateMotor(OUT_A,70,-360);
     
             RotateMotor(OUT_B,70,320);
             RotateMotor(OUT_C,100,-1600);
             RotateMotor(OUT_B,70,-320);
            
             return 0;
     }
     
     
     if(data == 2){
             RotateMotor(OUT_A,70,-360);
     
             RotateMotor(OUT_B,70,-320);
             RotateMotor(OUT_C,100,-1600);
             RotateMotor(OUT_B,70,320);
            
             return 0;
     }
     if(data == 3){
             RotateMotor(OUT_A,70,-360);
             RotateMotor(OUT_C,100,-1600);
             return 0;
     }
}

void good(void)
{
     int k = 1;
     int m = 1;
     
     while(k){
              numb_1 = Sensor(IN_3);
              if(numb_1 < Null){
                     TextOut(8,32,"NULL 1");
              }
              else  {
                      k = 0;
                      TextOut(8,32,"Detect..1") ;
               }
     }
     fangzhi(1);
     PlayToneEx(3000,500,100,0);
     k = 1;
     m = 1;
     while(k){
              numb_2 =  Sensor(IN_3);
              
              while(m){
                     if(numb_2 < Null){
                               TextOut(8,32,"NULL 2");
                               }
                     else
                               m = 0;
              }
              
              if((numb_2 > numb_1 - 2) && (numb_2 < numb_1 + 2))
              {
                PlayToneEx(3000,500,100,0);
                fangzhi(1);
                TextOut(8,32,"Detect..2") ;
                ;
              }
              else{
                  PlayToneEx(3000,500,100,0);
                  numb_2 = Sensor(IN_3);
                  fangzhi(2);
                  k = 0;
              }
     
     }
     k = 1;
     m = 1;
     while(k){
     
              numb_3 =  Sensor(IN_3);
              while(m){
                     if(numb_3 < Null){
                               TextOut(8,32,"NULL 3");
                               }
                     else
                               m = 0;
              }
              if((numb_3 > numb_1 - 2) && (numb_3 < numb_1 + 2))
              {
                PlayToneEx(3000,500,100,0);
                TextOut(8,32,"Detect..3") ;
                fangzhi(1);
               
              }
              else{
                      if((numb_3 > numb_2 - 2) && (numb_3 < numb_2 + 2))
                       {
                             PlayToneEx(3000,500,100,0);
                             TextOut(8,32,"Detect..3") ;
                             fangzhi(2);
                       }
                       else{
                             PlayToneEx(3000,500,100,0);
                             numb_3 = Sensor(IN_3);
                             fangzhi(3);
                             k = 0;
                       }
              }
     }
}


程序包.rar

2.06 KB, 下载次数: 30

源代码

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2013-10-24 08:52:00 | 显示全部楼层
曾经非常熟悉的 标准c 语言啊
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-10-24 12:41:56 | 显示全部楼层
做功冲程 发表于 2013-10-24 08:52
曾经非常熟悉的 标准c 语言啊

献丑了哈
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-12-8 15:14:49 | 显示全部楼层
有了我不再出现0回复~
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-12-8 15:15:15 | 显示全部楼层
专业挽尊!!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-12-8 15:18:13 | 显示全部楼层

啥意思啊
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-12-8 15:18:37 | 显示全部楼层
asdfghjkl 发表于 2013-12-8 15:14
有了我不再出现0回复~

好吧,谢啦
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-12-31 23:06:35 | 显示全部楼层
nxc也能带头文件啊,头文件放什么路径里?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2014-1-1 00:57:04 | 显示全部楼层
WALL·E 发表于 2013-12-31 23:06
nxc也能带头文件啊,头文件放什么路径里?

就放在nxc文件里面啊,同一个文件夹即可
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2014-1-1 21:42:13 | 显示全部楼层
就开个TXT写里,后缀叫H,然后跟NXC程序放一块,include一下就行了?
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2014-1-2 00:08:30 | 显示全部楼层
WALL·E 发表于 2014-1-1 21:42
就开个TXT写里,后缀叫H,然后跟NXC程序放一块,include一下就行了?

对啊,c语言的include
就是这样的啊,但是要用双引号
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2014-1-2 09:34:00 | 显示全部楼层
太好了,我试试的,正愁NXC没有打包的按键触碰一次的等待指令呢,正计划怎么自己做头文件呢,还有屏幕上的大字显示也是
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2014-1-2 09:50:00 | 显示全部楼层
我再请教下,这子函数头里的void跟sub有什么区别
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2014-1-2 11:14:05 | 显示全部楼层
WALL·E 发表于 2014-1-2 09:50
我再请教下,这子函数头里的void跟sub有什么区别

void c语言里面的关键字,是空类型的意思,sub是汇编里面的加法指令,两者不是一门语言的关键字,无法比较的,sub的操作属于低级别操作,我这样回到不知道你明白没有。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2014-1-2 11:14:37 | 显示全部楼层
WALL·E 发表于 2014-1-2 09:34
太好了,我试试的,正愁NXC没有打包的按键触碰一次的等待指令呢,正计划怎么自己做头文件呢,还有屏幕上的 ...

你要不要,汉字显示程序啊,我可以给你
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

QQ|手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-5-6 04:46 , Processed in 0.099993 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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