美团外卖网站开发,app开发详细流程图,湖州网站制作,wordpress 搜索引索1. 功能描述 莲花灯是一款基于莲花形象设计的机器人#xff0c;本文示例将用两种模式来实现莲花灯的亮灭功能。 自主模式#xff1a;用 光强传感器 控制莲花灯的灯叶开合。暗光情况下灯叶打开#xff0c;灯亮#xff1b;强光情况下灯叶闭合#xff0c;灯灭。 …1. 功能描述 莲花灯是一款基于莲花形象设计的机器人本文示例将用两种模式来实现莲花灯的亮灭功能。 自主模式用 光强传感器 控制莲花灯的灯叶开合。暗光情况下灯叶打开灯亮强光情况下灯叶闭合灯灭。 遥控模式采用 蓝牙串口模块控制灯叶开合。灯叶打开灯亮灯叶闭合灯灭。 2. 结构说明 莲花灯采用“探索者”结构件搭建、辅以外观设计而成由曲柄摇杆机构和平行四连杆机构构成一个二级升降机构通过杠杆来控制莲花灯的开合。 莲花灯的灯叶开合主要是由膨胀机构来控制的膨胀轮是整个结构的核心部分这种结构的优点是可实现收缩和膨胀从而来控制灯叶的开合。 膨胀轮 3. 电子硬件
在这个示例中我们采用了以下硬件请大家参考 电路连接 ① 灯带连在Bigfish扩展板的D9、D10接口上 ② 舵机连在Bigfish扩展板的D4端口上 ③ 蓝牙串口模块安装在Bigfish扩展坞上 ④ 光强传感器连在Bigfish扩展板的A0端口上 4. 功能实现
4.1自主模式 编程环境Arduino 1.8.19 下面提供一个实现暗光情况下灯叶打开灯亮强光情况下灯叶闭合灯灭的参考程序light.ino /*------------------------------------------------------------------------------------版权说明Copyright 2023 Robottime(Beijing) Technology Co., Ltd. All Rights Reserved.Distributed under MIT license.See file LICENSE for detail or copy athttps://opensource.org/licenses/MITby 机器谱 2023-10-25 https://www.robotway.com/------------------------------*//** Light测试例程* 2018/04/17* ————————————* 接线* 灯带9、10* 舵机4* 蓝牙Bigfish扩展坞* 光强A0* ————————————* 功能* 控制模式蓝牙控制灯叶开合* 自主模式光强传感器控制灯叶开合* * 灯叶打开灯亮灯叶闭合灯灭*/#include ServoTimer2.h#include light.hServoTimer2 myServo;int servo_port 4; //定义舵机引脚int sensor_port A0; //定义光强传感器引脚int servo_value 1550; //定义舵机初始值 PWM/*int open_angle 1150; //灯叶打开时舵机的值int close_angle 1550; //灯叶闭合时舵机的值*/void setup() {Serial.begin(9600);PortInit();myServo.write(servo_value);delay(1000);}void loop() {/*Bluetooth Mode*/ if(SerialRead() 1){Serial.println(Bluetooth Mode);while(true){switch(SerialRead()){case 2:Serial.println(OPEN);ServoGo(1150); //OPENbreak;case 3:Serial.println(CLOSE);ServoGo(1550); //CLOSEbreak;default:break;}if(SerialRead() 4) {Serial.println(Auto Mode);break;}}}/* Auto Mode*/AutoMode(); }/*端口初始化*/void PortInit(){pinMode(sensor_port, INPUT);pinMode(servo_port, OUTPUT);pinMode(9, OUTPUT);pinMode(10, OUTPUT);digitalWrite(9, LOW);digitalWrite(10, LOW);myServo.attach(servo_port);}/*串口控制*/char SerialRead(){char c;while(Serial.available()) {c Serial.read(); }return c;}/*自主模式*/void AutoMode(){if(digitalRead(sensor_port)){ //亮光下光强返回值1灯叶闭合灯光关闭ServoGo(1550);}if(!digitalRead(sensor_port)){ //黑暗中光强返回0灯叶打开灯光开启ServoGo(1150);}}/*舵机控制*/void ServoGo(int where){ //舵机控制函数参数目标角度int delta where - servo_value; //delta 0: OPEN ; delta 0: CLOSEif(delta 0) return;float light_value delta 0 ? 0 : 255; int diff delta 0 ? -1 : 1;for(int i0;iabs(delta);i){servo_value diff;if(delta 0){light_value 0.65; //0.65 (255 / delta);if(light_value 255) light_value 255;}else if(delta 0){light_value - 0.65;if(light_value 0) light_value 0;}LightState(light_value); myServo.write(servo_value);delay(10); }}/*灯光控制*/void LightState(float * value){analogWrite(9, *value);analogWrite(10, 0);} 4.2遥控模式 APP设置将文末资料中的“BLE_SPP_PRO.apk”安装到手机中。 ① 搜索蓝牙 ② 连接蓝牙 ③ 模式选择 ④ 按键设置 ⑤ 各按键发送值 5. 资料清单
①程序源代码 ②样机3D文件资料下载链接莲花灯-概述