0%

1、摄像头选择

做本次实验的时候,推荐大家用 USB 免驱的摄像头,最好是支持 MJPEG 输出的摄像头类型。USB 免驱摄像头输出 YUV 格式和输出 MJPEG 格式,对无线监控的效果有什么影响呢?

首先大家要知道,同样是一帧数据,YUV 格式会比 MJPEG 格式的大得多,因此我们在视频传输的时候,一般是传输 MJPEG 格式的数据。这样,就有这样一个问题,如果摄像头是输出 YUV 格式,那么就意味着我们需要通过软件将视频数据由 YUV 格式转换成 MJPEG格式,然后传输。如果摄像头输出的是 MJPEG 格式,那个将可以直接将得到的数据进行传输。因此,使用支持 MJPEG 压缩的摄像头,比一般的摄像头,做无线监控的效果,好很多!

阅读全文 »

最近在做一个设备,里面有个类似闹钟的功能,我想要将所有的闹钟按照时间先后顺序排序一下,因为我是用一个数组存储的所有闹钟事件,所以需要将数组中时间相关的数据进行排序,同时获得数组的下标的顺序,下边是排序的Demo算法,很简单

阅读全文 »

USART 使用 ringbuffer 实现无阻塞的读写

在使用串口的使用中,由于速率比较低,因此数据的收发都比较占用资源。尤其是数据的输入,因为在程序的执行过程中无法预知到底何时才有数据过来,采用中断的方式去实现接收也有弊端,当需要解析帧协议时需要不断的去判断是否有足够一帧的数据,而且在发送过程中也无法实现无阻塞。从而浪费了大量的 CPU 资源。这里采用一种 ringbuffer 的方式去实现无阻塞的收发,发送数据时只需要数据写入 buffer 即可,不需要等待完全发送完毕才退出。接收数据时,可以先判断缓存中是否有足够的数据,再去取出缓存的数据。而且在没有数据的时候,即使调用 getchar,也不会阻塞。因此使用起来比较方便。代码的实现比较简单,很容易就能移植到其他的平台。

阅读全文 »

在编程中经常需要精确的延时,或者需要精确的统计一段代码的执行时间,亦或者是需要精确的保证某段代码被调用的频率。比如需要统计某个函数的执行时间,从而判断开销,又比如在飞控中需要精确的保证每隔 2m 调用一次读取传感器的函数,可以使用定时器去实现。在 STM32 平台上,我们可以充分的利用 systick 去实现。

阅读全文 »

DRV8825简介

DRV8825 是德州仪器设计的集成电机驱动芯片。 芯片内部集成了2个H桥电路和1/32微步进分度器, 可以驱动一个双极型电机或两个直流有刷电机。 输入电压范围 8.2 ~ 45V, 可以提供1.75A的驱动电流, 芯片在24V 25°C 的工作状态下可提供2.5A的峰值电流。0.2欧姆的导通电阻保证了芯片良好的热稳定性。 同时芯片还集成了短路、过热、欠压及交叉传导保护电路,能够检测故障状况并迅速切断H桥,从而为电机和驱动芯片提供保护。

阅读全文 »

​ 在运用Alllegro设计PCB时,把鼠标设置成大十字光标,在布局摆放元器件时,器件很方便对齐。在Allegro中,如何通过设置实现大十字光标呢?其具体设置方法如下:

1、打开Setup菜单栏下的User Preferences选项,如下图:

阅读全文 »

如果我们想要移动器件相对现在的位置向右移动5个单位,我们可以按照下面操作:
① allegro pcb中先执行移动命令
② 选中要移动的器件
③ 命令栏输入ix 5命令,然后回车

如果向左移动5个单位,那输入ix -5 ,记住 ix 后有个空格,allegro pcb中如果上下移动相对位置使用iy命令,向上移动10个单位就输入 iy 10,然后回车。

阅读全文 »