当前位置: 首页 > news >正文

东莞网站建设渠道长春建站费用

东莞网站建设渠道,长春建站费用,佛山免费建站模板,网站开发找什么论文大家好啊#xff0c;我是情谊#xff0c;今天我们来介绍一下我最近设计的stm32产品#xff0c;我们在今年七月份的时候参加了光电设计大赛#xff0c;我们小队使用的就是stm32的智能送餐小车#xff0c;虽然止步于省赛#xff0c;但是还是一次成长的经验吧#xff0c;那…大家好啊我是情谊今天我们来介绍一下我最近设计的stm32产品我们在今年七月份的时候参加了光电设计大赛我们小队使用的就是stm32的智能送餐小车虽然止步于省赛但是还是一次成长的经验吧那么我也来分享一下我们小队这次的产品设计希望里面的一些模块可以给你们一点的参考建议。 我先说说我的博客文章的设计吧我准备的是以模块的方式展示代码但是文章的最后我会附带我们小队设计的stm32小车的完整代码 接下来我再说说我的小车实现的功能 1二维码识别使用openmv扫描对应颜色的二维码后oled屏幕上显示对应的菜品名称并且小车识别追踪该颜色物体 2压力传感器感知物体重量当压力传感器的重量超过一定值后小车才会运动注意这个功能和上面的二维码识别并不冲突上面扫码后openmv只能识别到该颜色但是小车却不能动只有压力传感器有示数才会运动 3APP点单我们小组是使用ESP8266wifi模块制作了一个APP来模拟点单 4温度传感器时刻感知环境温度这个模块的功能其实就是在送餐途中进行保温使用的 5蜂鸣器播报客户下单后蜂鸣器会进行鸣叫 6红外光管避障我们小组并未在避障方面进行过多的功能所以只有简单的避障功能小车识别到前方有物体然后停下来等到前方没有物体后继续运动 以上就是我的产品的全部功能了 注意注意 我文章末尾上传的代码只有功能1和功能2和功能6的代码功能3我只能负责给你们说说怎么做如果实在需要代码请联系我这部分代码不是免费的功能4和功能5的代码不在我的电脑上所以我就不进行讲解了。 器件端 首先声明一下 本次实验的芯片是基于stm32c8t6 本次实验使用的openmv型号为openmvH7 OpenMV开发环境搭建 OpenMV IDE是用于OpenMV Cam的集成开发环境具有强大的文本编辑器调试终端和带有直方图显示的帧缓冲区查看器。 官方下载链接Download – OpenMV截至本文写作时间最新版本为v4.2.1。 本次实验接口为串口三 代码端  openmv import sensor, image, time from pyb import UART from pyb import LEDsensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time2000)# 初始化LED灯 led_red LED(1) led_green LED(2) led_blue LED(3)# 初始化UART uart UART(3, 9600)clock time.clock()last_qr_color Nonewhile True:clock.tick()img sensor.snapshot()# 寻找二维码qr_codes img.find_qrcodes()if qr_codes:# 获取第一个二维码的颜色信息qr_color qr_codes[0].payload()last_qr_color qr_colorblobs Noneif qr_color green:# 绿色物体识别green_threshold (0, 100, -12, 11, -108, 34)blobs img.find_blobs([green_threshold], pixels_threshold100, area_threshold100, mergeTrue)led_green.on()led_red.off()led_blue.off()elif qr_color red:# 红色物体识别red_threshold (0, 80, 30, 127, 30, 127)blobs img.find_blobs([red_threshold], pixels_threshold100, area_threshold100, mergeTrue)led_green.off()led_red.on()led_blue.off()else:# 其他颜色处理blobs Noneled_green.off()led_red.off()led_blue.off()else:# 如果没有检测到二维码则继续识别上次记录的颜色qr_color last_qr_colorblobs Noneif qr_color green:# 绿色物体识别green_threshold (30, 100, -64, -8, -32, 32)blobs img.find_blobs([green_threshold], pixels_threshold100, area_threshold100, mergeTrue)led_green.on()led_red.off()led_blue.off()elif qr_color red:# 红色物体识别red_threshold (0, 80, 30, 127, 30, 127)blobs img.find_blobs([red_threshold], pixels_threshold100, area_threshold100, mergeTrue)led_green.off()led_red.on()led_blue.off()else:# 其他颜色处理blobs Noneled_green.off()led_red.off()led_blue.off()if blobs:for blob in blobs:img.draw_rectangle(blob.rect())img.draw_cross(blob.cx(), blob.cy())area blob.w() * blob.h()# 根据颜色修改 area 0xff 的值if qr_color green:area_low_byte 0x02elif qr_color red:area_low_byte 0x01data_packet bytearray([0xb3, 0xb3, blob.cx(), blob.cy(), area 8, area_low_byte, 0x5b])uart.write(data_packet)print(颜色: %s x:%d y:%d 面积:%d % (qr_color, blob.cx(), blob.cy(), area))print(clock.fps())代码讲解上面的openmv端代码可以识别信息为“红色”二维码与“绿色”二维码下面为你们粘贴了二维码图识别到一个二维码后openmv转变为识别对应颜色向单片机发送4个数据但是有用的只有三个数据你们可以根据需要删除不需要数据。 红色二维码 绿色二维码  大家可以使用上面的二维码进行实验也可以修改二维码和openmv识别信息  接下来在stm32端接受openmv发送的信息 Serial.c #include stm32f10x.h #include stdio.h #include stdarg.hint openmv[7]; int16_t Num; int16_t theta; int16_t rho; int16_t yanse; int i;void Usart3_Init(uint32_t Bound) {RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Pin GPIO_Pin_10;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOB,GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin GPIO_Pin_11;GPIO_InitStructure.GPIO_Mode GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOB,GPIO_InitStructure);USART_InitTypeDef USART_InitStructure;USART_InitStructure.USART_BaudRate Bound;USART_InitStructure.USART_WordLength USART_WordLength_8b;USART_InitStructure.USART_StopBits USART_StopBits_1;USART_InitStructure.USART_Parity USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode USART_Mode_Tx | USART_Mode_Rx;USART_Init(USART3,USART_InitStructure);NVIC_InitTypeDef NVIC_InitStructure;NVIC_InitStructure.NVIC_IRQChannel USART3_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority 0;NVIC_InitStructure.NVIC_IRQChannelSubPriority 1;NVIC_InitStructure.NVIC_IRQChannelCmd ENABLE;NVIC_Init(NVIC_InitStructure);USART_ITConfig(USART3,USART_IT_RXNE,ENABLE);USART_Cmd(USART3,ENABLE); }void Openmv_Data(void) {Numopenmv[2];rhoopenmv[3];theta openmv[4];yanse openmv[5]; }void Openmv_Receive_Data(int16_t data) {static u8 state 0;if(state0data0xb3){state1;openmv[0]data;}else if(state1data0xb3){state2;openmv[1]data;}else if(state2){state3;openmv[2]data;}else if(state3){state 4;openmv[3]data;}else if(state4){state 5;openmv[4]data;} else if(state5){state 6;openmv[5]data;} else if(state6) {if(data 0x5B){state 0;openmv[6]data;Openmv_Data();}else if(data ! 0x5B){state 0;for(i0;i7;i){openmv[i]0x00;} }} else{state 0;for(i0;i7;i){openmv[i]0x00;}} }void USART_SendByte(USART_TypeDef* USARTx, char str) {USART_SendData(USARTx, str);while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) RESET);}void USART3_IRQHandler(void) {u8 com_data; #if SYSTEM_SUPPORT_OS OSIntEnter(); #endifif(USART_GetITStatus(USART3, USART_IT_RXNE) ! RESET) {USART_ClearFlag(USART3,USART_FLAG_RXNE);com_data USART3-DR;Openmv_Receive_Data(com_data); Openmv_Data(); } #if SYSTEM_SUPPORT_OS OSIntExit(); #endif } 上面由于代码注释出现乱码问题所以笔者还是建议从下方的链接处查看 Serial.h #ifndef __SERIAL_H #define __SERIAL_H#include stdio.h #include sys.h #include stm32f10x.h void Usart3_Init(uint32_t Bound); #endifmain.c #include stm32f10x.h #include delay.h #include OLED.h #include Serial.h #include sys.h #include stdio.h #include HX711.h #include encoder.h extern int16_t Num; //x extern int16_t theta; //size extern int16_t rho; //y extern int16_t yanse; static int16_t img_width160; //cx static int16_t img_high120; //cy static int16_t img_size1000; //size //50 32 32055 static uint8_t KeyNum; void OLED_SHOW(void) { if (yanse 0x01)option 1;if (yanse 0x02)option 2;OLED_Refresh_Gram(); if (option 1){OLED_ShowChinese(0,0,4,16,1); OLED_ShowChinese(16,0,5,16,1); OLED_ShowChinese(32,0,6,16,1); }else if (option 2){OLED_ShowChinese(0,0,7,16,1); OLED_ShowChinese(16,0,8,16,1); OLED_ShowChinese(32,0,9,16,1); }}int main(void) {delay_init(72); LED_Init(); LED0; 0KEY_Init();Usart3_Init(9600); OLED_Init();KeyNum Key_GetNum();while (1){Led_Flash(50);OLED_SHOW();} }oled端的代码我就不在进行书写大家可以参照我的另一篇文章里讲解了https://mp.csdn.net/mp_blog/creation/editor/141165560 好了以上就是openmv二维码识别颜色识别oled显示的全部代码了如果有什么问题欢迎各位在评论区留言本人看到一定会回消息的还有一个问题代码本身是由程序中截取出来的所以可能会出现部分代码出现错误所以还是建议根据下方提供的链接查源代码明天我会更新stm32智能颜色送餐小车红外光管避障如果本文章对你有用的话请给一个小小的赞呗你的赞就是对我的最大的鼓励谢谢大家 代码链接处链接:链接: https://pan.baidu.com/s/1buk_I9_bZ_rIou1iW9v1jA?pwd2180 提取码: 2180 最后一个需要注意以下本代码中的pid参数我全部都置零了请根据自己的小车进行调节 mmexport1723541008067
http://www.tj-hxxt.cn/news/130562.html

