一.电脑鼠概述

1.电脑鼠所需基本能力

1.拥有稳定且快速的行走能力
2.能正确判断能力
3.记忆路径的能力

2.电脑鼠发展现状

参考资料:
维基百科
美国MIT
美国UCLA
英国伯明翰大学
英国Peter Harrison
新加坡 黄明吉先生个人主页
2009人工智慧单晶片电脑鼠即机器人竞赛教学视频
中国台湾地区第14届人工智慧单晶片电脑鼠竞赛

3.电脑鼠实验平台以及关键技术

实验平台

以直流教学型电脑鼠(2019版)为例
1.尺寸:100mm*82mm
2.采用Cortex-M3内核的微处理器
3.单向四组可测距的红外线传感器
4.单轴宽量程陀螺仪
5.高精度编码器
6.4路直流电机驱动
7.200mAh,7.4V可充电锂电池
8.一个串口和一个SPI接口

关键技术

1.直流电机控制技术

PWM调速原理
PID控制原理

2.传感器技术

红外对管应用:
发射管:TPS601A
接收管:SFH455
陀螺仪应用: 模拟陀螺仪
编码器应用: 光电编码器

4.开发环境介绍

二.电脑鼠硬件设计

1.电脑鼠类型

电脑鼠本质为移动机器人,按驱动方式主要可以分为电气驱动、气压驱动和液压驱动。
其中电气驱动的动力弱,体积小,工作频率高。气压驱动的动力较强,但气动装置体积大且工作频率低。液压驱动的动力极强,机械设计复杂,工作频率低。

2.电气驱动方式对比

电机选型 优点 缺点
步进电机 控制简单 易发热、精度低、体积大、转速慢
8520空心直流电机 精度高、转速高、体积小 控制复杂、易发热
1717空心杯直流电机 精度高、转速快、稳定性强 控制复杂、体积稍大

3.硬件设计

电脑鼠是机电一体化硬件设备,主要分为硬件电路设计、机械结构设计、其他设计。

1.硬件电路设计

设计需要满足以下四项要求:

  1. 高性能
  2. 小尺寸
  3. 易使用
  4. 低价格

硬件电路设计流程

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

功能需求分析
原理图设计
PCB设计
焊接调试

2.机械结构设计

设计需要满足以下四项要求:

  1. 低重心
  2. 小体积
  3. 稳定可靠
  4. 电机齿轮齿数
  5. 车轮齿数

机械结构设计流程

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

需求分析
零件设计
装配体设计
3D打印

3.其他设计

电池选择要求:

  1. 电压合适
  2. 容量足够
  3. 尺寸合适

轮胎选择要求:

  1. 摩擦力大(轮胎越软摩擦力越大)
  2. 机动性强(由原先的二轮改为目前的四轮驱动)

红外传感器设计:

电脑鼠前段装有四个指向不同角度的红外传感器,分别为两个倾斜10度,用于检测前方墙壁的红外传感器,和两个倾斜20度,用于检测两侧的红外传感器。根据四个传感器接收到信号的强弱差异来判断与墙壁的距离。

4.硬件电路

电脑鼠电路组成:

  1. 提供电能:电源电路
  2. 控制决策:处理器最小系统
  3. 运行控制:电机驱动
  4. 速度感知:编码器
  5. 距离感知:红外传感器
  6. 姿态感知:陀螺仪传感器
  7. 调试反馈:人机交互

流程图:

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

最小系统
人机交互
红外传感器
陀螺仪传感器
编码器
电机驱动

1.电源电路

电脑鼠电源共分为三大块,分别为7.4V用于电机驱动,5V用于编码器、红外传感器、蓝牙通讯,3.3V用于为最小系统、陀螺仪、用户LED、用户按钮供电。

2.MCU最小系统电路

3.电机驱动电路

4.编码器电路

5.红外传感器电路

6.陀螺仪电路

7.人机交互电路


通过自定义四个灯亮灭代表的意义来达到人机交互的目的。

三.电机驱动与测速编码器

1.电机驱动系统

