暑假的第好几周了

来源:互联网 发布:java 日志服务器搭建 编辑:程序博客网 时间:2024/09/21 09:22

这几天学到的东西


1.抢答器

抢答器终于是做好了,虽然只能对两位选手进行比赛…虽然刚开始的时候感觉,看上去,以为不是很难,但是在整个过程还是遇到了许多的问题..

抢答器在硬件连接好了以后进行了和代码的对接,结果出了许多问题…

  • 团队精神欠佳,在张俊松同学的硬件和我写的代码对接以后出现了一些问题(如:板子连上电脑后二号舵机就开始不停命令的转动,LCD屏幕闪动等);此后发生了一些事情浪费了大量的时间,做了许多无用并且重复的事情,由于我比较轴,就对自己出错的地方进行反复排查,最后发现是因为接口改变了而我的代码没有改变,非常的尴尬,然后我就悄悄的把自己的代码改了.
  • 舵机的接口了解的不清楚,在2560板子上,可以运行舵机的接口只有两个,这个知识不知道,耗费了大量的时间来排查这个错误,甚至还问学长了,最后张俊松同学发现了这个知识点,场面一度十分尴尬.

    虽然整个对接的时间花费了一下午,但我认为确实值得的,张俊松和我也都在这过程中了解了彼此,相信我们俩以后的合作花费的时间会更少.


    现在抢答器项目的一些元器件正在运送途中,到了以后抢答器项目就算完整结束了(代码我会贴在最后面,供大家参考.)

2.arduino

在完成抢答器的初代后,有过一段迷茫期,看了数据结构的第二章,敲了敲代码,也觉得无趣,就没有再看下去了,看了看网上的一些算法(回溯等),觉得非常的厉害,然而代码好长,就不是很想看了,翻了翻操作系统,找到了一个网站的视频,跟着看了几节,之后的内容因为他们的书和我的不一样,也就没有在看了,

3.日常学习两三事

最近这几天和组长在卓越二年级这个教室里学习,看到了学长学姐们做项目的态度与方法,感觉学习了很多,觉得我们这级只有我们两个,有点尴尬,很喜欢他们的这种状态,觉得这样的话进步会比自己一个劲的学有效率,他们也都很搞笑

自己在网上买了一些元器件,想试着尝试下光立方(就是那个8*8*8的一堆LED),当然啦,我怎么可能弄那么叼的东西呢,,,我想先弄个2*2*2的,大概的计划我也已经写出来了,就等着元器件了(^.^)

