初一学生创客快速挑战赛展示帖&求评委-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4265|回复: 2

初一学生创客快速挑战赛展示帖&求评委

[复制链接]
发表于 2021-3-9 16:43 | 显示全部楼层 |阅读模式
本帖最后由 大傻猫喵喵喵 于 2021-3-9 16:55 编辑

这是初一学生在限定器材和任务后,在10个小时内完成的创意、结构、程序和演讲内容(3D打印加工部分不占时间)本来有6个队参加,时间到了只有3个队伍完成了准备,估计是第一次做这种限时任务没经验

请按照百分制为这几个队伍打分,并选出最佳演讲者(1人),最佳程序(1人),最佳结构设计(1人),可以重复获奖


任务:教室防疫助手
经过全国人民的不断努力,抗击疫情已经取得了阶段性的胜利。但是关键时刻我们仍然不能松懈,请设计一个在教室及相关范围内使用,完成一定抗疫辅助功能的机器人。


得分指标:
整体设计有新意 (20%) 功能、结构等具有新意,有一定的实用价值
细节功能有新意 (5%) 功能细节实现方法有新意,功能设计能突破原有元器件的应用习惯
结构设计(10%) 整体结构设计合理,具有一定的功能性和复杂性
软硬件功能实现(10%) 硬件器材选择有科学性和技术含量,软件设计功能明确、结构合理、代码优化、易于调试
工业设计(5%) 设计具有美感,并能将美学与实用性相结合,能够表达作者的设计理念
演讲水平(20%) 演讲及演示过程流畅,演示内容与PPT、演讲介绍部分配合得当,作品功能及原理介绍全面
设计方案规范性(10%) 有初始设计,设计方案完备,有作品功能、结构、相关器件使用等内容
制作过程规范性(5%) 制作过程中工具和相关器材使用规范,有详细的器材清单
作品完成度(15%) 功能实现的有效程度作品的成品化程度,包括外观、封装,及整体的牢固程度、人机交互等界面友好等

孙瑜辛 王子路
  1. int j, k, l;
  2. void setup() {
  3.   Serial.begin(9600);
  4.   delay(100);
  5. }

  6. void loop() {
  7.   j = analogRead(A1);
  8.   k = analogRead(A4);
  9.   l = analogRead(A7);
  10.   if (j > 550 )
  11.   {
  12.         go(50, -50);
  13.         delay(1000);
  14.         Serial.println("kk");
  15.   }
  16.   else if (l>50&&l<60)
  17.   {
  18.       go(30,50);
  19.       delay(1000);
  20.       Serial.println("kk");
  21.   }
  22.    else if (k>50&&k<60)
  23.   {
  24.       go(50,30);
  25.       delay(1000);
  26.       Serial.println("kk");
  27.   }
  28.   else
  29.   {
  30.     go(50, 50);
  31.   }
  32. }
  33. void go(float sp1, float sp2)
  34. {
  35.   sp1 = sp1 * 2.55;
  36.   sp2 = sp2 * 2.55;
  37.   if (sp1 > 255) {
  38.     sp1 = 255;
  39.   }
  40.   if (sp1 < -255) {
  41.     sp1 = -255;
  42.   }
  43.   if (sp2 > 255) {
  44.     sp2 = 255;
  45.   }
  46.   if (sp2 < -255) {
  47.     sp2 = -255;
  48.   }
  49.   if (sp1 > 0) {
  50.     analogWrite(6, sp1);
  51.     digitalWrite(7, 0);
  52.   }
  53.   else if (sp1 < 0) {
  54.     analogWrite(6, sp1 + 255);
  55.     digitalWrite(7, 1);
  56.   }
  57.   else {
  58.     analogWrite(6, 0);
  59.     digitalWrite(7, 0);
  60.   }
  61.   if (sp2 > 0) {
  62.     analogWrite(9, sp2);
  63.     digitalWrite(8, 0);
  64.   }
  65.   else if (sp2 < 0) {
  66.     analogWrite(9, sp2 + 255);
  67.     digitalWrite(8, 1);
  68.   }
  69.   else {
  70.     analogWrite(9, 0);
  71.     digitalWrite(8, 0);
  72.   }
  73. }