以电动机及机械设备为控制对象,以控制器为核心,基于控制理论,实现电气传动的自动控制系统
电脑鼠电机主要选用步进电机和直流电机,由于直流电机转速很高,目前电老鼠主要都采用直流电机。其驱动过程如下图:

2.电机驱动控制

直流电机效率在部分情况下效率不够高,于是就有了空心杯直流电机。它具有以下特点:

  1. 节能特性:能量转换效率高
  2. 控制特性:响应极快,启动、制动迅速
  3. 拖动特性:运行稳定,转速波动小
  4. 外观特性:体积小,重量轻

电脑鼠中使用的是CL-8520电机,其基本参数如下:

  1. 额定电压:7.4v
  2. 输出功率:1-3W
  3. 堵转电流:2.3A
  4. 最高转速:48000转/min
  5. 外观参数:8.5mm*20mm(6g)

电机驱动电路如下所示:

四个mos驱动器分别驱动电脑鼠的四个电机,通过微处理器控制图中右侧“H桥电路”(电路中MOS管可以当做开关),使电机连续转动以及转向。
当要使电机正转时,导通QA和QD,断开QB和QC,这时电流流向如下图所示,此时电机正转。

同理,若要使电机反转,只需断开QA,QD,导通QB,QC即可。
解决电机正反转的问题之后,下一步就是控制电机转动的速度,其基本原理是通过控制电压大小来改变电机的转速,电压越大转速越快,所以这里可以选用PWM(脉冲宽度调制)控制,通过改变电压波形的占空比来控制电压的变化。


PWM频率越稳定,电机越稳定;
PWM极性控制电机的正反转;
PWM占空比越大,电机输出力量就越大;


3.电脑鼠测速编码器

1.测速编码器原理及使用:

测速的原理是通过光通过转动的光栅,在接收端通过波形换算出当前的转速,原理图如下:

为了区分当前是正转还是反转,需要对以上测速器加以改进,如下图所示:

输入:车轮转动带动编码器旋转轴转动;
输出相位差:+90° 正转、-90° 反转;
输出脉冲数:单位时间输出脉冲数越多,速度越快;

单个电机的转动方向确定后,将两侧的输出波形传给微控制器,根据两侧的转动方向和转动速度就能够掌握和控制电脑鼠的运动方向。原理图如下:

2.编码器距离系数计算:

编码器距离系数 = 编码器线数 x 4 x(轮子齿数/编码器齿数)/轮子周长

四.电脑鼠直行控制

1.直行控制需求

速度要求:

  1. 最大搜索速度:120cm/s
  2. 最大冲刺速度:220cm/s

电脑鼠迷宫中位置误差要求:

  1. 纵向位置误差: ±3.4cm
  2. 横向位置误差: ±4.4cm
    需要控制电脑鼠精准的走在迷宫的道路的中间,具体如下所示图:

知道了电脑鼠直行速度和运动位置的要求,接下来对其控制难点和所需完成的任务分别进行介绍和分析。

直行控制难点:

一 . 保持左右轮轮速一致

  1. 不同机械负载有差异
  2. 不同电机性能有差异
  3. 不同轮胎摩擦力有差异

二 . 变速过程易打滑

  1. 地面提供的摩擦力有限

直行控制任务:

  1. 匀速直行任务
  2. 匀加速启动任务
  3. 匀减速制动任务

2.PID闭环控制

控制器性能要求:稳、快、准


比例系数P: 可以加快调节速度,减小稳态误差,当过大时可能会导致振动次数增加
积分系数I : 通过调节可以消除稳态误差,提高控制的精度。
微分系数P: 调节可以减少超调量,增加系统的稳定性。


按照Kp,Ki,Kd的顺序,从零调整参数:

  1. 增大比例增益Kp,达到期望稳定速度后;
  2. 增大积分系数Ki,刚好消除静差;
  3. 根据实际情况,增大微分系数,提升响应速度。

3.直行控制方法的实现

电脑鼠控制系统可以分为默认运行的前台系统和用于中断的后台系统。
前台系统运行时先对硬件初始化,具体步骤如下图所示:

后台系统如下图所示:


