完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
目前,机器人的用途已经渗入到社会生活的方方面面,在工业生产中,机器人可以代替人类完成恶劣环境下的货物搬运以及设备检测等任务。而在人们的日常生活中,智能机器人也发挥了越来越重要的作用。因此,我们设计了基于STM32和Gokit的智能楼宇服务机器人。
本设计是由以STM32F405为主控的底盘控制系统和STM32F103+ESP8266构成的WiFi控制系统组成的智能楼宇安防机器人。其运动底盘采用四轮驱动的麦克纳姆轮,实现全方位移动的零转角控制,可以迅速调整机器人的运动状态。底盘控制系统主要包括:电源模块、微控制器模块、电机驱动模块、DBUS通讯控制模块等。通过无线遥控器的摇杆可以直接控制机器人前进、后退、左平移、右平移、向左旋转和向右旋转,安保人员坐在室内即可轻松地控制机器人完成安防工作,减轻了安保人员的工作负担,增加了工作乐趣,同时降低了安防工作的成本。 Wifi服务系统由主控部分、传感器部分和显示部分构成,主控部分采用STM32103c8t6+ESP8266构成,传感器部分有3色灯、夏普PM2.5粉尘传感器、雨量传感器、温湿度传感器DHT11和TCRT5000光电传感器构成。MCU主控把采集到的传感器信息上传到机智云的云端,然后云端将信息发送到楼宇内人员的手机端,保安和楼宇内工作人员通过手机APP即可实时获取楼宇外的温湿度、空气质量和雨量。能够判断是否下雨和是否有人在机器人旁通过屏幕查询信息。显示部分使用串口屏显示传感器的信息,并且给来找人和咨询事情的人提供查询信息。通触摸屏设计的多级式菜单设定外来人员的需求信息,增进了人机交互的灵活性。 最后,本设计实现了一款具有安防功能、能给外来办事人员和楼宇内人员提供帮助的智能楼宇安防服务机器人。它可以直接应用到高校办公大楼,公司楼宇、写字楼和机关办公大楼等,具有很好的实际意义,实现了我们最初的设计目标。 |
|
|
相关推荐
|
|
|
夏普pm2.5传感器
传感器与MCU的接线方式如图所示,使用PA7作为输出引脚接传感器的LED引脚,使用PA5作为ADC1的chanel_5接传感器的VO引脚。 |
|
|
|
|
|
|
|
|
传感器的工作过程如下:传感器的工作周期为10ms,首先通过LED引脚启动传感器,然后等待0.28ms,使得传感器将粉尘浓度转换为电压,并利用STM32的PA5引脚对处理过的输出信号VO采样,接着等待0.04ms,最后关闭LED并且等待9.680ms。 GP2Y1010AU0F传感器的输出电压与粉尘浓度的关系如图2-14所示,由于对VO进行了分压处理,计算粉尘浓度选择ug/m3,所以计算公式为粉尘浓度=344*(AD转换后的电压)-99。 雨量传感器 将传感器的AO引脚接STM32的PA4引脚,通过ADC读取传感器的电压值判断雨量的的大小。 |
|
|
|
|
|
|
|
|
传感器的工作过程如下:传感器的工作周期为10ms,首先通过LED引脚启动传感器,然后等待0.28ms,使得传感器将粉尘浓度转换为电压,并利用STM32的PA5引脚对处理过的输出信号VO采样,接着等待0.04ms,最后关闭LED并且等待9.680ms。
GP2Y1010AU0F传感器的输出电压与粉尘浓度的关系如图2-14所示,由于对VO进行了分压处理,计算粉尘浓度选择ug/m3,所以计算公式为粉尘浓度=344*(AD转换后的电压)-99。 |
|
|
|
|
|
|
|
|
关键程序
void PM25_Read(uint8_t *dust,uint8_t *temp1,uint8_t *yuliang) { float temp,pm25,rainval; //*temp1=Get_Adc(5); GPIO_ResetBits(GPIOA,GPIO_Pin_7); Delay_us(280); temp=(float)Get_Adc(5)*(3.3/4096); Delay_us(40); GPIO_SetBits(GPIOA,GPIO_Pin_7); Delay_us(9680); rainval=(float)Get_Adc(4)*(3.3/4096); //temp=(float)Get_Adc(5)*(3.3/4096); pm25=temp*344-99; *temp1=pm25; //PM2.5计算空气质量AQI,分为0-5一共6个等级 if(pm25<35) *dust=0; if(pm25>=35 && pm25<75) *dust=1; if(pm25>=75 && pm25<150) *dust=2; if(pm25>=150 && pm25<250) *dust=3; if(pm25>=250&& pm25<500) *dust=4; if(pm25>=500) *dust=5; //雨量等级计算 if(rainval>=3) *yuliang=0;//没有雨 if(rainval>=1.6 && rainval<3) *yuliang=1;//小雨 if(rainval>=1 && rainval<1.6) *yuliang=2;//中雨 if(rainval>=0 && rainval<1) *yuliang=3;//大雨 //*dust=temp*344-99; //*dust=temp; //*yuliang=temp2; } |
|
|
|
|
|
|
|
|
void GizWits_GatherSensorData(void)
{ ReadTypeDef.Infrared = IR_Handle(); //ReadTypeDef.rain = RAIN_Handle(); //ReadTypeDef.rain=0; printf("rain=%d rn",ReadTypeDef.rain); DHT11_Read_Data(&curTem, &curHum); ReadTypeDef.Temperature = (curTem + lastTem) /2; ReadTypeDef.Humidity = (curHum + lastHum)/2; ReadTypeDef.Temperature = ReadTypeDef.Temperature + 13;//Temperature Data Correction lastTem = curTem; lastHum = curHum; printf("Temperature=%d rn",ReadTypeDef.Temperature); printf("Humidity=%d rn",ReadTypeDef.Humidity); //ReadTypeDef.test = 0; //ADC_ConvertedValueLocal =(float) ADC_ConvertedValue/4096*3.3; //iol_temp = ADC_ConvertedValueLocal*344-99; //PM_25_handle(); //ReadTypeDef.dustVal = 3; PM25_Read(&ceshiVal,&ceshi11,&ceshi22); Delay_ms(10); printf("zhi=%d rn",ceshi11); printf("dianya=%d rn",ceshiVal); printf("rain11=%d rn",ceshi22); ReadTypeDef.dustVal=ceshiVal; ReadTypeDef.rain=ceshi22; //printf("shangchuan=%d rn",ReadTypeDef.dustVal); //xintianjia chuanshu_buf[0]=0xFF; //chuanshu_buf[1]=0xFF; chuanshu_buf[1]=curTem; chuanshu_buf[2]=curHum; chuanshu_buf[3]=ReadTypeDef.rain; chuanshu_buf[4]=ceshi11; } |
|
|
|
|
|
|
|
|
int main(void)
{ uint8_t p0_control_buf[MAX_P0_LEN]; //uint8_t flag=0; uint8_t t=0; SystemInit(); HW_Init(); Printf_SystemRccClocks(); SW_Init(); while(1) { KEY_Handle(); GizWits_MessageHandle(p0_control_buf, sizeof(WirteTypeDef_t)); if(p0Flag == 1) { memcpy((uint8_t *)&WirteTypeDef, p0_control_buf, sizeof(WirteTypeDef_t)); GizWits_ControlDeviceHandle(); GizWits_DevStatusUpgrade((uint8_t *)&ReadTypeDef, 10*60*1000, 1); p0Flag =0; } if(gaterSensorFlag != 0) { GizWits_GatherSensorData(); printf("shangchuan=%d rn",ReadTypeDef.dustVal); gaterSensorFlag = 0; } for(t=0;t<5;t++) { UART1_Send_DATA(chuanshu_buf[t]); } GizWits_DevStatusUpgrade((uint8_t *)&ReadTypeDef, 10*60*1000, 0); } } |
|
|
|
|
|
|
|
|
BOM清单
STM32F405 X 1 AQMH3615NS X4 直流减速电机(带编码器) X4 麦克纳姆轮X4 底板X1 机智云gokit2 X1 PM2.5模块 X1 雨量传感器 X1 串口屏X1 STM32F103C8T6核心板X1 无线遥控器+接收模块X1 |
|
|
|
|
|
|
|
|
数据点
下载附件 [color=rgb(153, 153, 153) !important]昨天 10:42 上传 |
|
|
|
|
|
|
|
693 浏览 0 评论
RT-Thread与英飞凌(infineon)合作得板子PSOC 6 板子学习
681 浏览 0 评论
有人有STM8H1K08T连接TM1650的源码吗,可以直接使用的那种,我的代码在烧录之后数码管一直处于熄灭状态
993 浏览 0 评论
【瑞萨RA6E2】瑞萨E2S软件安装过程,等待过程玩下97_e2 studio_ZGZZ
781 浏览 0 评论
893 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16962 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-9 18:04 , Processed in 1.183181 second(s), Total 68, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