相关文章:

  • 网站后台数据宜昌最新消息今天
  • 横栏网站建设网站运营团队建设
  • 创建网站代码是什么问题icp备案网站接入信息怎么填
  • 沈阳建网站wordpress xiu5.3
  • 做网站+利润做网站需要的图片大小
  • 佛山h5建站模板网站技术架构图
  • 个人在湖北建设厅网站申请强制注销城乡建设和住房建设厅官网
  • 电商网站策划书怎么查看一个网站是哪家公司做的
  • 网站内容标签设计怎样在网上做推广
  • 建网站什么网最好企业网站新闻wp怎么做
  • 电脑网站加速器住房和城乡建设岗位证书
  • 网站开发常用字体谷歌seo新规则
  • 云速网站建设公司佛山市住房和城乡建设部网站
  • 用c 做一个小网站怎么做网站色彩搭配技巧
  • 做民宿要给网站多少合同钱怎么制作手机app及网站
  • 电商网站wordpress软文案例大全300字
  • 手机网站dedecms营销网站建设哪家快
  • 专题网站模板网站开发未来
  • 江西安福县建设局网站wordpress九宫格主题
  • 赣县网站制作wordpress水印图片插件
  • 网站基础建设英文翻译wordpress 板块
  • 在线代理网址网站优化文章
  • 简述电子商务网站建设流程seo优化招商
  • 网站产品展示单页模板做网站赚钱难
  • 好的网站怎么设计crm管理系统销售
  • 网站建设用什么系统好优秀广告设计案例作品欣赏
  • 做分销网站系统下载网站建设方法:
  • 查手表价格的网站现在的网站怎样做推广
  • 深圳网站建设好做家装的网站有什么区别
  • 超好看WordPress保定网站建设与seo