描述
<div>
<p style="line-height:1.8;">注:* 为必填项</p>
<p style="line-height:1.8;"><strong><span style="color:#0093e6;">请在报名阶段填写 ↓</span></strong></p>
<p style="line-height:1.8;"> </p>
<h3 style="line-height:1.8;">* 1、项目功能介绍</h3>
<hr>
<p style="line-height:1.8;">本项目集成了蓝牙控制,黑线循迹,自动避障以及自动追踪功能于一体的多功能小车。通过手机端可以进行遥控控制,链接蓝牙即可。</p>
<p style="line-height:1.8;"> </p>
<p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">注:主题不限,可以是解决生活/工作中的某个问题、为某个人群/场景设计的方案、毕业设计/课程设计/DIY项目/纯属炫酷项目等。主要讲一下自己通过什么手段解决了什么问题。</span></p>
<p style="line-height:1.8;"> </p>
<h3 style="line-height:1.8;">*2、项目属性</h3>
<hr>
<p style="line-height:1.8;">本产品基于Arduino通过嘉立创开发板进行开发,可以开发交互产品,Arduino 可以通过各种各样的传感器来感知环境和状态,通过控制灯光、马达和其他的装置来反馈、影响环境。比如在生活中我们可以用Arduino 结合传感器来做出智能电风扇、自动大灯、防盗器,甚至可以做出远程控制家电、远程启动汽车、3D 打印机等实验。编程直接、程序代码简洁明了,例如我们驱动一片 1602 液晶屏,只需 4 行代码即可完成。别的电子开发平台大多需要几十或上百行代码。即使你没有学过电子编程,只要有兴趣,你也可以编写出程序,做出各种精彩的创意项目。</p>
<p style="line-height:1.8;"> </p>
<p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">注:请说明项目是否首次公开;项目是否为原创;项目是否曾经在其他比赛中获奖,若有获奖则叙述获奖详情;项目是否在学校参加过答辩。</span></p>
<p style="line-height:1.8;"> </p>
<h3 style="line-height:1.8;">* 3、开源协议</h3>
<hr>
<p style="line-height:1.8;">Arduino 是一个开放源代码的硬件平台,在 arduino.org 网站上会有大量的创客分享不同的创意以及源代码。另外 Arduino 提供丰富的代码库,在程序设计中我们可以直接使用,无需考虑繁琐的底层代码和寄存器操作,所以它适用于老师、学生、电子爱好者、设计师、艺术家和对设计创造感兴趣的人。</p>
<p style="line-height:1.8;"> </p>
<p style="line-height:1.8;"> </p>
<p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">注:利他即利己,请认真阅读下述内容。</span></p>
<ol style="line-height:1.8;">
<li style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">拥抱开源,赋予项目无限价值。建议项目核心功能开源80%以上;</span></li>
<li style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">2、若某一部分功能不可替代且删掉之后项目无法解决对应的问题,则这一部分实现的功能就是项目的核心功能;比如设计了一台电子负载且设计了一款上位机软件监控功率变化,则电子负载为核心功能,上位机软件为辅助功能;比如电子负载中使用了一款隔离485模块与上位机通信,则此485模块实现的通讯功能为辅助功能; </span></li>
<li style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">项目应选择适合自己的<span style="text-decoration:underline;"><a href="/posts/98fdb2accd754af7b51990790db3b47a" target="_blank">开源协议</a></span>,若项目引用其他开源项目,应注明来源并遵循原作者的开源协议规定;原创项目推荐使用GPL3.0开源协议;</span></li>
<li style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">直接引用开源项目的原电路或原代码实现的功能不可作为自己项目的核心功能、使用市场上通用模块直接实现的功能不可作为自己项目的核心功能。</span></li>
</ol>
<p style="line-height:1.8;"> </p>
<p style="line-height:1.8;"><strong><span style="color:#0093e6;">请在竞赛阶段填写 ↓</span></strong></p>
<p style="line-height:1.8;"> </p>
<h3 style="line-height:1.8;">*4、硬件部分</h3>
<hr>
<p style="line-height:1.8;"> </p>
<p style="line-height:1.8;">电机 2 个(黄色外壳)、固定片 4 个(绿色或者黑色)、长螺<br>丝 4 个、螺母 4 个)、3 寸十字螺丝刀 1 把、智能小车底板,立创开发板</p>
<p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;"> 注:请前往<span style="text-decoration:underline;"><a href="https://lceda.cn/editor" target="_blank">嘉立创EDA</a> </span>生成/上传设计文件,文件完成后,相关文稿将自动生成至项目详情;这里可以详细说明您的项目实现原理和机制、注意事项、调试方法、测试方法等。推荐图文并茂的形式向别人介绍您的想法。 </span></p>
<p style="line-height:1.8;"> </p>
<h3 id="h_2045620413181758025499971" style="line-height:1.8;">*5、软件部分</h3>
<hr>
<p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">请输入内容…</span></p>
<p>#include //舵机头文件<br>Servo myservo; //创建舵机对象<br>int left_motor_en = 5;//左电机使能<br>int right_motor_en = 6;//右电机使能<br>int left_motor_go = 3;//左电机正传<br>int right_motor_go = 4;//右电机正传<br>int left_motor_back = 2;//左电机反转 <br>int right_motor_back = 7;//右电机反转<br>int buzzer = A3;//蜂鸣器</p>
<p>unsigned char control;//储存小车控制命令<br>unsigned char valueL;//储存小车左电机速度<br>unsigned char valueR;//储存小车右电机速度</p>
<p>void setup() {<br> //电机驱动引脚全部设置为输出模式<br> pinMode(left_motor_en,OUTPUT);<br> pinMode(right_motor_en,OUTPUT);<br> pinMode(left_motor_go,OUTPUT);<br> pinMode(right_motor_go,OUTPUT);<br> pinMode(left_motor_back,OUTPUT);<br> pinMode(right_motor_back,OUTPUT);<br> pinMode(buzzer,OUTPUT);//蜂鸣器引脚设置为输出<br> digitalWrite(buzzer,HIGH); //关闭蜂鸣器<br> //控制车速<br> analogWrite(left_motor_en,130);//左电机占空比值 取值范围0-255,255最快<br> analogWrite(right_motor_en,130);//右电机占空比值取值范围0-255 ,255最快<br> <br> myservo.attach(9); // 设置舵机控制脚为数字9脚<br> myservo.write(90);//舵机旋转90处于小车正前方<br> delay(65);//等待舵机到达指定角度</p>
<p> Serial.begin(9600); //波特率9600<br>}</p>
<p>//小车前进<br>void forward()<br>{<br> digitalWrite(left_motor_go,HIGH); //左电机前进<br> digitalWrite(left_motor_back,LOW); <br> digitalWrite(right_motor_go,HIGH); //右电机前进<br> digitalWrite(right_motor_back,LOW); <br> }<br>//小车后退<br>void backward()<br>{<br> digitalWrite(left_motor_go,LOW); //左电机反转<br> digitalWrite(left_motor_back,HIGH); <br> digitalWrite(right_motor_go,LOW); //右电机反转<br> digitalWrite(right_motor_back,HIGH); <br> }<br>//小车单轮左转<br>void left()<br>{<br> digitalWrite(left_motor_go,LOW); //左电机停止<br> digitalWrite(left_motor_back,LOW); <br> digitalWrite(right_motor_go,HIGH); //右电机前进<br> digitalWrite(right_motor_back,LOW); <br> }</p>
<p>//小车单轮右转<br>void right()<br>{<br> digitalWrite(left_motor_go,HIGH); //左电机前进<br> digitalWrite(left_motor_back,LOW); <br> digitalWrite(right_motor_go,LOW); //右电机停止<br> digitalWrite(right_motor_back,LOW); <br> }<br>//停车<br>void stop_car()<br>{<br> digitalWrite(left_motor_go,LOW); //左电机停止<br> digitalWrite(left_motor_back,LOW); <br> digitalWrite(right_motor_go,LOW); //右电机停止<br> digitalWrite(right_motor_back,LOW);<br> }</p>
<p>//小车原地左转<br>void left_rapidly()<br>{<br> digitalWrite(left_motor_go,LOW); //左电机反转<br> digitalWrite(left_motor_back,HIGH); <br> digitalWrite(right_motor_go,HIGH); //右电机正转<br> digitalWrite(right_motor_back,LOW); <br> }<br>//小车原地右转<br>void right_rapidly()<br>{<br> digitalWrite(left_motor_go,HIGH); //左电机正转<br> digitalWrite(left_motor_back,LOW); <br> digitalWrite(right_motor_go,LOW); //右电机反转<br> digitalWrite(right_motor_back,HIGH); <br> }</p>
<p>void loop() {<br> <br> switch(control)<br> {<br> case 0X02: forward(); break; //前进<br> case 0X03: backward(); break; //后退<br> case 0X04: left(); break; //左转<br> case 0X05: right(); break;//右转<br> case 0X01: stop_car(); break;//停车<br> case 0X06: left_rapidly(); break;//左旋转<br> case 0X07: right_rapidly(); break;//右旋转<br> case 0X08: digitalWrite(buzzer,LOW); break;//鸣笛<br> case 0X09: digitalWrite(buzzer,HIGH); break;//停止鸣笛<br> }<br>}</p>
<p>//串口中断<br>void serialEvent()<br>{<br> if(Serial.available()) //串口是否有数据?<br> { <br> control = Serial.read(); //读出串口数据<br> if((control >= 51) && (control = 151) && (control</p>
</div>
-
微信视频2025-10-24_134153_201.mp4
-
微信视频2025-10-24_134158_938.mp4
评论(0)