后台系统每1ms中断前台系统,根据当时情况调节参数改变电脑鼠运动,具体如下图所示:

五.红外测距传感器

1.红外测距原理

元器件参数选型及参数:

现有两种红外测距方案:数字式测距和模拟式测距
它们的工作时,分别将距离信号转化为高低电平信号和电压值,具体原理如下图所示:

红外测距有两个关键的器件,分别是红外发射管和接收管,选用发射和接收角度越小,其抗干扰能力就越强。
选型元件参数如下图所示:


传感器驱动及安装:

红外传感器分为四组,分别放置在四个方向(如下图右侧所示),且stm32受功率限制,无法直接驱动红外发射管和接收管,所以需要为红外传感器的电路加上一个功率放大环节,再通过电阻限流来构成发射管和接收管的驱动回路,电路如下图左侧所示。

为了方便发射管的聚焦,在实际使用时可以在其外部套上热缩管来辅助聚焦。如下图所示:


红外传感器控制原理:

工作原理如下图所示:

主要就是四对红外发射器发出红外线,碰到迷宫墙壁后反射,并由接收管接收转化为电流信号,再根据接收到的红外光的差异,按近大远小的方式将不同大小的电信号传给微处理器。
注意:红外传感器是非线性元件,所以在实际使用时,应查表获取与距离对应的电压值。

2.红外测距技术

传感器的布局:
电脑鼠一共有四对红外传感器,为了提前检测地图前方是否有拐弯,两对传感器分别于机身两侧成20°夹角,如下图所示:

另外两对用于探测前方,安置方向与前进方向向外偏10°(如下图所示),可以让电脑鼠在连续转弯处按45°角前进,减少拐弯次数,减少消耗的时间。


滤除环境光干扰:
由于日常生活中红外光无处不在,所以不同环境会对电脑鼠红外传感器有不同的影响,为了消除背景环境的“噪音”,具体方法如下:


拟合红外距离表:
当迷宫使用时间过长,挡板会变旧发黄,这对红外传感的接受有影响,所以需要根据实际情况和查表来调整下列公式中的参数,从而使其满足使用要求。


3.红外测距实现

为了计算上述红外距离表中的参数,需要对电脑鼠的位置进行标定校准,标定总体可分为靠左校准、靠右校准、靠前校准、靠后校准一共四步。

记录标定数据后进行参数计算和生成红外距离表。


拟合红外距离曲线:
1.获取近距和远距标定点数据(实际距离和ADC采样值)
2.计算拟合函数参数(k,d)

生成红外距离表:
1.遍历红外距离表有效引索(理论测距范围)
2.通过拟合曲线生成离散点,存入内存
3.将红外距离表保存至flash,方便以后使用


六.陀螺仪传感器

七.多传感器信息融合

八.电脑鼠转向控制

九.电脑鼠策略仿真



课程来源:北京交通大学 电脑鼠原理与实践(慕课)
链接: MOOC.