# include "TM1637.h"#define CLK 5    //四位数码管  //pins definitions for TM1637 and can be changed to other ports       #define DIO 6    //四位数码管`#include <SoftwareSerial.h> #include <Servo.h> Servo myservo1;  //创建一个舵机控制对象`Servo myservo2; Servo myservo3; #define txPin 5SoftwareSerial LCD = SoftwareSerial(0, txPin);// since the LCD does not send data back to the Arduino, we should only define the txPinconst int LCDdelay=10;  // conservative, 2 actually works// wbp: goto with row & columnvoid lcdPosition(int row, int col) {  LCD.write(0xFE);   //command flag  LCD.write((col + row*64 + 128));    //position   delay(LCDdelay);}void clearLCD(){  LCD.write(0xFE);   //command flag  LCD.write(0x01);   //clear command.  delay(LCDdelay);}void backlightOn() {  //s on the backlight  LCD.write(0x7C);   //command flag for backlight stuff  LCD.write(157);    //ght level.  delay(LCDdelay);}void backlightOff(){  //s off the backlight  LCD.write(0x7C);   //command flag for backlight stuff  LCD.write(128);     //ght level for off.   delay(LCDdelay);}void serCommand(){   //a general function to call the command flag for issuing all other commands     LCD.write(0xFE);}TM1637 tm1637(CLK,DIO);int pinmod1=11; //led接口int pinmod2=12;int pinmod3=13;int button1=A1;//led按钮接口int button2=A2;int button3=A3;int b1=0;   //led按钮int b2=0;int b3=0;int button0=A0; //加分按钮接口int b0=0;int a=0;  //四位数码管int b=0;   //四位数码管int c=0;   //四位数码管int d=0;   //四位数码管int k1=0;int b4=0;int button4=A4;int k2=0;int k3=0;void setup(){  pinMode(txPin, OUTPUT);  LCD.begin(9600);  backlightOn() ;  clearLCD();  lcdPosition(0,0);     Serial.begin(9600);     pinMode(button1,INPUT);      pinMode(button2,INPUT);      pinMode(button3,INPUT);       pinMode(button4,INPUT);     pinMode(pinmod1,OUTPUT);     pinMode(pinmod2,OUTPUT);     pinMode(pinmod3,OUTPUT);     pinMode(button0,INPUT);     myservo1.attach(8);     myservo2.attach(9);     myservo3.attach(10);     tm1637.init();     tm1637.set(BRIGHT_DARKEST );      //BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;}void loop(){  b1=analogRead(button1);  if(b1>1000){     for(int i=0;i<400;i++){          //i 抢答器led,蜂鸣器显示         digitalWrite(pinmod1,HIGH);         delay(1);         digitalWrite(pinmod1,LOW);         delay(1);          }      for(int j=5;j>=0;j--){          //j 倒计时显示          d=j;          tm1637.display(0,a);          tm1637.display(1,b);           tm1637.display(2,c);          tm1637.display(3,d);          delay(1000);          }                   while(1){                b0=analogRead(button0);     //k 选手分值             b4=analogRead(button4);               if(b0>1000){                  k1++;                     clearLCD();                    LCD.print(k1);                    delay(5000);                    clearLCD();                      break;                      }           if(b4>1000){                  myservo1.write(0);         // 指定舵机转向的角度                          delay(700);                      myservo1.write(90);        // 指定舵机转向的角度                       delay(1000);                       // 等待15ms让舵机到达指定位置                                break;                        }          }      }      b2=analogRead(button2);  if(b2>1000){     for(int i=0;i<400;i++){          //i 抢答器led,蜂鸣器显示         digitalWrite(pinmod2,HIGH);         delay(1);         digitalWrite(pinmod2,LOW);         delay(1);          }      for(int j=5;j>=0;j--){          //j 倒计时显示          d=j;          tm1637.display(0,a);          tm1637.display(1,b);           tm1637.display(2,c);          tm1637.display(3,d);          delay(1000);          }          while(1){                b0=analogRead(button0);     //k 选手分值             b4=analogRead(button4);           if(b0>1000){                  k2++;                     clearLCD();                    LCD.print(k2);                    delay(5000);                    clearLCD();                      break;                      }           if(b4>1000){             myservo2.write(0);         // 指定舵机转向的角度                          delay(700);                      myservo2.write(90);        // 指定舵机转向的角度                       delay(1000);                       // 等待15ms让舵机到达指定位置                                break;                        }          }      }      b3=analogRead(button3);  if(b3>1000){     for(int i=0;i<400;i++){          //i 抢答器led,蜂鸣器显示         digitalWrite(pinmod3,HIGH);         delay(1);         digitalWrite(pinmod3,LOW);         delay(1);          }      for(int j=5;j>=0;j--){          //j 倒计时显示          d=j;          tm1637.display(0,a);          tm1637.display(1,b);           tm1637.display(2,c);          tm1637.display(3,d);          delay(1000);          }          while(1){             b0=analogRead(button0);     //k 选手分值             b4=analogRead(button4);           if(b0>1000){                  k3++;                     clearLCD();                    LCD.print(k3);                    delay(5000);                    clearLCD();                      break;                      }           if(b4>1000){                       myservo3.write(0);         // 指定舵机转向的角度                          delay(700);                        myservo3.write(90);        // 指定舵机转向的角度                       delay(1000);                       // 等待15ms让舵机到达指定位置                                break;                        }          }      }}