复制代码




禹常涵 王嘉誉组

  1. #include <Adafruit_PWMServoDriver.h>
  2. #include <Wire.h>
  3. #include <LiquidCrystal_I2C.h>
  4. #include "DFRobotDFPlayerMini.h"
  5. Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
  6. DFRobotDFPlayerMini myDFPlayer;
  7. int qian = 0;//前面的超声传感器
  8. int li = 0;//里面的红外传感器
  9. LiquidCrystal_I2C lcd(0x27, 16, 2);
  10. void setup()
  11. {
  12.   myDFPlayer.begin(Serial1);
  13.   Serial.begin(9600);
  14.   Serial1.begin(9600);
  15.   pwm.begin();
  16.   lcd.init();
  17.   lcd.backlight();
  18.   pwm.setPWMFreq(100);
  19.   pwm.setPWM(4, 0, 550);
  20.   pwm.setPWM(5, 0, 950);
  21.   myDFPlayer.volume(10);//播放“请将手消毒”
  22. }

  23. void loop()
  24. {
  25.   qian = analogRead(A0);
  26.   li = analogRead(A7);
  27.   Serial.print("qian = ");
  28.   Serial.println(qian);
  29.   Serial.print("li = ");
  30.   Serial.println(li);
  31.   if (qian < 700 && li < 500)
  32.   {
  33.     myDFPlayer.playMp3Folder(5);
  34.     lcd.clear();
  35.     lcd.print("Please steriliz.");
  36.     delay(2000);
  37.   }
  38.   else if (li > 500)
  39.   {
  40.     pwm.setPWM(4, 0, 650);
  41.     delay(500);
  42.     pwm.setPWM(4, 0, 450);
  43.     myDFPlayer.playMp3Folder(6);//播放“请拿口罩”
  44.     lcd.clear();
  45.     lcd.print("Take your mask.");
  46.     pwm.setPWM(5, 0, 550);
  47.     delay(4000);
  48.     pwm.setPWM(5, 0, 950);
  49.   }
  50. }
复制代码



王暄 李靖毓组

