💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
单片机之所以神通广大,是它能够某种程度上模拟人类的智能。智能如何理解呢?首先,我认为智能是以记忆为基础的。比如我们人类包括动物都有很好的记忆能力,记忆又分为短期记忆和长期记忆,比如我们都只能我们的身份,姓名等一系列背景信息,我们经过多年的学习都掌握母语并且上学具有了一定文化等;短期记忆则是我们可以很快记住一些信息,比如别人告诉我们的电话号码。此外我们人类还有随机应变的能力,机器往往缺乏的是这种随机应变的能力。此外我们人类具有各种感觉器官,比如人的眼耳鼻舌身,感知声音,图像,温度,触觉等,感知外界环境的各种变化。各种感觉器官是我们能够随机应变的基础。 为了让单片机模拟人类的智力,其中也包含了记忆能力和某种随机应变的能力。比如我们要设计一种智能烹饪锅,让用户选择熬粥菜单的时候,锅会像我们通常的煮粥过程一样首先用大火将水和米煮沸,然后转成小火慢慢熬制一段时间,直到熬制完成关火进入保温模式。虽然这个熬粥过程非常简单,但是也涉及到了智能的几个关键点。首先我们要把熬粥过程编写为一个固定的程序(大火煮沸转小火,继续20分钟等),程序执行过程中我们必须随时知道当前程序处于的当前状态,熬制过程单片机必须通过某种输入方式掌握外界的信息(比如如何判断煮沸,这个是通过温度传感器测量外界温度感知的),然后通过控制算法(类似于人类的思维过程)对烹饪锅的功率进行控制。为了让单片机具有随机应变的能力,我们通常采用输入传感器,控制算法,输出控制单元实现的。这里是通过对功率进行控制,让大火转小火,但保持沸腾实现的。这种方法很典型,再比如循线小车,通过传感器测量小车偏离车道中心标志控制车辆前进方向实现循线前进等等。输入输出另外一个主要应用是人机交互,在台式机和笔记本电脑人机交互是通过鼠标键盘显示器实现的,在单片机领域,往往是用过类似键盘的开关按键,LED数码管,小型LCD液晶显示屏等实现人机交互的。 ```[flow] st=>start: 开始 op1=>operation: 加热 op11=>operation: 读温度传感器 cond1=>condition: 温度102度? op2=>operation: 开始计时 op22=>operation: 读温度传感器 cond2=>condition: 温度低于98度? op3=>operation: 恢复加热 cond3=>condition: 高于102度? op4=>operation: 停止加热 op5=>operation: 延时20妙 cond4=>condition: 计时到达20分钟? e=>end: 结束 st->op1->op11->cond1 cond1(no)->op11 cond1(yes)->op2->op22->cond2 cond2(yes)->op3->cond4 cond2(no,down)->cond3 cond3(yes)->op4->cond4 cond3(no)->cond4 cond4(yes)->e cond4(no)->op5(right)->op22 ``` 这个是程序流程图,一般在编写程序以前先用流程图整理编程思路辅助我们思考,也可以方便交流。流程图中方形框图代表一个动作或者一个操作,菱形框代表一个判断,根据这个判断结果形成两个不同的分支。请大家仔细思考这段程序,考虑这样一个问题:锅的温度到底是如何变化的?请大家划出大致的形状。 具体的物理实现就是单片机通过传感器获得锅的温度信息,并控制继电器(类似于电源开关通断)闭合实现是否加热。这个是最简单的实现,也有更复杂的功率控制电路我们就不讨论了。 这段程序模拟了我们前面叙述的熬粥的过程,通过测量温度控制间歇加热保持粥的沸腾,在沸腾不再持续加热,模拟小火熬粥,也实现了节能。单片机编程的过程就是将上述流程图转化为编程的各种语句,比如【加热】对应单片机通过输出控制端口向继电器闭合命令,【停止加热】就是打开;判断温度,首先通过传感器获得外界的一个温度测量,然后将此测量结果(一般放置在变量中)和预置的102度或者98度比较(专门的比较语句)。菱形框部分用 if...else...语句实现,英语的意思就是如果...就...,否则就.....,非常符合我们的思考过程。单片机的程序往往采用一个大循环的结构,就像我们这个锅的加热过程一旦锅温度沸腾,就开始重复这样的过程:测量温度,跟我们的预设温度比较(102度和98度),低于98就开始加热,超过102度就停止加热,持续20分钟。这个过程编程中采用循环语句实现(arduino有while, for等循环语句),中间除了各种编程语句外,还使用各种变量,比如测量温度,沸腾以后的记录时间等。 单片机就是这样模仿了人类的智力(程序记住了我们的熬粥经验,变量记住了我们的熬制时间,传感器和控制算法模拟了火力调节),再比如现在比较流行的无人驾驶,通过摄像头和激光雷达等复杂传感器实现道路感知,通过修正道路偏离中心线或者距离两侧道沿距离一样的方法,保持车道中心行驶,虽然更复杂,但是也大致符合上述过程(测量修正偏差循环)。