本帖最后由 大傻猫喵喵喵 于 2021-3-9 16:55 编辑
这是初一学生在限定器材和任务后,在10个小时内完成的创意、结构、程序和演讲内容(3D打印加工部分不占时间)本来有6个队参加,时间到了只有3个队伍完成了准备,估计是第一次做这种限时任务没经验
请按照百分制为这几个队伍打分,并选出最佳演讲者(1人),最佳程序(1人),最佳结构设计(1人),可以重复获奖
任务:教室防疫助手 经过全国人民的不断努力,抗击疫情已经取得了阶段性的胜利。但是关键时刻我们仍然不能松懈,请设计一个在教室及相关范围内使用,完成一定抗疫辅助功能的机器人。
得分指标: 整体设计有新意 (20%) 功能、结构等具有新意,有一定的实用价值 细节功能有新意 (5%) 功能细节实现方法有新意,功能设计能突破原有元器件的应用习惯 结构设计(10%) 整体结构设计合理,具有一定的功能性和复杂性 软硬件功能实现(10%) 硬件器材选择有科学性和技术含量,软件设计功能明确、结构合理、代码优化、易于调试 工业设计(5%) 设计具有美感,并能将美学与实用性相结合,能够表达作者的设计理念 演讲水平(20%) 演讲及演示过程流畅,演示内容与PPT、演讲介绍部分配合得当,作品功能及原理介绍全面 设计方案规范性(10%) 有初始设计,设计方案完备,有作品功能、结构、相关器件使用等内容 制作过程规范性(5%) 制作过程中工具和相关器材使用规范,有详细的器材清单 作品完成度(15%) 功能实现的有效程度作品的成品化程度,包括外观、封装,及整体的牢固程度、人机交互等界面友好等
孙瑜辛 王子路组
- int j, k, l;
- void setup() {
- Serial.begin(9600);
- delay(100);
- }
- void loop() {
- j = analogRead(A1);
- k = analogRead(A4);
- l = analogRead(A7);
- if (j > 550 )
- {
- go(50, -50);
- delay(1000);
- Serial.println("kk");
- }
- else if (l>50&&l<60)
- {
- go(30,50);
- delay(1000);
- Serial.println("kk");
- }
- else if (k>50&&k<60)
- {
- go(50,30);
- delay(1000);
- Serial.println("kk");
- }
- else
- {
- go(50, 50);
- }
- }
- void go(float sp1, float sp2)
- {
- sp1 = sp1 * 2.55;
- sp2 = sp2 * 2.55;
- if (sp1 > 255) {
- sp1 = 255;
- }
- if (sp1 < -255) {
- sp1 = -255;
- }
- if (sp2 > 255) {
- sp2 = 255;
- }
- if (sp2 < -255) {
- sp2 = -255;
- }
- if (sp1 > 0) {
- analogWrite(6, sp1);
- digitalWrite(7, 0);
- }
- else if (sp1 < 0) {
- analogWrite(6, sp1 + 255);
- digitalWrite(7, 1);
- }
- else {
- analogWrite(6, 0);
- digitalWrite(7, 0);
- }
- if (sp2 > 0) {
- analogWrite(9, sp2);
- digitalWrite(8, 0);
- }
- else if (sp2 < 0) {
- analogWrite(9, sp2 + 255);
- digitalWrite(8, 1);
- }
- else {
- analogWrite(9, 0);
- digitalWrite(8, 0);
- }
- }
复制代码
禹常涵 王嘉誉组
- #include <Adafruit_PWMServoDriver.h>
- #include <Wire.h>
- #include <LiquidCrystal_I2C.h>
- #include "DFRobotDFPlayerMini.h"
- Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
- DFRobotDFPlayerMini myDFPlayer;
- int qian = 0;//前面的超声传感器
- int li = 0;//里面的红外传感器
- LiquidCrystal_I2C lcd(0x27, 16, 2);
- void setup()
- {
- myDFPlayer.begin(Serial1);
- Serial.begin(9600);
- Serial1.begin(9600);
- pwm.begin();
- lcd.init();
- lcd.backlight();
- pwm.setPWMFreq(100);
- pwm.setPWM(4, 0, 550);
- pwm.setPWM(5, 0, 950);
- myDFPlayer.volume(10);//播放“请将手消毒”
- }
- void loop()
- {
- qian = analogRead(A0);
- li = analogRead(A7);
- Serial.print("qian = ");
- Serial.println(qian);
- Serial.print("li = ");
- Serial.println(li);
- if (qian < 700 && li < 500)
- {
- myDFPlayer.playMp3Folder(5);
- lcd.clear();
- lcd.print("Please steriliz.");
- delay(2000);
- }
- else if (li > 500)
- {
- pwm.setPWM(4, 0, 650);
- delay(500);
- pwm.setPWM(4, 0, 450);
- myDFPlayer.playMp3Folder(6);//播放“请拿口罩”
- lcd.clear();
- lcd.print("Take your mask.");
- pwm.setPWM(5, 0, 550);
- delay(4000);
- pwm.setPWM(5, 0, 950);
- }
- }
复制代码
王暄 李靖毓组
小车端(未能实现运动功能)
- #include <Wire.h>
- #include <Adafruit_PWMServoDriver.h>
- Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
- int zhinz = 0;
- int aabbcc=1;//次数
- int a=1;
- int wz=1;
- float fxxx=0;
- int i = 0;
- int y =0;
- int q =1;
- int znz;
- void setup() {
- Serial.begin(9600);
- Serial1.begin(9600);
- Wire.begin();
- pwm.begin();
- pwm.setPWMFreq(100);
- delay(100);
- pwm.setPWM(1,0,595);
- }
-
- void loop() {
- if (Serial1.available()) {
- a=Serial1.read();
- //Serial.println(a);
- }
- Serial.println(q);
- i = analogRead(A0);
- y = analogRead(A8);
- if (i>400&&q==1){
- pwm.setPWM(1,0,350);
- }
- if (y>300){
- q=q+1;
- }
- if (q>404){
- pwm.setPWM(1,0,595);
- }
- }
- int znzget()
- {
- int highpr = 99;
- int lowpr = 99;
- Wire.requestFrom(59, 2);
- while (Wire.available())
- {
- highpr = Wire.read();
- lowpr = Wire.read();
- }
- if (highpr == 11 && lowpr == 02) return 999;
- else if (highpr < 2)return highpr * 255 + lowpr;
- else return highpr;
- }
- void go(int sp1, int sp2) {
- sp1 = sp1*-2.55;
- sp2 = sp2*2.55;
- if(sp1>255) {
- sp1=255;
- }
- if(sp1<-255) {
- sp1=-255;
- }
- if(sp2>255) {
- sp2=255;
- }
- if(sp2<-255) {
- sp2=-255;
- }
- if(sp1>0) {
- analogWrite(6,sp1);
- digitalWrite(7,0);
- }
- else if(sp1<0) {
- analogWrite(6,sp1+255);
- digitalWrite(7,1);
- }
- else{
- analogWrite(6,0);
- digitalWrite(7,0);
- }
- if(sp2>0) {
- analogWrite(9,sp2);
- digitalWrite(8,0);
- }
- else if(sp2<0) {
- analogWrite(9,sp2 +255);
- digitalWrite(8,1);
- }
- else{
- analogWrite(9,0);
- digitalWrite(8,0);
- }
- }
- void gofx(int xxx, int speadx){
- znz=(xxx-znzget()+1440)%360;
- if(znz>180){znz=znz-360;}
- if(znz>30||znz<-30)
- {
- go(-znz,znz);
- }
- else {
- go(speadx-znz,speadx+znz);
- }
- }
复制代码 遥控端(未能实现遥控功能)
- #include <SoftwareSerial.h>
- SoftwareSerial mySerial(2, 4); // RX, TX
- int aaa=1;
- int x,y;
- int fa;
- void setup() {
- Serial.begin(9600);
- mySerial.begin(9600);
- }
- void loop() { // run over and over
- if (mySerial.available()) {
- aaa=mySerial.write(aaa);
-
- }
- x=analogRead(A0);
- y=analogRead(A1);
- //Serial.println (y);
- //Serial.println (x);
- delay(200);
- if(x <= 100 && x >= 0 && y <= 600 && y >= 400) {
- fa = 1;
- }else if(y <= 1100 && y >= 900 && x <= 600 && x >= 400){
- fa = 2;
- }else if(y <= 100 && y >= 0 && x <= 600 && x >= 400){
- fa = 3;
- }else if(x <= 1100 && x >= 900 && y <= 600 && y >= 400){
- fa = 5;
- }else if(x <= 400 && x >= 0 && y <= 1100 && y >= 600){
- fa = 6;
- }else if(x <= 400 && x >= 0 && y <= 400 && y >= 0){
- fa = 7;
- }else if(x <= 1100 && x >= 600 && y <= 1100 && y >= 600){
- fa = 8;
- }else if(x <= 1100 && x >= 600 && y <= 400 && y >= 0){
- fa = 9;
- }else{
- fa = 0;
- }
- Serial.println (fa);
- mySerial.write(fa);
- delay(50);
- }
复制代码
|