-
常见的文件和目录相关命令pwd 命令作用:显示当前的工作路径例子:/usr/local/nginxcd 命令作用:改变当前工作目录(进入到某个目录中)例子:cd /usr/local/nginx扩展路径绝对路径在Linux系统中 Unix系统中一切由根开始。在Linux系统中 / 反斜杠表示根目录相对路径.开始或..开始符号/表示根(目录)~表示家(目录).表示当前(目录)..表示当前(目录)上一层-表示上一次进入的目录ls 命令作用:查看当前目录中的内容(可见)例子:/usr/local/nginxls -l就是以详细信息的方式显示目录的可见内容 use a long listing formatls -a想查看所有文件(可见 和 隐藏) all 所有 一般用于查看隐藏文件ls -al想查看所有文件(可见 和 隐藏) -all -list 所有 一般用于查看隐藏文件mkdir 命令作用:创建一个或多个(空的)目录例子:mkdir sec;mkdir day01;mkdir sec mca;扩展标识符合法标识符字母或下划线开头尽量不要出现中文(支持中文)简单 、易用、可读性高-p逐层的去创建mkdir -p day01/imagesrmdir 命令作用:删除一个空目录rm 命令作用:删除文件或目录rm -r递归删除/将目录以下的内容逐一删除 day01/imagesrm -f强制删除 不需要确认(谨慎 删库跑路必备技能)rm -i删除前逐一的询问确认touch 命令作用:创建文件的命令(空文件)例子:touch 文件名.扩展名 touch tokyo.avi; touch 喜欢你.mp3; touch FBI.py;cp 命令作用:复制文件或目录例子:cp a.txt aa.txt复制一个目录下面的所有内容:cp -r day04 day05mv 命令作用1:当前目录下操作是重命名作用2:相同/不同 移动文件或目录文件内容与编辑操作文件内容cat 命令作用:查看文件内容,从文件的第一行开始显示例子:cat a.txttac 命令作用:查看文件内容,从文件的最后一行开始显示例子:tac a.txtnl 命令作用:查看文件内容,并展示行号echo 命令作用:输出重定向例子1:覆盖的方式写入 echo "aaa" > to.txt例子2:追加的方式写入 echo "bbb" > to.txtmore 命令作用:查看文件内容,一页一页的显示,space键翻页例子:more to.txthead 命令作用:命令可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容例子:head to.txttail 命令作用:命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件例子:tail -f to.txt文件编辑vim 命令作用:创建并编辑文件 例子:vim a.txtvim 文本编辑器命令模式(默认模式)命令模式(默认模式)i 从点前光标处开始插入文本命令模式(默认模式)I 从当前光标所在行,行首进行插入命令模式(默认模式)a 从当前光标处下一个字符开始插入文本命令模式(默认模式)A 从当前光标所在行的,行尾开始插入文本命令模式(默认模式)o从当前光标处的下一行开始插入文本命令模式(默认模式)O从当前光标处上一行开始插入文本快捷键命令上下左右光标键保存退出 ZZ 在命令模式ZZyy命令复制一行nyy命令复制多行; 例子:先輸入3,然後在輸入yy 就复制了3行p命令进行粘贴u命令进行撤销dd命令删除一行ndd命令删除多行gg命令光标在任意位置快速的移动到文件第一行行首GG命令光标在任意位置快速的移动到文件最后一行行首end快速到行尾编辑模式(插入模式)插入文本内容 , 按ESC,命令模式->编辑模式底行模式(命令行模式)按*:*进入到底行模式set nu ;设置显示行号w;仅仅保存wq;保存并且退出q;退出**q!**;强制退出文件,丢弃你所做的任何改动
-
机器人的智能化、高精准度等特点,使其在口腔医学领域的应用具有更加独特优势,目前机器人在口腔医学应用的领域主要包括以下几个:口腔颌面外科学领域:微创,降低手术偏差,增强手术安全性,提高效率;口腔修复学领域:解决口腔操作空间狭小、人手颤动及精准性等问题;口腔正畸学领域:提高操作精度和效率;牙体牙髓病学领域:辅助医师操作,缓解疲劳,节省时间;其他:包括分析咀嚼运动中牙齿受力机器人、口腔教学机器人、以及模拟下颌运动机器人等。
-
血管介入机器人主要是在血管介入手术(主要是心血管介入手术)中实施导管的推进和导航,在术前和术中依据影像数据构建病患血管的三维形态图和分析血管交叉口、弯道、弹性、斑块的特征,从而实现在手术过程中对手术器械的跟踪和定位,有助于大幅提升手术的精准度,同时降低医务人员的劳动强度,也在一定程度上减少了手术对于医生个人技术熟练度的依赖。从关键组成部件上看,主要包括图像导航系统、机械装置与控制系统和力反馈系统等。其中,图像导航系统能够集成显示导丝和血管,并通过三维血管模型构建确保手术安全性。机械装置与控制系统负责导管的推进与旋转运动,由主刀医生操作和操控。力反馈系统可以准确地感受到导丝在血管中的受力情况,确保在引导图像不够直观的情况下也可以保证导丝的安全介入。
-
神经外科手术主要指针对脑部、脊髓和神经的手术,在操作上具有手术空间小、定位困难等难点。神经外科手术机器人主要通过对脑部病灶位置精确的空间定位,辅助医生夹持和固定手术器械等,并完成如活检手术、深脑刺激、经颅磁刺激、立体定向脑电图、神经内窥手术等的神经外科手术。从关键组成部件上看,主要包括术前规划软件、导航定向系统、机器人辅助器械定位和操作系统。其中,手术规划软件是神经外科手术机器人的核心技术,帮助医生进行手术方案的规划,在手术前获得患者病灶处的图像,结合医生的解剖学和病理学知识,进行包括手术方法,手术流程,手术切口与路径等方面的规划。导航定向系统是通过以CT/MRI等影像设备扫描图像建立的三维模型作为参考,对手术进行规划与虚拟仿真操作。机器人机械结构系统是机器人系统的执行和操作单元,要求机器人末端的误差尽可能小,同时确保各个关节能够按照规划的轨迹进行运动。从适应症上看,神经外科手术机器人可应用于包括中枢神经系统炎症疾病、帕金森病和癫痫病在内的神经系统疾病、脑血管病和脑梗死,应用市场广阔。
-
骨科手术机器人可应用于膝关节手术和髋关节手术和脊柱外科手术中。传统的骨科手术存在手术风险高、定位困难、植入精度低、复杂术式难普及、智能设备匮乏、手术创伤大、并发症多等问题。而骨科手术机器人可利用术前的三维CT影像对病灶进行准确测量,根据病灶大小及植入假体形状进行术中组织的精确判断和操作。从关键组成部件上看,主要包括机械系统、影像系统和计算机系统。其中,机械系统中的机械臂是手术的核心执行模块,末端的反馈结构具有视觉、力觉、触觉等模态。影像系统能够给施术医生提供更加清晰的影像资料,帮助患处定位和导航。计算机系统是骨科机器人的中枢,主要辅助医生进行手术方案设计和实现路径规划,帮助医生进行手术,此外还能对手术设备进行管理,包括对机械系统各部位的损耗情况进行自检和智能评估。
-
世界各地的水设施运营商面临着持续的压力,需要高效运营、节约用水、减少对环境的影响,并保持高水平的供应和可用性。物联网传感器和人工智能(AI)的采用可以帮助水务行业变得更有弹性和效率。许多水务公司已经开始实施技术,例如泵、阀门和仪表上的物联网传感器,以及地理信息系统(GIS)、监控和数据采集(SCADA)和先进的计量基础设施(AMI)。这些技术中的每一项都有助于改进运营,并将它们结合起来产生大量实时数据,运营商可以对这些数据应用人工智能预测建模。让我们来看看物联网和人工智能的五大好处。物联网和人工智能的好处#1: 需求预测需求预测可以通过人工智能来改进,人工智能不断从配电网络的历史数据和实时数据中学习。这些模型揭示了使用和供应趋势,并可以利用其他数据源,如天气或人口移动,以提供更准确的预测。这些预测可用于平衡需求和改善规划,包括水源、储存、处理和海水淡化厂的生产。#2: 预测性腐蚀配水所有者和运营商需要确保尽早检测到腐蚀,以避免泄漏和供应问题。人工智能可以应用于管道数据,以检测否则无法检测到的条件变化。通过及早预测腐蚀,操作员可以调整设置并计划干预措施。还可能发现腐蚀原因方面的关键教训,这可能会在行业中带来工艺改进。#3: 预测性堵塞准确预测堵塞可以避免供水中断和可用性问题。通过使用整个供水网络的数据,AI模型可以识别堵塞的早期指标条件变化。有了这些信息,运营商可以计划干预措施,变得主动而不是被动。人工智能还可以揭示运营商改变系统的促成因素和根本原因。#4: 预测性泄漏随着水管和其他基础设施的老化,它们更容易发生泄漏和其他问题,从而导致水损失和效率低下。通过使用物联网传感器监测水流和压力,公用事业公司可以在潜在问题成为主要问题之前检测到这些问题,并采取措施修复或更换老化的基础设施。人工智能还可用于分析这些传感器的数据,并识别趋势,以帮助公用事业预测基础设施何时何地可能发生故障。#5: 预测性维护和优化可以为关键泵和阀门生成预测性维护模型,以防止意外停机并将中断降至最低。人工智能还可用于预测关键设备、流程和系统的性能,以及优化设置以降低能耗。减少人为干预物联网的使用可以帮助水务公司更有效地监控其系统,减少人工检查。物联网还创造了可由AI分析的宝贵数据。了解和预测导致泄漏的趋势可以帮助运营商管理其基础设施,最终降低维护成本、节约用水并减少环境影响。
-
排名论坛ID文章分数活动礼品文章链接1DS小龙哥958w码豆+开发者礼品盲盒cid:link_92 云言·云议905w码豆+开发者礼品盲盒cid:link_103madqfrog 855w码豆+开发者礼品盲盒cid:link_114相信光的奥特王小懒802w码豆+开发者礼品盲盒cid:link_12恭喜以上用户获奖,请获奖用户填写问卷链接~点击报名活动:戳我报名感谢各位开发者对华为云IoT的支持,在此对大家表示非常感谢!【征文主题】1、学习成长:如何从小白入门学习物联网开发知识的,如在社区博客论坛进行学习交流,观看直播视频,在云学堂学习课程,考取开发者认证等;2、上云故事:个人或企业使用华为云物联网产品、云资源的上云故事;3、活动收获:参加华为云IoT大赛、训练营等线上或线下相关活动的经历体验及收获成长;【征文要求】1、要求原创首发,不低于500中文字符,图片3-5张,文章逻辑顺畅,排版整洁优美,代码不计入字数。文章标题自拟,标题需以【我和华为云IoT】为结尾;2、不得有洗稿、抄袭、广告、凑字数等行为, 若发现一篇非原创文章,直接取消该作者的获奖资格。全文超过 50% 与他人创作的内容重复都视为非原创 (包括直接抄袭搬运、大篇幅摘抄书籍、网络文章、产品官方文档等);【征文时间】投稿时间:即日起-2023年1月31日;奖项公示:2023年2月10日;获奖信息收集:2023年2月17日前;奖品发放:2023年2月31日前;【活动内容】1、在华为云博客发文,写下你和华为云IoT这一年发生过的事情;2、可同步发布在B站、CSDN、公众号等外部媒体平台;3、将博文/视频链接回复在本帖子内(华为云博客链接可不发);【作品征集】将在华为云官方自媒体账号选取优质活动文章进行择优发布,并备注作者姓名;【奖项设置】码豆可在码豆商城直接兑换礼品,点击查看【评分规则】专家评分依据 :文章篇幅、技术含金量、排版美观度、阅读量、点赞、收藏等指标综合评分;其他说明:此活动不与云享专家激励活动同步,即参加此活动产出的文章不计入云享专家月度激励文章;【答疑解惑】有其他的疑问可私信小助手cc~
-
使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(3)接下来我给大家继续介绍一下Apache IoTDB的数据类型和相关用法在显示时间戳时,IoTDB可以支持长类型和日期时间显示类型。日期时间显示类型可以支持用户定义的时间格式。自定义时间格式的语法如下表所示:**自定义时间格式的语法**SymbolMeaningPresentationExamplesGeraeraeraCcentury of era (>=0)number20Yyear of era (>=0)year1996xweekyearyear1996wweek of weekyearnumber27eday of weeknumber2Eday of weektextTuesday; Tueyyearyear1996Dday of yearnumber189Mmonth of yearmonthJuly; Jul; 07dday of monthnumber10ahalfday of daytextPMKhour of halfday (0~11)number0hclockhour of halfday (1~12)number12Hhour of day (0~23)number0kclockhour of day (1~24)number24mminute of hournumber30ssecond of minutenumber55Sfraction of secondmillis978ztime zonetextPacific Standard Time; PSTZtime zone offset/idzone-0800; -08:00; America/Los_Angeles‘escape for textdelimiter‘’single quoteliteral‘相对时间戳相对时间是指相对于服务器时间的时间now()和DATETIME时间。用法如下:Duration = (Digit+ ('Y'|'MO'|'W'|'D'|'H'|'M'|'S'|'MS'|'US'|'NS'))+RelativeTime = (now() | DATETIME) ((+|-) Duration)+**持续时间单位的语法**SymbolMeaningPresentationExamplesyyear1y=365 days1ymomonth1mo=30 days1mowweek1w=7 days1wdday1d=1 day1dhhour1h=3600 seconds1hmminute1m=60 seconds1mssecond1s=1 second1smsmillisecond1ms=1000_000 nanoseconds1msusmicrosecond1us=1000 nanoseconds1usnsnanosecond1ns=1 nanosecond1ns用法如下:now() - 1d2h //1 day and 2 hours earlier than the current server timenow() - 1w //1 week earlier than the current server time数据类型IoTDB一共支持以下6种数据类型:BOOLEAN (布尔型)INT32 (整数型)INT64 (长整数型)FLOAT (单精度浮点)DOUBLE (双精度浮点)TEXT (字符串)时间序列float和double类型可以指定最大点数,如果编码方法为,则为浮点数小数点后的位数RLE或者TS_2DIFF,如果未指定最大点数,系统将使用浮点精度在配置文件中iotdb-engine.properties。对于浮点数据值,数据范围是(MAX_VALUE,整数型。MAX_VALUE),而不是Float。MAX_VALUE,而max_point_number是19,这是因为Java中函数Math.round(float)的限制。对于双精度数据值,数据范围为(MAX_VALUE,长整数型。MAX_VALUE),而不是Double。MAX_VALUE,而max_point_number是19,这是因为Java(Long)中函数Math.round(double)的限制,MAX_VALUE=9.22E18。当用户在系统中输入的数据的数据类型与时间序列的数据类型不对应时,系统将报告类型错误。如下所示,二阶差分编码不支持布尔类型:IoTDB> create timeseries root.ln.wf02.wt02.status WITH DATATYPE=BOOLEAN, ENCODING=TS_2DIFFerror: encoding TS_2DIFF does not support BOOLEAN
-
使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(1)当今社会,物联网技术的发展带来了许多繁琐的挑战,尤其是在数据库管理系统领域,比如实时整合海量数据、处理流中的事件以及处理数据的安全性。例如,应用于智能城市的基于物联网的交通传感器可以实时生成大量的交通数据。据估计,未来5年,物联网设备的数量将达数万亿。物联网产生大量的数据,包括流数据、时间序列数据、RFID数据、传感数据等。要有效地管理这些数据,就需要使用数据库。数据库在充分处理物联网数据方面扮演着非常重要的角色。因此,适当的数据库与适当的平台同等重要。由于物联网在世界上不同的环境中运行,选择合适的数据库变得非常重要。1.什么是IoTDB有的小伙伴可能不了解什么是IoTDB,我先来给大家简单介绍一下:IoTDB即物联网数据库,是一个面向时间序列数据的集成数据管理引擎,可以为用户提供特定的数据收集、存储和分析服务。由于其轻量级结构、高性能和可用特性,以及与Hadoop和Spark ecology的紧密集成,IoTDB满足了物联网工业领域的海量数据集存储、高速数据输入和复杂数据分析的要求。2.IoTDB的体系结构IoTDB套件可以提供真实情况下的数据采集、数据写入、数据存储、数据查询、数据可视化和数据分析等一系列功能,下图显示了IoTDB套件的所有组件带来的整体应用程序架构。如图所示呢,咱们广大用户可以使用JDBC将设备上传感器收集的时间序列数据导入本地/远程IoTDB。这些时间序列数据可以是系统状态数据(如服务器负载和CPU内存等)。消息队列数据、来自应用程序的时间序列数据或数据库中的其他时间序列数据。用户也可以将数据直接写入TsFile(本地或HDFS)。对于写入IoTDB和本地TsFile的数据,大家可以使用TsFileSync工具将TsFile同步到HDFS,从而在Hadoop或Spark数据处理平台上实现异常检测、机器学习等数据处理任务。对于写入HDFS或本地TsFile的数据,用户可以使用TsFile-Hadoop-Connector或TsFile-Spark-Connector来允许Hadoop或Spark处理数据。分析的结果可以用同样的方式写回TsFile。还有呢,IoTDB和TsFile提供了客户端工具,完全可以满足用户以SQL形式、脚本形式和图形形式编写和查看数据的各种需求。3.IoTDB的体系特征灵活部署IoTDB为用户提供了云上一键安装工具、一次解压即可使用的终端工具以及云平台与终端工具之间的桥梁工具(数据同步工具)。存储成本低IoTDB可以达到很高的磁盘存储压缩比,这意味着IoTDB可以用更少的硬件磁盘成本存储同样多的数据。高效的目录结构IoTDB支持来自智能网络设备的复杂时间序列数据结构的高效组织,来自同类设备的时间序列数据的组织,海量复杂时间序列数据目录的模糊搜索策略。高吞吐量读写IoTDB支持上百万低功耗设备的强连接数据访问,支持上面提到的智能联网设备和混合设备的高速数据读写。丰富的查询语义IoTDB支持跨设备和传感器的时间序列数据的时间对齐、时间序列域的计算(频域变换)和时间维度丰富的聚合函数支持。容易上手IoTDB支持类SQL语言、JDBC标准API和易于使用的导入/导出工具。自身和开源生态系统紧密集成IoTDB支持Hadoop、Spark等。分析生态系统和Grafana可视化工具。4.IoTDB的文件类型在IoTDB中呢,需要存储的数据种类繁多。现在我来给大家介绍IoTDB的数据存储策略,方便大家对IoTDB的数据管理有一个直观的了解。首先呢,IoTDB存储的数据分为三类,即数据文件、系统文件和预写日志文件。(1)数据文件数据文件存储用户写入IoTDB的所有数据,IoTDB包含TsFile和其他文件。TsFile存储目录可以用data_dirs来配置相关项目,其他文件通过其他特定的数据来配置项目。为了更好地支持用户的磁盘空间扩展等存储需求,IoTDB支持多种文件目录存储方式进行TsFile存储配置。用户可以将多个存储路径设置为数据存储位置,大家可以指定或自定义目录选择策略。(2)系统文件系统文件包括模式文件,模式文件存储IoTDB中数据的元数据信息。它可以通过配置base_dir配置项目。(3)预写日志文件预写日志文件存储WAL文件。它可以通过配置wal_dir配置项目。(4)设置数据存储目录的示例为了更清楚地理解配置数据存储目录,我在这给出一个示例。存储目录设置中涉及的所有数据目录路径有:base_dir、data_dirs、multi_dir_strategy、wal_dir,分别指系统文件、数据文件夹、存储策略、预写日志文件。配置项的示例如下:base_dir = $IOTDB_HOME/datadata_dirs = /data1/data, /data2/data, /data3/datamulti_dir_strategy=MaxDiskUsableSpaceFirstStrategywal_dir= $IOTDB_HOME/data/wal这段代码并不复杂,相信很多小伙伴都应该可以看懂,我在这里给大家简单说明一下下,设置以上配置后,系统将:将所有系统文件保存在$io TDB _ HOME/data中将TsFile保存在/data1/data、/data2/data、/data3/data中。选择策略是MaxDiskUsableSpaceFirstStrategy,即每次数据写入磁盘时,系统会自动选择剩余磁盘空间最大的目录来写入数据。将WAL数据保存在$IOTDB_HOME/data/wal中这次先为大家介绍到这,下次我再来给小伙伴们分享之前我自己的IoTDB学习经历~
-
简介:通过实验了解cc2500串口通讯、Iar在线调试串口通信 实现和pc端通信 Cc2500是2.4ghz的高性能发射器 用于低功耗的rf上,主要针对:工业、作用:主要有处理数据 数据缓冲 突发传输 接受信号强度知识等 Zigbee是一款新型的无线通信技术 适用于传输范围短数据传输速率较低的电子元器件间,ZigBee无线通信技术可于数以千计的微小传感器相互间,依托专门的无线电标准达成相互协调通信,因而该项技术常被称为Home RF Lite无线技术、FireFly无线技术1. 实验目的学习CC2530 串口通讯原理使用IAR在线调试串口通信,实现PC机与开发板的通信。2. 实验环境硬件:ZigBee(CC2530)模块,UART下载调试板,CCDebugger仿真器,PC机软件:IAR Embedded Workbench for 8051实验目录:Src\ZigBee\Components\CC2530无线传感网实验\实验06 串口通讯实验3. 实验原理 在无线传感网络中,CC2530开发板需要将采集到的数据发送给上位机(即PC)处理,同时上位机需要向CC2530 发送控制信息,这一切都离不开两者之间的信息传递。串口就是开发板和用户电脑交互的一种工具,串口通讯是指外设与计算机之间,通过数据信号线、控制线等 ,按位进行传输命令和数据的一种通讯方式,正确地使用串口对于ZigBee 无线开发具有较大的促进作用 。4. 实验步骤将CC Debugger仿真器一端连在PC机上,一端连在UART调试板仿真器下载口上。用IAR for 8051打开实验工程,目录在:Src\ZigBee\Components\CC2530基础实验\实验06 串口通讯实验,之后打开后缀名为(.eww)的工程文件。编译程序,菜单栏Project->Rebuild All。编译通过之后下载程序到ZigBee模块,点击按钮如图:使用光盘提供的串口终端软件AccessPort,设置为串口波特率57600、8位、无奇偶奇校验、无硬件流模式。5. 实验结果当向串口终端输入数据输入回车结束符时,将在超级终端看到串口输入的数据。如下图: 代码: u8 USART_RX_BUF[10];//定义接收数组,看传感器返回的有多少字节数据 u8 USART_RX_STA=0;//数组标志位,如第0位、第一位 static char start=0; //开始接收数据标志位void USART2_IRQHandler(void){ u8 Res=0;//定义一个数来接收每次读取的数据 if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收中断,每一个字节都会中断一次 { Res =USART_ReceiveData(USART2); //读取接收到的字节数据 //接收数据时不要随便加入占用时间的命令,如串口打印,会影响下面数据字节的接收 if(Res == 0xFF) //如果接收的第一位数据是0XFF(这个是查看传感器的手册得知的,这里相当于进行校验) { start=1; //开始接收数据标志位,一旦第一个接收正确,就就继续向下接收 } if(start== 1) { USART_RX_BUF[USART_RX_STA] = Res ; //把接收到的数据存到数组里面 USART_RX_STA++;//数组标志位加1 if(USART_RX_STA >= 10 && (USART_RX_BUF[1]==0X01))//这里还校验了接收的第二个数据 { printf("PM2.5:Ýd019d9f-e826-49bb-8cc5-17d1ffdef616n",USART_RX_BUF[3]);//通过 串口1打印接收数组里的数据 USART_SendData(USART3,USART_RX_BUF[3]); //将数据通过串口3发出 uart3_send_buff(USART_RX_BUF,10); USART_RX_STA=0;//重新开始接收 USART_RX_BUF[0] = 0; start=0; } } } }
-
目录: 1.开篇之言 2.简单介绍 3.主要代码 4.结篇之语 ------------------------------------------------------------------------------------------- 1.开篇之言 (不用看这,都是废话) ……由于新型冠状病毒的影响,不能开学,也不能回学校准备比赛。又学校推迟一周在网上开课,无聊中开启我人生中第一篇博客,由于第一次写博客,错误之处多多指教。也以此为第一篇博客来记录自己的学习和加深印象,也当做笔记啦!!!!!! ……半年前的大一暑假协会组织我们留校培训,这是目前最充实的一个暑假,两个月的暑假在家待了4天 5夜,在路上待了两天,其余都是在学校度过余假啦!!!!!! ……在培训二十天的时候,学长给布置任务练手,让做个 捡羽毛球机器人 当时刚学完51,下面准备学stm32,就决定用stm32作为主控来完成任务。 ……当天晚上买了是他们32学习板,我买的是洋桃一号开发板,当时买回来大概十天学了是stm32大部分,然后我们放了一星期假,我提前回来一天开始着手做任务,从OpenMV开始开启下半暑假旅程。 ……当然十天学stm32比较水,后来开学又看了正点原子的视频,正点原子和杜洋老师的stm32区别是有的,个人感觉正点原子比杜洋老师讲的细,不过杜洋老师的学着比正点原子好学点,好上手一些,但是推荐用正点原子比较好,毕竟是32界的大佬,讲的也挺好,资料也多。 2.简单介绍 这里我主要写一点关于OpenMV与stm32通信的,识别羽毛球需要OpenMV,然后把数据转给stm32 1.OpenMV使用Python编程,用的语法较少,简单了解一下即可,OpenMV底层是用C语言写好的函数,用户只要用Python调用就可以啦,我这是通过形状识别的圆形识别来检测羽毛球的位置(只传输在画面中的x,y坐标)。 2.stm32使用串口中断来接受数据。 3.主控是洋桃一号开发板,由于是半年前做的,现在在家没有任何实物,所以里面接线图,实物图几乎都没有,请见谅。 4.另外说句题外话,想学Python的小伙伴们可以考虑风变科技的Python小课,我是前几天看卓大大推荐的8.9元的体验课,于是体验了一下,教学方式采用文字交互式学习,挺有趣,我是今天刚闯完体验课的4关,由于后面因为比赛也没时间,所以打算以后再学吧!!!! 3.主要代码 OpenMV的所有代码,这里识别摄像头画面中最大的圆的中心坐标(x,y) import sensor, image, time, math from pyb import UART import json import ustruct sensor.reset() sensor.set_pixformat(sensor.RGB565) # grayscale is faster sensor.set_framesize(sensor.QQVGA) sensor.skip_frames(time = 2000) clock = time.clock() uart = UART(3,115200) #定义串口3变量 uart.init(115200, bits=8, parity=None, stop=1) # init with given parameters def find_max(circles): #定义寻找球面积最大的函数 max_size=0 for circle in circles: if circle.magnitude() > max_size: max_circle=circle max_size = circle.magnitude() return max_circle def sending_data(cx,cy): #发送函数(我这里没用的,还是留着吧) global uart; #frame=[0x2C,18,cx%0xff,int(cx/0xff),cy%0xff,int(cy/0xff),0x5B]; #data = bytearray(frame) data = ustruct.pack("<bbhhb", 0x2C, 0x12, int(cx), int(cy), 0x5B) uart.write(data); def recive_data(): #接收函数 global uart if uart.any(): tmp_data = uart.readline(); print(tmp_data) while(True): clock.tick() img = sensor.snapshot() circles = img.find_circles(threshold = 2500, x_margin = 10, y_margin = 10, r_margin = 10, r_min = 2, r_max = 100, r_step = 2); cx=0;cy=0; if circles: #如果找到了目标球 max_c = find_max(circles); #在圆周围画一个圆 #img.draw_circle(circle.x(), circle.y(), circle.r(), color = (255, 0, 0)) #用圆标记出目标颜色区域 img.draw_cross(max_c[0], max_c[1]) # cx, cy img.draw_cross(160, 120) # 在中心点画标记 #在目标颜色区域的中心画十字形标记 cx=max_c[0]; cy=max_c[1]; img.draw_line((80,60,cx,cy), color=(127)); #img.draw_string(160,120, "(%d, %d)"%(160,120), color=(127)); img.draw_string(cx, cy, "(%d, %d)"%(cx,cy), color=(127)); sending_data(cx,cy); #发送点位坐标 recive_data(); stm32里部分代码,只是串口部分的,用的PA.9和PA.10 usart.c void USART1_Init(void){ //串口1初始化并启动 //GPIO端口设置 GPIO_InitTypeDef GPIO_InitStructure; //串口端口配置结构体变量 USART_InitTypeDef USART_InitStructure; //串口参数配置结构体变量 NVIC_InitTypeDef NVIC_InitStructure;//串口中断配置结构体变量 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); //打开串口复用时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //打开PC端口时钟 //USART1_TX PA.9 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//设定IO口的输出速度为50MHz GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出 GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化GPIOA.10 //USART1_RX PA.10 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //PA.10 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入 GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化GPIOA.10 //Usart1 NVIC 配置 NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0 ;//抢占优先级0 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; //子优先级2 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能 NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器 //USART 初始化设置 USART_InitStructure.USART_BaudRate = 115200;//串口波特率为115200 USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式 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_Rx | USART_Mode_Tx; //收发模式 USART_Init(USART1, &USART_InitStructure); //初始化串口1 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//开启ENABLE USART_Cmd(USART1, ENABLE); //使能串口1 //如下语句解决第1个字节无法正确发送出去的问题 USART_ClearFlag(USART1, USART_FLAG_TC); //清串口1发送标志 } //串口1中断处理函数 void USART1_IRQHandler(void) //串口1全局中断服务函数 { u8 temp; if( USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET ) { USART_ClearITPendingBit(USART1,USART_IT_RXNE);//清除中断标志 temp = USART_ReceiveData(USART1); Openmv_Receive_Data(temp);//openmv数据处理函数 } } u8 RxCounter1 = 0;//接受OpenMV数据里用到的 u8 RxFlag1 = 0;//主函数中用的,可不用在意 u8 RxBuffer1[18];//接受OpenMV数据里用到的数组 u16 posX = 0,posY = 0;//x,y坐标 //接收OpenMV传过来的数据 void Openmv_Receive_Data(int16_t data) { static u8 state = 0; if(state==0&&data==0x2C) { state=1; RxBuffer1[RxCounter1++]=data; } else if(state==1&&data==18) { state=2; RxBuffer1[RxCounter1++]=data; } else if(state==2) { RxBuffer1[RxCounter1++]=data; if(RxCounter1>19||data == 0x5B) state=3; //最后字符是openmv[19] } else if(state==3) //state == 3 检测是否接受到结束标志 { if(RxBuffer1[RxCounter1-1] == 0x5B) { state = 0; // RxFlag1 = 1; USART_ITConfig(USART1,USART_IT_RXNE,DISABLE);//关闭DTSABLE中断 posX = RxBuffer1[3]<<8 | RxBuffer1[2]; //这时x,y坐标已经赋值给posX和posY posY = RxBuffer1[5]<<8 | RxBuffer1[4]; OLED_DISPLAY_8x16(2,6*8,posX/100+0x30); //x,y坐标显示OLED上方便观看 OLED_DISPLAY_8x16(2,7*8,posX0/10+0x30); OLED_DISPLAY_8x16(2,8*8,posX+0x30); OLED_DISPLAY_8x16(4,6*8,posY/100+0x30); OLED_DISPLAY_8x16(4,7*8,posY0/10+0x30); OLED_DISPLAY_8x16(4,8*8,posY+0x30); if(posX > 105 && posX < 125) //下面几行是我用到的,可不用看 { RxFlag1 = 1; // posX = 0; // posY = 0; } // RxFlag1 = 0; RxCounter1 = 0; // posX = 0; posY = 0; //上面几行是我用到的,可不用看 USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);开启ENABLE中断 } else //wrong thing { state = 0; RxCounter1=0; } } else //wrong thing { state = 0; RxCounter1=0; } usart.h extern u16 USART1_RX_STA; //接受状态标记 //Openmv_Receive_Data()函数用到的全局变量 extern u8 RxCounter1; //接受OpenMV数据里用到的 extern u8 RxFlag1; //主函数中用的,可不用在意 extern u8 RxBuffer1[18]; //接受OpenMV数据里用到的数组 extern u16 posX; //OpenMV图像中羽毛球中心x坐标 可不用在意 extern u16 posY; //OpenMV图像中羽毛球中心y坐标 //函数声明 void USART1_Init(void);//串口1初始化并启动 void Openmv_Receive_Data(int16_t data);//接收OpenMV传过来的数据 4.结篇之语 ……好了,到此第一篇博客就结束,里面可能有有些小错误,不过在我这是可以捡羽毛球的,只不过因为一些原因,成功率不高,不过OpenMV与stm32通信还是可以的,希望能帮助到你一点点就很开心了。 ……第一篇博客(2020.2.18.22:00----2020.2.19.1:30)。 ……里面废话多点,可以忽略。 ……最后希望疫情早日过去,我想回学校啦,啊哈哈哈哈哈。 ……中国加油,武汉加油。 ———————————————— 版权声明:本文为CSDN博主「苦逼的虚拟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_45417468/article/details/104384547
-
小熊派nano有个案例B6_basic_uart,是uart的Demo。按照原程序,把TX和RX短接,然后通过调试工具查看,是正常的收发。但是把串口输出连接到外部设备,就不正常了。比如usb转485的线连接到电脑上,有串口工具查看收发程序代码/* * Copyright (c) 2020 Nanjing Xiaoxiongpai Intelligent Technology Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */#include #include #include #include "ohos_init.h"#include "cmsis_os2.h"#include "wifiiot_errno.h"#include "wifiiot_gpio.h"#include "wifiiot_gpio_ex.h"#include "wifiiot_adc.h"#include "wifiiot_uart.h"#define UART_TASK_STACK_SIZE 1024 * 8#define UART_TASK_PRIO 25#define UART_BUFF_SIZE 1000static const char *data = "Hello, BearPi!\r\n";static void UART_Task(void){ uint8_t uart_buff[UART_BUFF_SIZE] = {0}; uint8_t *uart_buff_ptr = uart_buff; uint32_t ret; WifiIotUartAttribute uart_attr = { //baud_rate: 9600 .baudRate = 9600, //data_bits: 8bits .dataBits = 8, .stopBits = 1, .parity = 0, }; //Initialize uart driver ret = UartInit(WIFI_IOT_UART_IDX_1, &uart_attr, NULL); if (ret != WIFI_IOT_SUCCESS) { printf("Failed to init uart! Err code = Üece653f-8bdd-4b7d-a762-5a1f288d4c22n", ret); return; } printf("UART Test Start\n"); while (1) { printf("=======================================\r\n"); printf("*************UART_example**************\r\n"); printf("=======================================\r\n"); //通过串口1发送数据 UartWrite(WIFI_IOT_UART_IDX_1, (unsigned char *)data, strlen(data)); //通过串口1接收数据 UartRead(WIFI_IOT_UART_IDX_1, uart_buff_ptr, UART_BUFF_SIZE); printf("Uart1 read data:%s", uart_buff_ptr); usleep(1000000); }}static void UART_ExampleEntry(void){ osThreadAttr_t attr; attr.name = "UART_Task"; attr.attr_bits = 0U; attr.cb_mem = NULL; attr.cb_size = 0U; attr.stack_mem = NULL; attr.stack_size = UART_TASK_STACK_SIZE; attr.priority = UART_TASK_PRIO; if (osThreadNew((osThreadFunc_t)UART_Task, NULL, &attr) == NULL) { printf("[ADCExample] Falied to create UART_Task!\n"); }}APP_FEATURE_INIT(UART_ExampleEntry);
-
活动原帖:【华为云HCSD秋招特训营】活动福利贴获奖公示啦~~~快来看看幸运鹅是不是自己哟!重要的事情放前面,请务必在12月5日之前填写问卷提交收件地址信息,逾期视为放弃领奖>点这里,填问卷<环节一:报名抽奖中奖华为云账号奖品hid_****ta77_tbvplzmHUAWEI WATCH GT3lvji****n华为周边随机发hwid****3_g2y74smi3d3华为周边随机发hid_****ondy046x8nh0华为周边随机发sl62****3华为周边随机发hw21****235华为周边随机发hw87****992华为周边随机发bdjh****eo华为周边随机发hw94****820华为周边随机发hid_****o_5x8x2x5n6w华为周边随机发hw03****024华为周边随机发hid_****9nomvmczpvve华为周边随机发hw45****571华为周边随机发hw02****0421华为周边随机发hw84****168华为周边随机发hid_****9vya0_l5lpio华为周边随机发hid_****q6wm5s5k1jhv华为周边随机发hid_****888gol5d-igo华为周边随机发hid_****r6gg2-jbzk_o华为周边随机发hid_****znt7f-ghi0wl华为周边随机发hid_****fmafvc3ysxtv华为周边随机发hw04****3155华为周边随机发hw07****879华为周边随机发hid_****3ms5j93nujgm华为周边随机发hw82****170华为周边随机发jiao****2华为周边随机发hid_****oefxpcvs00aa华为周边随机发hid_****pd2kbvl2cga4华为周边随机发hw03****8656华为周边随机发hid_****50tmpezyre2t华为周边随机发wanj****ao040401华为周边随机发hw26****459华为周边随机发hid_****u0wwl_dkxj6u华为周边随机发hw03****1023华为周边随机发hx18****820176华为周边随机发hid_****zf2z-8nfy8by华为周边随机发hw95****941华为周边随机发hw88****705华为周边随机发hid_****43s3yzsc2o3h华为周边随机发hid_****f37enjbqoim2华为周边随机发hid_****5gal-y4x76kp华为周边随机发wj20****13华为周边随机发hid_****024cmlce_60s华为周边随机发hid_****m63db4gzn6kw华为周边随机发joey****11华为周边随机发hid_****vj81_eg6mqn5华为周边随机发hid_****icjo5ejwcgde华为周边随机发hid_****hnamb33byawu华为周边随机发hid_****6vwirdb0sgvb华为周边随机发deng****yu00华为周边随机发hid_****0hf3avjgkrzb华为周边随机发环节二:产品体验抽奖中奖华为云账号奖品hw46****5134荣耀手表2hw****4_01HUAWEI 背包(灰色)Arch****ve华为云周边礼包1bail****cool华为云周边礼包1hid_****i972华为云周边礼包1hid_****gnbd华为云周边礼包1hid_****v2ss华为云周边礼包1hid_****uf8o华为云周边礼包1hw_****474_01华为云周边礼包1hw_****968_01华为云周边礼包1hw05****5831华为云周边礼包1hw19****7844华为云周边礼包1hw57****9863华为云周边礼包1hw63****2350华为云周边礼包1hw70****8544华为云周边礼包1hw71****5899华为云周边礼包1ko****ikin华为云周边礼包1m128****5953华为云周边礼包1QK****20华为云周边礼包1sunx****obei华为云周边礼包1the_****aby华为云周边礼包1zz****li华为云周边礼包1caux****owei华为云周边礼包2cuil****ngbo华为云周边礼包2easy****asic华为云周边礼包2enjo****0724华为云周边礼包2fl****10华为云周边礼包2gm_****an华为云周边礼包2hid_****o9_2华为云周边礼包2hid_****n25k华为云周边礼包2hid_****61oc华为云周边礼包2hid_****_w-d华为云周边礼包2hw_****509_01华为云周边礼包2hw01****8841华为云周边礼包2hw48****2267华为云周边礼包2hw72****3025华为云周边礼包2hw78****9453华为云周边礼包2ka****arch华为云周边礼包2l****hanq华为云周边礼包2shes****tive华为云周边礼包2wljs****mz华为云周边礼包2yaoy****n666华为云周边礼包2cha****111000码豆conq****erok1000码豆hid_****z4u11000码豆hid_****9qyw1000码豆hw_****331_011000码豆hw_****672_011000码豆hw07****16461000码豆hw67****90791000码豆Ja****201000码豆vx17****89421000码豆wang_****_jlu1000码豆环节三:考试抽奖中奖华为云账号奖品hw****4623HUAWEI WATCH GT3zhan****iyida1000码豆hw7****2191000码豆以上就是本次活动的全部中奖用户啦,让我们恭喜这群幸运鹅!如果异议请加入群里反馈~~附:抽奖录屏(点击下载查看)
-
我又来了,这次给大家带来的是GaussDB(我感兴趣,哈哈)和IoT部分(热门)的技术干活和有解决办法的问题汇总。 GaussDB技术干货 1.OceanBase字段类型和字符集与GaussDB映射关系分析 https://bbs.huaweicloud.com/forum/thread-0269102565057959013-1-1.html 2.GaussDB问题与学习汇总 https://bbs.huaweicloud.com/forum/thread-0232102217825941002-1-1.html 3.sql查询优化——转载 https://bbs.huaweicloud.com/forum/thread-0295102172753941135-1-1.html 4.GaussDB内存不足问题分析及恢复手段 https://bbs.huaweicloud.com/forum/thread-0209978296635210009-1-1.html 5.DBeaver连接GaussDB数据库常见问题处理 https://bbs.huaweicloud.com/forum/thread-0243977263359100009-1-1.html GaussDB问题解答 1.【GaussDB】查询的时候报如下错误,怎么处理?canceling statement due to conflict with recovery https://bbs.huaweicloud.com/forum/thread-0282102585446518016-1-1.html 2.【GaussDB】GaussDB怎么查询分区表的索引信息? https://bbs.huaweicloud.com/forum/thread-0204102303886660007-1-1.html 3.请问GaussDB的session_timeout参数可以设为0不?我们这边场景需要一个长连接 https://bbs.huaweicloud.com/forum/thread-0216102130625275111-1-1.html 4.GaussDB添加索引报这个错误,是怎么回事,ERROR: temporary file size exceeds temp_file_limit (104857600kB) https://bbs.huaweicloud.com/forum/thread-0244102130307870023-1-1.html 5.GaussDB执行报错,ERROR:timestampdiff syntas is not supported 有可替换的方法吗? https://bbs.huaweicloud.com/forum/thread-0295102049642532117-1-1.html IoT技术干货 1.部署Linux下开发环境,完成Linux下代码开发(合集) https://bbs.huaweicloud.com/forum/thread-0228102519201486012-1-1.html 2.C语言_结构体总结 https://bbs.huaweicloud.com/forum/thread-0228100661986637002-1-1.html 3.嵌入式开发_C语言系列文章集合(二) https://bbs.huaweicloud.com/forum/thread-0232998841159540027-1-1.html 4.Java异常架构 https://bbs.huaweicloud.com/forum/thread-0215997971320480017-1-1.html 5.C语言_文件操作相关练习题 https://bbs.huaweicloud.com/forum/thread-0216101368997826053-1-1.html IoT问题解答 1.求助:在DevEco Studio IDEA中使用华为云iot应用侧开发Java Demo时发生如下错误 https://bbs.huaweicloud.com/forum/thread-0297102479968054006-1-1.html 2.请问华为的720净化器s,型号KJ400F-C400能接入平台通过java控制吗 https://bbs.huaweicloud.com/forum/thread-0232102220566151003-1-1.html 3.求助:在用应用侧开发Java Demo获取Token时发生如下错误 https://bbs.huaweicloud.com/forum/thread-0228101919069890092-1-1.html 4.IoT边缘注册节点之后,在32位的树莓派4B上执行安装命令失败,设备无法显示在线,但是安装64位系统可以在线 https://bbs.huaweicloud.com/forum/thread-0295101445019607075-1-1.html 5.DevEco Stduio IDEA怎么获取Iot应用侧SDK https://bbs.huaweicloud.com/forum/thread-0236101357276132058-1-1.html
-
当您设置机器视觉系统时,您的相机选择将取决于您想要检查的对象、所需的速度、光照和温度,以及可用的空间。别忘了-系统的成本。机器视觉与监视对于工厂自动化或医疗领域的大多数应用,您将需要一个机器视觉相机。机器视觉摄像机捕获图像数据并将其未压缩发送到PC机。这就是为什么图片看起来不像手机上的那幅那么“漂亮”的原因。在消费者相机中,图像数据被压缩和平滑,看起来很好,但不能提供缺陷检测和代码读取所需的质量。网络摄像机或IP(Internet Protocol)摄像机记录视频并对其进行压缩。它们的优点是其稳健性和抗振动和温度尖峰。他们也容忍恶劣的照明条件和直接阳光。IP摄像头主要用于监控和智能交通系统(ITS)的应用,例如道路收费和红灯检测。区域扫描与线扫描如果你有一个高速应用与传送带,你将需要一个线扫描相机。这些摄像机使用一条像素线(有时是两条或三条线)来捕获图像数据。他们可以以每小时60英里的速度检查报纸的印刷质量,快速对物流中的信件和包裹进行排序,检查食品是否受损。他们还控制塑料薄膜、钢铁、纺织品、晶片和电子产品的质量。如果您需要深入检查,区域扫描相机是您的选择。它们有一个由几条像素线组成的矩形传感器,同时捕获整个图像。区域扫描相机用于质量保证系统、代码读取以及机器人的挑选和放置过程。它们还被集成在显微镜、牙科扫描仪和其他医疗设备中。单色对彩色如果应用程序不需要颜色分析,单色相机基本上是一个更好的选择。因为他们不需要一个颜色过滤器,他们比彩色相机更敏感,提供更详细的图像。大多数彩色机器视觉相机使用拜耳矩阵捕捉颜色数据。每个像素都有一个颜色过滤器,其中一半是绿色的,四分之一是红色和蓝色的。脱层算法利用相邻像素的信息来确定每个像素的颜色。因此,2×2从三个相邻像素读取信息,5×5从24个相邻像素读取信息。因此,如果你需要一个彩色相机,越大的衰减数,越好。CMOS与CCD在CMOS相机中,将光转换成电子信号的电子学被集成到传感器的表面。这使得数据的传输特别快。CMOS传感器的价格更低,没有绽放或涂抹,而且具有更高的动态范围。例如,这样他们就可以在同一张照片中捕捉到高亮的车牌和车中的阴影人物。由于CCD传感器在传感器表面没有转换电子器件,可以捕获更多的光,因此具有较低的噪声因子、较高的填充因子和较高的彩色保真度。这些特性使CCD相机成为像天文学这样的低光速应用的好选择。全球与滚动式船闸如果你想在高速下避免扭曲,并且不太关心价格,那么全球快门是最佳选择。有了全局快门,整个传感器表面就会同时暴露在光线下。这是很好的高速应用,如交通和运输,或物流.滚动快门逐行读取图像.然后将捕获的线条重新组合成一个图像。如果物体运动速度快或光照条件差,图像就会被扭曲。然而,调整曝光时间和实现闪光灯,可以最大限度地减少失真。卷帘门价格较低,只适用于基于CMOS的相机。帧速率帧速率是传感器每秒可以捕获和传输的图像数量。人类大脑每秒检测到大约14到16幅图像;电影的帧速率通常是24fps。对于像报纸检查这样的快速应用,相机需要在毫秒内“拍摄”。另一方面,也有一些微观的应用,要求低帧速率,可与人眼媲美。分辨力使用一个简单的公式来确定您的应用程序需要什么样的分辨率:分辨率=(对象大小/细节大小)2。假设你想确定一个两米高的人的眼睛颜色。面积=4,000,000像素=4MP这样一项决议的一个例子是2048px2048px。界面如果你的相机离电脑很远,或者你需要一个系统中的多个摄像头,你就需要千兆。它允许电缆长度高达100米,并使多摄像机集成容易。然而,USB3.0为您提供了三倍以上的带宽(350MB/s和100MB/s),是即插即用的,并且通过一根电缆具有电源和数据。它可以与电缆长度最多8米。如果你需要最高的带宽-高达850MB/s-那么相机链接是最好的选择。相机链接需要一个帧抓取器,因此系统成本较高。大小今天,最流行的小型相机尺寸是30毫米左右,每边。小型化还在继续,因此有一种新型的裸板相机,没有外壳,只有6毫米薄。这些相机是很好的尺寸限制和成本效益的应用在嵌入式领域。它们需要一个不同的基础设施:芯片上的计算机而不是PC,ARM处理器架构而不是x86;Linux、Windows物联网或Android代替Windows。一些设置可以使用USB3.0接口,但是MIPI和基于LVDS的接口允许更多的灵活性和紧凑性。
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签