有个兄弟搞嵌入式,拖笔者帮忙搞一下蓝牙芯片的AOA定位功能。酒也喝了,菜也吃了。 时间是要花的,话说笔者有8年没有搞过硬件了,稍微有点手生…… 先从分析开始,自下而上进行设计,据笔者所知,目前AOA蓝牙定位的准确度可以到10cm, 可以满足室内定位,例如机器人送餐服务、扫地机器人、停车导航等应用场景。

芯片选型:

  • 先说下芯片厂家是怎么回事儿:大家都知道intel是做x86主机和服务器芯片的,高通是做soc的,也就高端手机arm芯片。海思也是做soc的,主推4k,8k硬件编解码内置h264协议电路的arm芯片,这些片上外围电路海思还是有点心得的。 芯片其实有很多种,处理器,基带芯片,dsp,移位寄存器,存储矩阵(也就是内存条),显卡,等。 蓝牙,是是一颗芯片,内置一个载频在2400G ~ 2400G + 128M Hz之间的无线射频信号收发器,在此之上做一个物理链路层等的传输协议就叫蓝牙(就好比,tcpip协议是在网线上面的byte数据,经过层层封装和抽象,形成Http/https/websocket/udp等协议,蓝牙协议也是封装了byte之后的协议)。

  • 芯片在加工工艺上有12nm制程,7nm制程序等区别。 在二极管形态上有ttl(3~5v为高电平)工艺和cmos(1.8v为高电平)工艺的区别。 cmos工艺更省电,因此ti的蓝牙芯片,zigbee芯片全部是cmos工艺的。

  • AOA定位原理:利用三角函数数学关系,用3个基站,去发射信号出去,蓝牙设备收到信号后,返回回去的时间,无线载波的速度是固定的,就可以计算出蓝牙芯片到3个蓝牙基站之间的距离。形成三角形。利用二元二次方程,可以定位出蓝牙芯片的当前位置,形成轨迹。 在地下停车场这种地方,蓝牙AOA定位可以用于特殊车辆的监控。

  • 根据价格和芯片性能,我最终选中的芯片型号为cc2640r2l,单颗芯片不到1个美金。

  • 协议功能封装方法:模块的协议,是以AT指集的形成发布,设计方案如下:将原来的AT指令集保持不变,send和recive由原来的映射到串口,变为映射到数组或切片中,新的应用代码单独创建线程 与 蓝牙协议的虚拟AT指令集进行通讯,节省一颗外部的控制器。

cc2640r2l 蓝牙芯片架构图:

soc芯片解析:一个电路板(例如手机主板),包含LDO 电源供电部分,射频基带(其实就是天线和高频信号发生器,混频器,滤波器),定时器、硬件控制器、缓存、mmu管理器、逻辑处理单元(累加器、除法器、移位寄存器)、串口

sdk下载:从ti官方下载蓝牙5.1协议的sdk(类似于Linux kernel里面的tcpip协议部分的代码):

Ide安装:
一开始选择IAR编译器,中间发现IAR的sdk安装是全量安装(这厮比较sb,把所有主流芯片厂家的sdk全部集成在自己的exe安装包里面,一次安装消耗7GB存储空间,过分了),而且需要破解才能用。 于是选择TI官方的一款ide叫Code Composer Studio 的:

 Version: 10.4.0.00006 OS: Windows 10, v.10.0, x86_64 / win32
Java version: 1.8.0_144

经过一番操作,终于编译通过蓝牙芯片:

蓝牙芯片是标准的协议,代码不需要写,芯片厂家会去实现的很完美。 AOA开发来说后面要做的事情其实没有多少了:
用3树莓派挂载蓝牙芯片或模块,实现AOA基站的功能(记录mac address个探测点数据(不同时间点,探测到的蓝牙设备与基站的距离数据))、gin 框架或mqtt实现的服务器,对收到的三角函数采样数据进行计算,定位出目标设备的相对位置。 结合基站的绝对位置,算出目标设备的绝对位置,利用3D显示技术,将3D 地图导航数据推送给手机app,实现底线停车场停车导航。(设计效果是要跟高德地图的3D 立体导航效果一样)。

地下停车场地图构建:

以三维激光扫描雷达获取精确的室内点云数据为研究对象,提出了一种快速、准确的提取点云中的建模信息和各模型相互关系的方法,对室内三维场景进行重建。首先对室内场景进行多站三维激光扫描,对获得的三维激光点云数据进行预处理、配准得到整体的点云模型,然后进行截取取得截面图,对截面图进行重绘测量得到其精确数据,最后根据所得数据的特点使用不同的建模软件对室内的框架和细部结构分别重建并组合,完成室内建模工作。

