硬件那些事
这个作者很懒,什么都没留下…
展开
-
送给对象的时钟
给大家分享一个用ESP8266做一个高颜值的RGB时钟的项目!这个时钟还具有自动亮度控制功能并配备了温度传感器!材料准备 PCB ESP8266或Nodemcu 跳线 焊接工具 第1步: 准备工作Neo Pixel是可寻址的LED,我们可以通过编程,让它显示任何一种颜色或者数字。Neo Pixel有不同的smd封装,这个项目使用的是Ws2812b-5050 mini RGB。这种迷你LED的额定电压为3.0V到5.5V,电流为16mA(..原创 2022-05-21 21:21:43 · 232 阅读 · 0 评论 -
rs485接口的EMC电路如何设计,教你轻松学会EMC
原理图NO.11. RS485接口6KV防雷电路设计方案图1 RS485接口防雷电路接口电路设计概述:RS485用于设备与计算机或其它设备之间通讯,在产品应用中其走线多与电源、功率信号等混合在一起,存在EMC隐患。本方案从EMC原理上,进行了相关的抑制干扰和抗敏感度的设计,从设计层次解决EMC问题。2.电路EMC设计说明:(1) 电路滤波设计要点:L1为共模电感,共模电感能够对衰减共模干扰,对单板内部的干扰以及外部的干扰都能抑制,能提高产品的抗干扰能力,同时也能减小通..原创 2022-05-20 20:57:45 · 422 阅读 · 0 评论 -
移植最新版本OpenHarmony到STM32F407
STM32F407移植OpenHarmony系统一、前言最近OpenHarmony3.1已正式发布,标准系统(LiteOS-A)基础能力增强,小型系统(LiteOS-M)基本没啥变化,趋于稳定,为了弥补这个缺陷,移植最新的LiteOS-M到MCU上,使用最新的系统特性,我又研究了一下OpenHarmony移植到MCU的过程,之前移植失败有些细节没有注意到,后面研究后发现其实整体框架还是很清晰的,顺便将OpenHarmony 移植到MCU的过程分享给大家,相关教程和代码放在我的Gitee和Github原创 2022-05-11 19:46:57 · 896 阅读 · 0 评论 -
DIY自动驾驶无人机
带有多个传感器和一个由两个微控制器控制的无线摄像头的 Arduino Uno 自动驾驶无人机。通常我们会看到使用射频遥控器控制的无人机,或者使用 GPS 模块通过给出正确方向来自动控制无人机的自动驾驶仪。但在我的项目中,我使用 Arduino Uno 以另一种方式处理事情。该项目的主要目标是从特定已知区域收集数据和 2D 视频信息。为了获取信息,我们必须使用 Arduino 编程分配无人机可以行进的长度和宽度值。顾名思义,自动驾驶意味着无人机将由自己操控,而无人机的控制动作将由具有内置传感器以平原创 2022-05-11 19:44:35 · 1096 阅读 · 0 评论 -
基于STM32智能语音台灯的设计与实现
本项目设计的是一款基于STM32的智能语音台灯,主要利用了自动语音识别技术(非特定人语音识别)以及STM32F103C8T6主控单片机内的按键中断机制,通过语音和按键来控制定时器的参数影响PWM波的占空比来达到控制台灯亮度,并通过写数据将数值写入OLED显示模块上的SSD1306芯片相应的寄存器改变工作参数,在显示屏上显示台灯的亮度和其他设定的信息,使用者可以根据自身的实际需求对台灯的亮度以及开关进行调整,具有较大的应用价值、市场价值和发展空间。点击阅读原文可下载:...原创 2022-05-11 19:42:05 · 5451 阅读 · 5 评论 -
自制无刷电机控制器,牛啊
很早之前就想做一款无刷电机控制器,忙于工作一直没有弄。最近有点时间画板,打样,焊接,调试,总算顺利的转起来。期间也遇到很多问题,上网查资料,自己量波形前前后后搞了差不多近一个月,(中间又出差一周)总算搞的差不多了,特意写个总结。板子外观100*60mm 中等大小。DC 12V输入,设计最大电流10A.(实际没试过那么大的电机,手头的电机也就5 6A的样子)硬件上可以切换有感(HALL)和无感(EMF)两种模式,外部滑动变阻器调速 预留有 PWM输入、刹车、正反转、USB和uart等接口。...原创 2022-02-17 18:49:34 · 920 阅读 · 0 评论 -
无刷直流(BLDC)电机的原理及正确的使用方法
当工程师想利用电气、电子的机器在现实世界中做些什么时,他们会思考怎样才能将电信号变为“力”?将电信号转换为力的就是传动器,即电机。可以将电机视作“将电气转换为机械的力的元件”。最基本的电机是“DC电机(有刷电机)”。在磁场中放置线圈,通过流动的电流,线圈会被一侧的磁极排斥,同时被另一侧磁极所吸引,在这种作用下不断旋转。在旋转过程中令通向线圈中的电流反向流动,使其持续旋转。电机中有个叫"换向器"的部分是靠"电刷"供电的,"电刷"的位置在"转向器"上方,随着旋转不断移动。通过改变电刷的位置,可使电...原创 2022-01-28 19:24:37 · 3825 阅读 · 0 评论 -
用 Arduino 步进电机驱动的机械木条时钟
本期介绍一个木制滑动时钟项目,纯手工制作。时钟的时间由四根木条上下滑动来显示,其核心由 Arduino 开发板和四个步进电机构成。其中,步进电机是由 Arduino 以及 CNC 步进电机扩展板来驱动,同时使用 Adafruit PCF8523 RTC 模块来控制时间。时钟背后的卡槽和齿轮都是 3D 打印而成,显示数字的滑片由木头制成,上面的数字通过激光雕刻。简单粗暴,但很有趣~MAKER: Moose408时钟保留了木材的天然纹理,外型简洁干净,非常适合作为墙面的装饰品。这种通过上下移动木条来原创 2022-01-28 19:19:55 · 587 阅读 · 0 评论 -
基于MATLAB的车牌识别系统研究
随着国民经济不断增长,人们生活水平不断提高,汽车逐步走进了普通家庭。越来越多的家庭选择汽车作为代步工具,促进了智能交通系统的快速发展。而车牌识别系统作为智能交通系统的重要组成部分,能够自动识别出车牌,节省了人力,简化了工作流程,提高了识别速度的同时也避免了人工管理可能带来的错误。而MATLAB软件具有功能强大的图像处理工具箱,利用其中的函数可以大大节约底层代码编写的时间。利用MATLAB软件对采集到的汽车车牌图像实现预处理、车牌定位与分割、字符识别等过程,完成汽车车牌的自动识别。1系统.原创 2022-01-28 19:18:05 · 3274 阅读 · 0 评论 -
STM32单片机GPIO的8种工作模式
STM32单片机的GPIO有8组,分别为A、B、C、D、E,每组有0-15共16个。可以配置为8种模式:1浮空输入GPIO_Mode_IN_FLOATING外部通过IO口输入电平,传输到施密特触发器(此时施密特触发器为打开状态),直接进入输入数据寄存器,CPU通过读输入数据寄存器实现读取外部输入电平值,在输入浮空模式下可以读取外部输入电平。如果在该引脚悬空(在无信号输入)的情况下,读取该端口的电平是不确定的。2上拉输入GPIO_Mode_IPU原创 2022-01-28 19:15:00 · 4820 阅读 · 1 评论 -
QueueForMcu | 用于单片机的队列功能模块
QueueForMcu基于单片机实现的队列功能模块,主要用于8位、16位、32位非运行RTOS的单片机应用,兼容大多数单片机平台。一、特性 动态创建队列对象 动态设置队列数据缓冲区 静态指定队列元素数据长度 采用值传递的方式保存队列数据 二、快速使用#include"queue.h"#defineQ_UART_BUFFER_SIZE1024QUEUE_HandleTypeDefqUartTx;QUEUE_DATA_TBufferUa...原创 2022-01-28 19:13:53 · 159 阅读 · 0 评论 -
用面向对象思想编写单片机程序
摘要:在看别人单片机程序时,你也许是奔溃的,因为全局变量满天飞,不知道哪个在哪用了,哪个表示什么,而且编写极其不规范。自己写单片机程序时,也许你也是奔溃的。总感觉重新开启一个项目,之前的写过相似的代码也无法使用,得重新敲,代码重用度不高,编程效率低下,代码无法积累。而且感觉写这个代码没有思想,没有灵魂,没有框架,只是一个一个功能代码的堆砌,很空泛。那么这个时候,你也许应该在单片机中引入面向对象的思想了,使代码更规范。一、单片机程序框架1、轮流执行intmain(void){whi...原创 2022-01-28 19:12:28 · 270 阅读 · 0 评论 -
800V SiC电驱系统分析
交通运输行业的全球电气化需要开发高效且具有成本效益的电气化动力系统解决方案。牵引系统中 800 V 的应用实现了快速充电的优势,并可以减少导体的横截面积以降低重量和成本。由于电池仍然是电驱动系统的最主要成本构成,因此以最高效的方式使用电池提供的能量是很重要的,从电能到机械能的转换效率即电驱动系统效率就显得及其重要。为了提高效率,必须减少功率损耗:①逆变器的功率损耗必须保持在较低水平,②同时必须降低电动机的谐波损耗。碳化硅 (SiC) 技术的应用,为 800 V 系统提供了实现这两个目标的可能性。3.原创 2022-01-27 21:13:06 · 3300 阅读 · 0 评论 -
用C语言写一个虚拟机项目
本文所说的虚拟机最终由400行左右C语言代码组成。 从零开始写一个虚拟机,听起来可能让人有点望而生畏,但读完本文之后,你会惊讶地发现这件事原来如此简单,并从中深受启发。 如果你会编程,但希望更深入地了解计算机的内部原理以及编程语言是如何工作的,那么本文很适合你。理解这些代码只需要基本的 C/C++知识和二进制运算。这个虚拟机可以在Unix系统(包括macOS)上执行。代码中包含少量平台相关的配置终端(terminal)和显示(display)的代码,但这些并不是本项目的核心...原创 2022-01-27 21:10:24 · 720 阅读 · 0 评论 -
51单片机汇编指令记忆方法
虽然现在51单片机一般是用的C语言编程,但是记得当时大学教材还是教的汇编。本文总结下51单片机的汇编指令,权当是参考,感兴趣的可以了解一下。学习单片机,除了搞清单片机内部功能、存储空间分配及I/O接口外,还应掌握其指令系统。MCS-51共有111条指令,现介绍我们总结出的快速记忆MCS-51指令的方法。大家都知道,汇编语言指令由操作码、操作数两部分组成。MCS-51使用汇编语言指令,它共有44个操作码助记符,33种功能,其操作数有#data、direct、Rn、@Ri等。...原创 2022-01-27 21:02:28 · 461 阅读 · 0 评论 -
自制乐高同款机器人瓦力—Wall-E
几乎每个人都知道电影 机器总动员(如果你不知道,现在就去看吧!)和试图清理地球的黄颜色英雄。在这个项目中,我使用了我们小朋友的乐高版本,并教会了他如何避开障碍物。这是我的第一个项目,也是了解电子基础知识的一次很好的学习经历。第 1 步 - 代码作为一名软件开发人员,我考虑了我想让他做什么,并准备先从代码开始。// This program is to control the Wall-E Lego robot.// Wall-E is driving around. When he sees .原创 2022-01-27 21:00:46 · 639 阅读 · 0 评论 -
QueueForMcu | 用于单片机的队列功能模块
QueueForMcu基于单片机实现的队列功能模块,主要用于8位、16位、32位非运行RTOS的单片机应用,兼容大多数单片机平台。一、特性 动态创建队列对象 动态设置队列数据缓冲区 静态指定队列元素数据长度 采用值传递的方式保存队列数据 二、快速使用#include"queue.h"#defineQ_UART_BUFFER_SIZE1024QUEUE_HandleTypeDefqUartTx;QUEUE_DATA_TBufferUa...原创 2022-01-27 20:59:14 · 112 阅读 · 0 评论 -
嵌入式 C 语言上下文切换的一种方案
嵌入式编程的需求千变万化,要做到系统稳定,又要代码可复用,就要做到高内聚低耦合。前言我们通常认为,在中断中,不能执行耗时的操作,否则会影响系统的稳定性,尤其对于嵌入式编程。对于带操作系统的程序而言,可以通过操作系统的调度,将中断处理分成两个部分,耗时的操作可以放到线程中去执行,但是对于没有操作系统的情况,又应该如何处理呢比较常见的,我们可能会定义一些全局变量,作为flag,然后在mainloop中不停的判断这些flag,再在中断中修改这些flag,最后在mainloop中执行具体的逻辑,但是原创 2022-01-24 19:37:17 · 116 阅读 · 0 评论 -
嵌入式 C 语言中三块难啃的硬骨头
C语言在嵌入式学习中是必备的知识,审核大部分操作都要围绕C语言进行,而其中有三块“难啃的硬骨头”几乎是公认级别的。01指针指针公认最难理解的概念,也是让很多初学者选择放弃的直接原因指针之所以难理解,因为指针本身就是一个变量,是一个非常特殊的变量,专门存放地址的变量,这个地址需要给申请空间才能装东西,而且因为是个变量可以中间赋值,这么一倒腾很多人就开始犯晕了,绕不开弯了。C语言之所以被很多高手所喜欢,就是指针的魅力,中间可以灵活的切换,执行效率超高,这点也是让小白晕菜的地方。指原创 2022-01-24 19:35:03 · 150 阅读 · 0 评论 -
基于 Arduino UNO 的编码器菜单系统(代码)
我决定在我的项目中添加两个按钮和三个锅。这既简单又有用,但我更喜欢更少的组件,简单的外观,所以我决定用屏幕控制我的设备。现在,它正在控制连接到模拟输出的 3 个变量。接线真的很简单。SDA、SCL、编码器两个针脚、内置按钮一个针脚该函数控制轮次计数,菜单控制器将此计数传递给变量。当用户单击按钮时,计数器重置为 0。还有更简单更好的方法来控制变量。您可以使用方向变量(dir)。我做了很多即兴创作,因为现在我正在研究 midi 控制器项目。我刚刚完成了控制部分。...原创 2022-01-24 19:29:08 · 855 阅读 · 0 评论 -
读懂:无人机飞控三大算法
无人机飞控三大算法:捷联式惯性导航系统卡尔曼滤波算法飞行控制PID算法01捷联式惯性导航系统说到导航,不得不说GPS,他是接受卫星发送的信号计算出自身位置的,但是当GPS设备上方被遮挡后,GPS设备无法定位了。比如在室内、隧道内、地下等场所,基本收不到GPS信号。另一种导航方式是不依赖外界信息的,这种导航叫做惯性导航。那什么是惯性导航呢?它就是利用载体上的加速度计、陀螺仪这两种惯性元件,去分别测出飞行器的角运动信息和线运动信息,与初始姿态、初始航向、初原创 2022-01-24 19:27:55 · 3391 阅读 · 0 评论 -
解读射频芯片
传统来说,一部可支持打电话、发短信、网络服务、APP应用的手机,一般包含五个部分部分:射频部分、基带部分、电源管理、外设、软件。 射频部分:一般是信息发送和接收的部分; 基带部分:一般是信息处理的部分; 电源管理:一般是节电的部分,由于手机是能源有限的设备,所以电源管理十分重要; 外设:一般包括LCD,键盘,机壳等; 软件:一般包括系统、驱动、中间件、应用。 在手机终端中,最重要的核心就是射频芯片和基带芯片。射频芯片负责射频收发、频率合成、功率放大...原创 2022-01-23 22:39:45 · 440 阅读 · 0 评论 -
解析差分电路原理,输出电压为什么要偏移
差分运算放大电路,对共模信号得到有效抑制,而只对差分信号进行放大,因而得到广泛的应用。差分电路的电路构型上图是差分电路。目标处理电压:是采集处理电压,比如在系统中像母线电压的采集处理,还有像交流电压的采集处理等。差分同相/反相分压电阻:为了得到适合运放处理的电压,需要将高压信号进行分压处理,如图1中V1与V2两端的电压经过分压处理,最终得到适合运放处理的电压Vin+与Vin-。差分放大电路反馈,对于运算放大电路来说,运放工作在线性区,所以这里一定是...原创 2022-01-23 22:35:00 · 411 阅读 · 0 评论 -
基于 ADXL335 加速度计的手势控制机器人
该无线控制的机器人汽车使用手势:手的倾斜/方向来向前、向后、向左或向右行驶。说到机器人,手势控制机器人是业余爱好者和学生在物理和实际项目中理解和实施微控制器知识的最常见的项目类型之一。其背后的概念很简单:手掌的方向控制机器人汽车的运动。但如果你要问它是怎么做到的?那就得让我们仔细分解一下。为了更好地理解,我们将通过了解每个组件的角色和功能,然后将它们组合起来以实现所需的性能。1. ADXL335(加速度计)加速度计的功能很简单:感知手腕的方向。加速度计测量加速度,包括重力加速度“g”。因此,我原创 2022-01-20 19:49:18 · 1003 阅读 · 0 评论 -
基于Azure Percept 避障乐高汽车
本项目使用 LEGO Boost 汽车避障,由 Azure Percept 提供支持。硬件组件 微软 Azure× 1 LEGO BOOST 创意工具箱× 1 软件应用程序和在线服务 微软 Azure 项目背景Azure Percept 是一个硬件和服务平台,可简化 Azure AI 技术在边缘的使用。我决定在周末尝试建造简单的避障车,我对结果很满意,所以这里有一个关于它的故事。汽车底座采用 LEGO Boost 建造,它是经过轻微修改...原创 2022-01-21 20:26:43 · 477 阅读 · 0 评论 -
单片机上常用的10个滤波算法
一、限幅滤波1)方法根据经验判断两次采样允许的最大偏差值A。每次采新值时判断: 若本次值与上次值之差<=A,则本次有效; 若本次值与上次值之差>A,本次无效,用上次值代替本次。 2)优缺点克服脉冲干扰,无法抑制周期性干扰,平滑度差。3)代码/* A值根据实际调,Value有效值,new_Value当前采样值,程序返回有效的实际值*/#defineA10charValue;char filter(){charnew...原创 2022-01-21 19:00:49 · 1139 阅读 · 0 评论 -
基于Bolt的物联网可控家庭灯光系统
这个项目我们将一起构建一个基于物联网的可控家庭灯光系统,让我们的家居更智能,生活更方便。硬件组件 Bolt IoT Bolt WiFi 模块× 1 继电器模块(通用)× 1 跳线(通用) × 1 电灯泡× 1 灯泡座× 1 手机充电器× 1 手动工具和制造机器 螺丝刀 剥线机 项目背景今天工作忙吗?累死了吧?我们知道在工作了这么...原创 2022-01-20 19:52:20 · 212 阅读 · 0 评论 -
自制六足仿生机器人
摘要:经过大一那次失败之后,我决定暂时停止该项目的开发,转而先去学习那些有关嵌入式开发的基础知识,等以后有能力的时候再去独立完成这个六足机器人。很幸运的是在我大学本科即将结束的时候,我已掌握了足够的知识来完成那个曾经困扰我已久的机器人项目,于是我花了几周的时间完成了这个六足机器人,算是了却了自己的一个心愿吧。一、前言这个六足机器人是我在大四做的,是我大学本科生涯的最后一个个人项目。至于为什么我要做六足机器人,还要从高考完之后说起:当时刚考完的我一直想做一些有意思的事情,直到有一天我发现了一个叫P..原创 2022-01-21 20:37:23 · 378 阅读 · 0 评论 -
自制轮式机器人
摘要:制作这个项目的起因是大一下学期那会儿我通过学校图书馆里的《无线电》杂志开始接触Raspberry Pi卡片式计算机和Arduino微控制器,其中Raspberry Pi给当初什么都不懂的我留下了非常深刻的印象:一个信用卡大小的板子竟然可以跑带有图形界面的GNU/Linux操作系统。在强烈探索欲的驱使下,我从网上购买了两块Element14的Raspberry Pi一代Model B(现在早已经绝版了)板子以及其他相关配件,开始在Raspbian系统上自学Python和各种传感器的使用方法,后来为了原创 2022-01-21 20:30:17 · 336 阅读 · 0 评论 -
介绍H桥电机驱动电路
什么是H桥因为电路长得像字母H而得名,通常它会包含四个独立控制的开关元器件,例如下图有四个MOSFET开关元器件Q1、Q2、Q3、Q4。它们通常用于驱动电流较大的负载,比如电机。 H桥电路中间有一个直流电机M。 D1、D2、D3、D4是MOS-FET的续流二极管;开关状态下面以控制一个直流电机为例,对H桥的几种开关状态进行简单的介绍,其中正转和反转是人为规定的方向,实际工程中按照实际情况进行划分即可。正转通常H桥用来驱动感性负载...原创 2022-01-22 19:49:37 · 2460 阅读 · 0 评论 -
大神教你制作简单的16位cpu
如何制作一个简单的16位CPU,首先我们要明确CPU是做什么的,先得明白下计算机的组成结构(或者计算机的替代品,因为并不是只有计算机有CPU,现在的电子产品都很先进,很多设备例如手机、洗衣机甚至电 视和你家的汽车上面都得装一个CPU),数字电路基础,还最好有点编程的基础。相关文章推荐:用一堆开关做成一个CPU?当然,没有也没关系,这些知识都很容易获得,各种书上面都会提到,并且在接下来的过程中我会提到这些知识)我们要实现的是一个RISC指令集的CPU,并且我们最后要自己为这个CPU设计指令并且...原创 2022-01-22 19:47:01 · 460 阅读 · 1 评论 -
基于SYN7318智能家居语音识别系统的设计
摘要:随着机器学习和人工智能的热闹,国内语音行业也可谓是百花齐放,尤其是最近几年,人工智能AI技术以及智能家居得到了飞速的发展。本项目将近年来发展迅速的嵌入式技术和非特定语音识别芯片SYN7318有机的结合,设计开发了一种能够通过语音来控制家用电器的开启和关闭、拨打电话、发送短信以及网络天气播报的智能家居语音识别系统。哈哈,掉一下书袋。这个东西是18年做的一个小玩意,当时是初学32又快期末考试了做的并不完善,放到B站上有很多人要资料,所以今天抽空就把这个作品的原理和过程来写一写。这个东西虽然科技原创 2022-01-21 20:34:15 · 452 阅读 · 0 评论 -
STM32驱动舵机原理和实现
最近几年国内机器人开始起步发展,很多高校、中小学都开始进行机器人技术教学。小型的机器人、模块化的机器人、组件式的机器人是教学机器人的首选。在这些机器人产品中,舵机是很关键,使用较多的部件。根据控制方式,舵机应该称为微型伺服马达。早期在模型上使用最多,主要用于控制模型的舵面,所以俗称舵机。舵机接受一个简单的控制指令就可以自动转动到一个比较精确的角度,所以非常适合在关节型机器人产品使用。1.舵机的结构舵机简单的说就是集成了直流电机、电机控制器和减速器等,并封装在一个便于安装的外壳里的伺服单元。能...原创 2022-01-21 20:41:45 · 972 阅读 · 0 评论 -
制作一个示波器
摘要:此示波器的主控是STC8A8K64S4A12,是在B站老刘示波器基础上的升级版,扩展了测量负电压的功能,更新了UI设计,屏幕升级为1.3寸OLED屏。原理图3D效果图摘要:此示波器的主控是STC8A8K64S4A12,是在B站老刘示波器基础上的升级版,扩展了测量负电压的功能,更新了UI设计,屏幕升级为1.3寸OLED屏。原理图3D效果图实物图系统架构Mini示波器采用了一套成本低廉但高效的硬件,配合层...原创 2022-01-21 20:53:44 · 254 阅读 · 0 评论