电脑鼠原理与实践学习笔记相关推荐

  1. 浏览器工作原理与实践学习笔记

    浏览器工作原理与实践 参考来源: 极客时间-李兵专栏 李兵简介: 08年,在 Chromium 和 IE 发布了一款双核浏览器:太阳花,国内第一款双核浏览器 ,支持chrome并兼容IE,日活达到了2 ...

  2. 计算机图形学原理及实践学习笔记第一章

    第一章 绪论 1.1 计算机图形学简介 在计算机图形学中,"模型"这个词指的可以是 几何模型 也可以是 数学模型. 几何模型:我们想要呈现在图像中的物体的模型,例如 构建的汽车模型 ...

  3. 网络安全原理与实践学习笔记——设计DMZ

    DMZ设计思路 虽然不同网络设备中可用的安全特性在抵御网络攻击中起到了重要的作用,但事实上对网络攻击做好的防御方法之一是网络的安全拓扑设计.关注安全的网络拓扑设计对阻止网络攻击大有帮助,并且能使不同设 ...

  4. 分布式系统服务注册与发现原理 SpringCloud 学习笔记

    分布式系统服务注册与发现原理 & SpringCloud 学习笔记 分布式系统服务注册与发现原理 引入服务注册与发现组件的原因 单体架构 应用与数据分离 集群部署 微服务架构 架构演进总结 服 ...

  5. HTML4基本编译原理,Stanford公开课《编译原理》学习笔记(1~4课)

    课程里涉及到的内容讲的还是很清楚的,但个别地方有点脱节,任何看不懂卡住的地方,请自行查阅经典著作<Compilers--priciples, Techniques and Tools>(也 ...

  6. 深入浅出图神经网络|GNN原理解析☄学习笔记(四)表示学习

    深入浅出图神经网络|GNN原理解析☄学习笔记(四)表示学习 文章目录 深入浅出图神经网络|GNN原理解析☄学习笔记(四)表示学习 表示学习 表示学习的意义 离散表示与分布式表示 端到端学习 基于重构损 ...

  7. 我的世界红石计算机教程1,《我的世界》红石电脑制作原理及使用教程

    原标题:<我的世界>红石电脑制作原理及使用教程 <我的世界>中的红石可以说是非常好玩的要素,很多玩家就做一些红石小装置就满足了,那么下面小编为大家带来的这个红石设施,绝对让各位 ...

  8. Word2vec原理+实战学习笔记(二)

    来源:投稿 作者:阿克西 编辑:学姐 前篇:Word2vec原理+实战学习笔记(一)​​​​​​​ 视频链接:https://ai.deepshare.net/detail/p_5ee62f90022 ...

  9. python编程入门到实践学习笔记——外星人入侵游戏pygame(二 外星人)

    python编程入门到实践学习笔记--外星人 前言 创建外星人类 创建外星人实例 创建一群外星人 让外星人群移动 移动方向设置 击杀外星人 生成新的外星人群 结束游戏 前言 接着上个做飞船和子弹的文章 ...

最新文章

  1. Java并发编程之——BlockingQueue(队列)
  2. 中矿大新生赛 A 求解位数和【字符串】
  3. CV之detectron2:detectron2安装过程记录
  4. uva1507(状态压缩+dfs)
  5. poj2823 Sliding Window
  6. Spring Cloud是什么
  7. 计算机函数公式一等奖怎么算,信息技术应用 用计算机画函数图象教案设计(一等奖)...
  8. 块内拉升lisp_求大神告知,如何用LISP实现块数量分类统计程序,最好统计后列出表格。谢谢了。...
  9. 云计算与分布式系统课程学习笔记(一)——云计算简介
  10. 忽略这一点,人工智能变人工智障的!
  11. Unable to find setter method for attribute: [commandName]
  12. mediatek无线usb网卡驱动 linux,Ralink雷凌USB无线网卡驱动5.1.7.0版 Ralink雷凌USB无线网卡驱动5.1.7.0版 无线网卡驱动 雷凌...
  13. python就业班-淘宝-目录.txt
  14. python数独解题器_python 数独解
  15. 电脑:键盘快捷键的更改(主要以dell笔记本电脑为模拟对象)
  16. 经典按键算法使用心得
  17. Spring - 如何实现IOC
  18. 哈工大计算机专业博士毕业前景,关于博士研究生在攻读学位期间发表学术论文的要求...
  19. 对象在内存中的存储基本类型和包装类java类型转换
  20. Android开发规范文档

热门文章

  1. C#调用Microsoft.Jet.OLEDB.4.0查看MDB数据库
  2. 向量乘以其转置的意义
  3. 【渝粤教育】电大中专职业健康与安全作业 题库
  4. H5播放器标签video播放mp4格式有声音没有图像解决方法
  5. 细说HTML头部标签
  6. 材料科学与计算机结合的研究方向,材料科学与工程专业的历史、现状及发展方向...
  7. 条码扫描枪----针对MS-3扫码器的工作原理
  8. Chrome 自动化交互利器:用 tampermonkey 向页面注入自定义 Javascript
  9. 锁相放大器-SR830使用介绍
  10. 使用VS Code 插件, 快速入门超账Fabric(一) : 知识回顾