系统架构:

#mermaid-svg-eCP24xt59FqRx6FW .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-eCP24xt59FqRx6FW .label text{fill:#333}#mermaid-svg-eCP24xt59FqRx6FW .node rect,#mermaid-svg-eCP24xt59FqRx6FW .node circle,#mermaid-svg-eCP24xt59FqRx6FW .node ellipse,#mermaid-svg-eCP24xt59FqRx6FW .node polygon,#mermaid-svg-eCP24xt59FqRx6FW .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-eCP24xt59FqRx6FW .node .label{text-align:center;fill:#333}#mermaid-svg-eCP24xt59FqRx6FW .node.clickable{cursor:pointer}#mermaid-svg-eCP24xt59FqRx6FW .arrowheadPath{fill:#333}#mermaid-svg-eCP24xt59FqRx6FW .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-eCP24xt59FqRx6FW .flowchart-link{stroke:#333;fill:none}#mermaid-svg-eCP24xt59FqRx6FW .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-eCP24xt59FqRx6FW .edgeLabel rect{opacity:0.9}#mermaid-svg-eCP24xt59FqRx6FW .edgeLabel span{color:#333}#mermaid-svg-eCP24xt59FqRx6FW .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-eCP24xt59FqRx6FW .cluster text{fill:#333}#mermaid-svg-eCP24xt59FqRx6FW div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-eCP24xt59FqRx6FW .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-eCP24xt59FqRx6FW text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-eCP24xt59FqRx6FW .actor-line{stroke:grey}#mermaid-svg-eCP24xt59FqRx6FW .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-eCP24xt59FqRx6FW .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-eCP24xt59FqRx6FW #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-eCP24xt59FqRx6FW .sequenceNumber{fill:#fff}#mermaid-svg-eCP24xt59FqRx6FW #sequencenumber{fill:#333}#mermaid-svg-eCP24xt59FqRx6FW #crosshead path{fill:#333;stroke:#333}#mermaid-svg-eCP24xt59FqRx6FW .messageText{fill:#333;stroke:#333}#mermaid-svg-eCP24xt59FqRx6FW .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-eCP24xt59FqRx6FW .labelText,#mermaid-svg-eCP24xt59FqRx6FW .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-eCP24xt59FqRx6FW .loopText,#mermaid-svg-eCP24xt59FqRx6FW .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-eCP24xt59FqRx6FW .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-eCP24xt59FqRx6FW .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-eCP24xt59FqRx6FW .noteText,#mermaid-svg-eCP24xt59FqRx6FW .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-eCP24xt59FqRx6FW .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-eCP24xt59FqRx6FW .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-eCP24xt59FqRx6FW .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-eCP24xt59FqRx6FW .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eCP24xt59FqRx6FW .section{stroke:none;opacity:0.2}#mermaid-svg-eCP24xt59FqRx6FW .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-eCP24xt59FqRx6FW .section2{fill:#fff400}#mermaid-svg-eCP24xt59FqRx6FW .section1,#mermaid-svg-eCP24xt59FqRx6FW .section3{fill:#fff;opacity:0.2}#mermaid-svg-eCP24xt59FqRx6FW .sectionTitle0{fill:#333}#mermaid-svg-eCP24xt59FqRx6FW .sectionTitle1{fill:#333}#mermaid-svg-eCP24xt59FqRx6FW .sectionTitle2{fill:#333}#mermaid-svg-eCP24xt59FqRx6FW .sectionTitle3{fill:#333}#mermaid-svg-eCP24xt59FqRx6FW .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eCP24xt59FqRx6FW .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-eCP24xt59FqRx6FW .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eCP24xt59FqRx6FW .grid path{stroke-width:0}#mermaid-svg-eCP24xt59FqRx6FW .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-eCP24xt59FqRx6FW .task{stroke-width:2}#mermaid-svg-eCP24xt59FqRx6FW .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eCP24xt59FqRx6FW .taskText:not([font-size]){font-size:11px}#mermaid-svg-eCP24xt59FqRx6FW .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eCP24xt59FqRx6FW .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-eCP24xt59FqRx6FW .task.clickable{cursor:pointer}#mermaid-svg-eCP24xt59FqRx6FW .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-eCP24xt59FqRx6FW .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-eCP24xt59FqRx6FW .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-eCP24xt59FqRx6FW .taskText0,#mermaid-svg-eCP24xt59FqRx6FW .taskText1,#mermaid-svg-eCP24xt59FqRx6FW .taskText2,#mermaid-svg-eCP24xt59FqRx6FW .taskText3{fill:#fff}#mermaid-svg-eCP24xt59FqRx6FW .task0,#mermaid-svg-eCP24xt59FqRx6FW .task1,#mermaid-svg-eCP24xt59FqRx6FW .task2,#mermaid-svg-eCP24xt59FqRx6FW .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-eCP24xt59FqRx6FW .taskTextOutside0,#mermaid-svg-eCP24xt59FqRx6FW .taskTextOutside2{fill:#000}#mermaid-svg-eCP24xt59FqRx6FW .taskTextOutside1,#mermaid-svg-eCP24xt59FqRx6FW .taskTextOutside3{fill:#000}#mermaid-svg-eCP24xt59FqRx6FW .active0,#mermaid-svg-eCP24xt59FqRx6FW .active1,#mermaid-svg-eCP24xt59FqRx6FW .active2,#mermaid-svg-eCP24xt59FqRx6FW .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-eCP24xt59FqRx6FW .activeText0,#mermaid-svg-eCP24xt59FqRx6FW .activeText1,#mermaid-svg-eCP24xt59FqRx6FW .activeText2,#mermaid-svg-eCP24xt59FqRx6FW .activeText3{fill:#000 !important}#mermaid-svg-eCP24xt59FqRx6FW .done0,#mermaid-svg-eCP24xt59FqRx6FW .done1,#mermaid-svg-eCP24xt59FqRx6FW .done2,#mermaid-svg-eCP24xt59FqRx6FW .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-eCP24xt59FqRx6FW .doneText0,#mermaid-svg-eCP24xt59FqRx6FW .doneText1,#mermaid-svg-eCP24xt59FqRx6FW .doneText2,#mermaid-svg-eCP24xt59FqRx6FW .doneText3{fill:#000 !important}#mermaid-svg-eCP24xt59FqRx6FW .crit0,#mermaid-svg-eCP24xt59FqRx6FW .crit1,#mermaid-svg-eCP24xt59FqRx6FW .crit2,#mermaid-svg-eCP24xt59FqRx6FW .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-eCP24xt59FqRx6FW .activeCrit0,#mermaid-svg-eCP24xt59FqRx6FW .activeCrit1,#mermaid-svg-eCP24xt59FqRx6FW .activeCrit2,#mermaid-svg-eCP24xt59FqRx6FW .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-eCP24xt59FqRx6FW .doneCrit0,#mermaid-svg-eCP24xt59FqRx6FW .doneCrit1,#mermaid-svg-eCP24xt59FqRx6FW .doneCrit2,#mermaid-svg-eCP24xt59FqRx6FW .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-eCP24xt59FqRx6FW .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-eCP24xt59FqRx6FW .milestoneText{font-style:italic}#mermaid-svg-eCP24xt59FqRx6FW .doneCritText0,#mermaid-svg-eCP24xt59FqRx6FW .doneCritText1,#mermaid-svg-eCP24xt59FqRx6FW .doneCritText2,#mermaid-svg-eCP24xt59FqRx6FW .doneCritText3{fill:#000 !important}#mermaid-svg-eCP24xt59FqRx6FW .activeCritText0,#mermaid-svg-eCP24xt59FqRx6FW .activeCritText1,#mermaid-svg-eCP24xt59FqRx6FW .activeCritText2,#mermaid-svg-eCP24xt59FqRx6FW .activeCritText3{fill:#000 !important}#mermaid-svg-eCP24xt59FqRx6FW .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eCP24xt59FqRx6FW g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-eCP24xt59FqRx6FW g.classGroup text .title{font-weight:bolder}#mermaid-svg-eCP24xt59FqRx6FW g.clickable{cursor:pointer}#mermaid-svg-eCP24xt59FqRx6FW g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-eCP24xt59FqRx6FW g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-eCP24xt59FqRx6FW .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-eCP24xt59FqRx6FW .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-eCP24xt59FqRx6FW .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-eCP24xt59FqRx6FW .dashed-line{stroke-dasharray:3}#mermaid-svg-eCP24xt59FqRx6FW #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-eCP24xt59FqRx6FW #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-eCP24xt59FqRx6FW #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-eCP24xt59FqRx6FW #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-eCP24xt59FqRx6FW #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-eCP24xt59FqRx6FW #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-eCP24xt59FqRx6FW #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-eCP24xt59FqRx6FW #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-eCP24xt59FqRx6FW .commit-id,#mermaid-svg-eCP24xt59FqRx6FW .commit-msg,#mermaid-svg-eCP24xt59FqRx6FW .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eCP24xt59FqRx6FW .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eCP24xt59FqRx6FW .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eCP24xt59FqRx6FW g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eCP24xt59FqRx6FW g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-eCP24xt59FqRx6FW g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-eCP24xt59FqRx6FW g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-eCP24xt59FqRx6FW g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-eCP24xt59FqRx6FW g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-eCP24xt59FqRx6FW .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-eCP24xt59FqRx6FW .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-eCP24xt59FqRx6FW .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-eCP24xt59FqRx6FW .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-eCP24xt59FqRx6FW .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-eCP24xt59FqRx6FW .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-eCP24xt59FqRx6FW .edgeLabel text{fill:#333}#mermaid-svg-eCP24xt59FqRx6FW .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-eCP24xt59FqRx6FW .node circle.state-start{fill:black;stroke:black}#mermaid-svg-eCP24xt59FqRx6FW .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-eCP24xt59FqRx6FW #statediagram-barbEnd{fill:#9370db}#mermaid-svg-eCP24xt59FqRx6FW .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-eCP24xt59FqRx6FW .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-eCP24xt59FqRx6FW .statediagram-state .divider{stroke:#9370db}#mermaid-svg-eCP24xt59FqRx6FW .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-eCP24xt59FqRx6FW .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-eCP24xt59FqRx6FW .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-eCP24xt59FqRx6FW .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-eCP24xt59FqRx6FW .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-eCP24xt59FqRx6FW .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-eCP24xt59FqRx6FW .note-edge{stroke-dasharray:5}#mermaid-svg-eCP24xt59FqRx6FW .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-eCP24xt59FqRx6FW .error-icon{fill:#522}#mermaid-svg-eCP24xt59FqRx6FW .error-text{fill:#522;stroke:#522}#mermaid-svg-eCP24xt59FqRx6FW .edge-thickness-normal{stroke-width:2px}#mermaid-svg-eCP24xt59FqRx6FW .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-eCP24xt59FqRx6FW .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-eCP24xt59FqRx6FW .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-eCP24xt59FqRx6FW .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-eCP24xt59FqRx6FW .marker{fill:#333}#mermaid-svg-eCP24xt59FqRx6FW .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-eCP24xt59FqRx6FW {color: rgba(0, 0, 0, 0.75);font: ;}