小车端(未能实现运动功能)
  1. #include <Wire.h>
  2. #include <Adafruit_PWMServoDriver.h>
  3. Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
  4. int zhinz = 0;

  5. int aabbcc=1;//次数
  6. int a=1;
  7. int wz=1;
  8. float fxxx=0;
  9. int i = 0;
  10. int y =0;
  11. int q =1;
  12. int znz;

  13. void setup() {
  14.   Serial.begin(9600);
  15.   Serial1.begin(9600);
  16.   Wire.begin();
  17.   pwm.begin();
  18.   pwm.setPWMFreq(100);
  19.   delay(100);
  20.   pwm.setPWM(1,0,595);

  21. }



  22. void loop() {
  23.   if (Serial1.available()) {
  24.   a=Serial1.read();
  25.   //Serial.println(a);
  26.    }
  27.   Serial.println(q);
  28.   i = analogRead(A0);
  29.   y = analogRead(A8);
  30.   if (i>400&&q==1){
  31.   pwm.setPWM(1,0,350);
  32.   }
  33.   if (y>300){
  34.   q=q+1;
  35.   }
  36.   if (q>404){
  37.   pwm.setPWM(1,0,595);
  38.   }
  39. }

  40. int znzget()
  41. {
  42.   int highpr = 99;
  43.   int lowpr = 99;
  44.   Wire.requestFrom(59, 2);
  45.   while (Wire.available())
  46.   {
  47.     highpr = Wire.read();
  48.     lowpr = Wire.read();
  49.   }
  50.   if (highpr == 11 && lowpr == 02) return 999;
  51.   else if (highpr < 2)return highpr * 255 + lowpr;
  52.   else return highpr;
  53. }
  54. void go(int sp1, int sp2) {
  55.   sp1 = sp1*-2.55;
  56.   sp2 = sp2*2.55;
  57.   if(sp1>255) {
  58.     sp1=255;
  59.   }
  60.   if(sp1<-255) {
  61.     sp1=-255;
  62.   }
  63.   if(sp2>255) {
  64.     sp2=255;
  65.   }
  66.   if(sp2<-255) {
  67.     sp2=-255;
  68.   }


  69.   if(sp1>0) {
  70.     analogWrite(6,sp1);
  71.     digitalWrite(7,0);
  72.   }
  73.   else if(sp1<0) {
  74.     analogWrite(6,sp1+255);
  75.     digitalWrite(7,1);
  76.   }
  77.   else{
  78.     analogWrite(6,0);
  79.     digitalWrite(7,0);
  80.   }
  81.   if(sp2>0) {
  82.     analogWrite(9,sp2);
  83.     digitalWrite(8,0);
  84.   }
  85.   else if(sp2<0) {
  86.     analogWrite(9,sp2 +255);
  87.     digitalWrite(8,1);
  88.   }
  89.   else{
  90.     analogWrite(9,0);
  91.     digitalWrite(8,0);
  92.   }
  93. }
  94. void gofx(int xxx, int speadx){
  95. znz=(xxx-znzget()+1440)%360;
  96. if(znz>180){znz=znz-360;}
  97. if(znz>30||znz<-30)
  98. {
  99.   go(-znz,znz);  
  100. }
  101. else {
  102.     go(speadx-znz,speadx+znz);
  103.   }
  104. }
复制代码
遥控端(未能实现遥控功能)
  1. #include <SoftwareSerial.h>

  2. SoftwareSerial mySerial(2, 4); // RX, TX
  3. int  aaa=1;
  4. int  x,y;
  5. int  fa;
  6. void setup() {
  7.   Serial.begin(9600);
  8.    mySerial.begin(9600);
  9. }

  10. void loop() { // run over and over
  11.   if (mySerial.available()) {
  12.   aaa=mySerial.write(aaa);
  13.   
  14.   }
  15.   x=analogRead(A0);
  16.    y=analogRead(A1);
  17.   //Serial.println (y);
  18.   //Serial.println (x);
  19.   delay(200);

  20. if(x <= 100 && x >= 0 && y <= 600 && y >= 400) {
  21.     fa = 1;
  22.   }else if(y <= 1100 && y >= 900 && x <= 600 && x >= 400){
  23.     fa = 2;
  24.   }else if(y <= 100 && y >= 0 && x <= 600 && x >= 400){
  25.     fa = 3;
  26.   }else if(x <= 1100 && x >= 900 && y <= 600 && y >= 400){
  27.     fa = 5;
  28.   }else if(x <= 400 && x >= 0 && y <= 1100 && y >= 600){
  29.     fa = 6;
  30.   }else if(x <= 400 && x >= 0 && y <= 400 && y >= 0){
  31.     fa = 7;
  32.   }else if(x <= 1100 && x >= 600 && y <= 1100 && y >= 600){
  33.     fa = 8;
  34.   }else if(x <= 1100 && x >= 600 && y <= 400 && y >= 0){
  35.     fa = 9;
  36.   }else{
  37.     fa = 0;
  38.   }
  39.   Serial.println (fa);
  40.   mySerial.write(fa);
  41.   delay(50);
  42. }
复制代码


发表于 2021-4-5 18:08 | 显示全部楼层
禹常涵 王嘉誉组 90 最佳设计 最佳程序;王暄 李靖毓组85,最佳演讲;孙瑜辛 王子路组75
发表于 2022-4-4 18:41 | 显示全部楼层
第二组的应用设计比较完整,第三组的设计也是比较合理的,第一组没有啥应用场景啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 04:31 , Processed in 0.100345 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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