rtsp,rmtp流
基站定位原始数据
激光扫描仪
坐标系
构建横切片
3dmax
地图
蓝牙定位基站1
蓝牙定位基站2
蓝牙定位基站3
nginx服务器
服务发现
用户注册,登录
mongodb副本集
流媒体服务器
车库3d地图
pytorch AI 矩阵,numppy 3d导航轨迹流
mqtt 写入db

设计一个AOA蓝牙精准室内定位系统相关推荐

  1. 精准室内定位系统源码,采用UWB定位技术开发的智慧工厂定位系统源码

    室内定位系统源码,采用UWB定位技术开发的智慧工厂定位系统源码 技术架构:单体服务 + 硬件(UWB定位基站.卡牌) 开发语言:java 开发工具:idea .VS Code 前端框架:vue 后端框 ...

  2. RISC-V MCU+基于CH32的LoRa+ibeacon的室内定位系统

    第一部分  设计概述 设计目的 目前人们对室内定位的需求越来越多,比如在智能工厂中,员工管理.AGV(无人搬运车)的运行都需要室内定位技术:在养老院.医院,需要了解老人.病人.物料等在院里的位置:在大 ...

  3. 【喜讯】美的5G+蓝牙AOA融合精准定位项目,入选国家工业和信息化部,创新十大场景应用案例

    [喜讯]美的5G+蓝牙AOA融合精准定位项目,入选国家工业和信息化部,创新十大场景应用案例 核芯物联岳毅恒 https://www.miit.gov.cn/jgsj/xgj/wjfb/art/2021 ...

  4. 揭秘蓝牙定位技术,实现精准室内导航

    提及定位,我们首先想到的是GPS定位系统.然而,GPS主要适用于室外环境,在室内定位方面存在局限性,这主要归结于两个原因:首先,GPS信号功率极低,接收要求相当高,只有在天线对空无遮挡物的情况下才能接 ...

  5. 5G时代下的室内定位系统,更安全高精准的室内定位系统-新导智能

    终端定位技术对用户的日常生活与工作已经带来了许多便利.它的首要使用包括区域事情触发功用.智能管理功用.紧迫呼救功用.事前预警功用等.区域事情触发功用是指,当手机进入或离开某一区域时,手机使用会自动触发 ...

  6. 三角定位法java代码_GitHub - megagao/IndoorPos: 这是一个采用蓝牙4.0--iBeacon技术的室内定位服务端程序。...

    IndoorPos 这是一个采用iBeacon技术的室内定位服务端程序,里面包含了三种定位算法,三边定位算法.加权三边定位算法和三角形加权质心定位算法.程序采用Spring框架,简化了JDBC和RMI ...

  7. 2021年最全系列蓝牙aoa高精度精准定位基站精准应用介绍深圳核芯物联荣誉出品

    2021年最全系列蓝牙aoa高精度精准定位基站精准应用介绍深圳核芯物联荣誉出品 核芯物联岳毅恒 作为国内最早量产出货的蓝牙AOA高精度精准定位基站设备厂家,我们发布了2021年 最全系列蓝牙aoa高精 ...

  8. android+ble室内定位,基于BLE的室内定位系统的设计与实现

    摘要: 由于卫星信号到达室内后衰减严重,使得全球卫星定位系统无法满足室内定位的需求.而如今随着社会的发展与城市化进程的推进,人们一天中80%的时间都是在室内消耗的,再加上基于位置服务(Location ...

  9. 蓝牙Ibeacon定位技术之室内定位--室内定位系统--新导智能

    随着蓝牙定位技术的发展,蓝牙定位应用场景越来越广泛,商场,停车场,化工厂,养老院等等.蓝牙定位还分好多种,蓝牙网关,蓝牙iBeacon定位技术,目前蓝牙iBeacon定位技术应用最广泛,我们一起来了解 ...

  10. 无线室内定位系统和技术在地下采矿中的应用综述2021Applications of Wireless Indoor Positioning Systems and Technologies in U

    过去十年,室内定位(或定位)领域出现了新的发展.由于全球导航卫星系统(GNSS)不能用于地下矿山,因此需要其他技术进行定位.今天的定位和通信选项主要包括Wi-Fi.蓝牙低能量(BLE).超宽带(UWB ...

最新文章

  1. uvalive3209City Game
  2. Java定义接口变量为接收类型有什么好处(面向接口编程)
  3. ngx_lua_module-1.0.5.0 (LUA编写网页脚本,支持windows和linux)
  4. 自定义Docker容器的 hostname
  5. winrar压缩指定目录
  6. UA SIE545 优化理论基础 函数凸性的一些有趣的判断方法
  7. python用pip安装_使用pip安装python库的几种常用方法
  8. 【每日一题】7月13日题目精讲—Kingdom
  9. java飞机大战分数累加代码_JAVA 基础编程练习题39 【程序 39 分数累加】
  10. rls自适应滤波器matlab实现,Matlab自适应滤波器设计Demo——LMS,RLS
  11. 中间件是什么?通俗易懂的解释
  12. 基于Layui实现的树形菜单页面
  13. AI 隐身术,让你在视频中消失的“黑魔法”,想拥有吗?
  14. SQL SERVER中PERCENTILE_CONT和PERCENTILE_DISC
  15. 基于Transformer的文本情感分析编程实践(Encoder编码器-Decoder解码器框架 + Attention注意力机制 + Positional Encoding位置编码)
  16. Python 乱码原理及其解决办法
  17. 开源PLM软件Aras详解二 汉化以及界面
  18. 退了IBM对日软件外包实训有些天了
  19. 利用C#进行AutoCAD的二次开发(转)
  20. PyQt5制作简单的 数据标注 工具(分类用)

热门文章

  1. 备战秋招之数电模电知识点
  2. spring源码解析之---InstantiationAwareBeanPostProcessor解析
  3. python对比excel重复数据_python入门之对比两份excel表格数据
  4. Petalinux移除module或app的方法
  5. c花体复制_求类似ℒℴѵℯ 这样的花体英文字母符号,可以直接复制的
  6. vlan间路由+静态路由+NAT(PAT+静态NAT)综合实验
  7. Python项目如何打包成whl文件
  8. 微信小程序UI 有赞开源UI尝试(https://github.com/youzan/zanui-weapp)
  9. ODAC Windows 安装
  10. Windows电脑云便签敬业签左边的分类怎么展开?