News Quark:基于 ESP32 的电子测量和调试工具
1
昨天在去乐鑫的官网找资料的时候,发现一个有趣的小东西~
https://www.espressif.com/zh-hans/news/Quark
地址附上
有图有真相
这个东西居然是使用Arduino开发的~
频率计一角
QUARK 是一个集电子测量探头和调试工具为一体、对外开源、且具有无线连接功能的手持设备,适用于 Arduino、ESP32、STM32 和类似平台。它由在 Arduino 环境中编写的开源软件提供支持,这意味着即使是新手开发人员也可以修改设备固件以添加功能或修改现有功能以满足他们的需求。开箱即用,QUARK 可以测量电压、电流、电阻、电容和电感等参数。它还具有内置示波器、UART 记录器、UART 绘图仪和频率发生器。最后,它能够通过蓝牙将数据发送到可以显示和分析的自定义 iOS 和 Android 应用程序。QUARK 的第二个探头通过 USB Type-C 端口连接到设备,该端口也可用于通过 USB 交换数据。
使用了一块IPS屏幕
装配时候的爆炸图
特性和规格
电压测量范围 0~26 V
电流测量范围 0~3.2 A
电阻测量范围 0~2 MΩ
电容测量范围 2 pf~1000 uF
电感测量高达 1 H
采样率为 400 kHz 的示波器
UART 记录器
UART 绘图仪
信号发生器
分辨率为 240 x 135 的全彩 LCD
可触摸的控制按钮
通过蓝牙连接到智能手机 APP
支持 iOS 和 Android 的智能手机 APP
内置 700 mA 电池,可支持长达 5 小时的不间断运行
通过 USB Type-C 充电
无论是否有手机,所有功能都完全可用
长度 120 mm
直径 20 mm
以上为功能特性。
“Quark 内部集成的 ESP32-WROOM-32 模组可驱动 LCD 运行,并对所有测量数据进行采样。设备的一端是作为正极探头的锥形针,负/地探头与 USB Type-C 端口相连。Quark 上没有物理按钮,用户可以通过设备上的触摸感应开关滑动选择功能。它内置的 700 mA 锂聚合物电池,可支持长达 5 小时的不间断运行。电池可使用同一个 USB 进行充电。”充电时,LCD 上的电池指示灯将即时显示充电状态。
https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32e_esp32-wroom-32ue_datasheet_cn.pdf
这是我们esp芯片的数据手册
在测量电压时,Quark 会显示电压是否处于 1.8 V、3.3 V 或 5 V 逻辑电平范围内;测量电流时会显示瞬时值和一个图表;测量电容、电阻或电感时,会显示与测量值相对应的颜色代码或其他代码。这个特殊的功能为用户节省了大量的时间。
UART 调试功能可以自动检测波特率。通过 UART 接收的数据可被记录下来用于调试。示波器具有自动和手动缩放功能,可以显示传入信号的频率和时间周期。Quark 还可以借助 ESP32 的蓝牙功能连接到 Android 或 iOS APP,在手机上显示所有信息。此外,Quark 的所有测量均采用了 ESP32 的 12 位内部 ADC。
https://www.crowdsupply.com/mulin/quark
这个东西现在在众筹
外观:
QUARK 长约 12 厘米,直径约 2 厘米,非常小,但我们非常小心地确保它的紧凑性不会以牺牲可用性为代价。相反,它不仅可以舒适地握在一只手上,而且它的设计使您可以用同一只手循环使用它的各种功能。彩色 IPS 显示屏的分辨率为 240 x 135 像素,它的位置使您可以轻松地将视线从探头转移到屏幕,然后再返回。设备控制是触摸的:只需将手指向上滑动即可选择下一个功能,或向下滑动以选择上一个。
旁边的Type-C接口连接一个探头
在设计 QUARK 时,我们的目标是尽可能创建最简单、最方便的工具。设计为单手操作,设备本身是一个信号探头,可以连接第二个探头。要切换模式,你只需在身体上向上或向下滑动食指即可。QUARK 将自动调整其测量范围并在其屏幕上显示该值 - 顺便说一下,该屏幕位于设备顶部,与探头尖端对齐,因此无需转移视线,也不会有探头不在触点上面的困扰。
通常,在 Arduino 或 ESP32 上开发项目时,需要测量简单易懂的值。ESP32供电电压为3.3V,ATmega328逻辑零低于1.5V,芯片供电滤波电容一般为100nF。诸如此类的事情。即使我们可能以 0.001% 的精度测量逻辑电平,我们也很少需要立即访问准确的测量结果。我们通常只需要知道0
或1
。那这个设备就派上了用场。
PWM在负载下的瞬时绝对值
在测量电阻、电容、电感的参数时,QUARK的显示屏会显示元件的SMD代码和条纹代码。
QUARK 的示波器会自动调整波形的标度、触发和显示。它还将显示频率和周期
在记录或绘制 UART 数据时,QUARK 会自动检测波特率并调整图形的比例
波特率
QUARK 有两个智能手机应用程序。第一个是在 AppInventor 环境中编写的,有两个目的:帮助用户快速入门和让新手开发人员熟悉该平台。第二个应用程序是在 Flutter 环境中编写的,可以在 iOS 和 Android 上运行。QUARK 通过蓝牙连接到这个应用程序并与之交换数据,这使它能够远程监控设备读数。这两个应用程序功能齐全,支持所有 QUARK 的操作模式。
App
https://github.com/MulinGROUP/QUARK
这个是GitHub的开源位置。
ino文件,确实是Arduino开发的
电路原理图,就是没有Boom表。。。
ESP32芯片的相关引脚
右侧的是连接屏幕的
作者是俄罗斯人,所以代码的注释是俄罗斯语
我只能翻译一下了
随便查了下,一个电量监测的芯片
这个文件夹内的是我们的主体程序
固件 firmware 英[ˈfɜ:mweə(r)] 美[ˈfɜ:rmwer] n. (计算机的)固件(指存储在存储器而非软件中的指令) ; 稳件; [例句]This article also discusses the hardware, firmware, and operating system support for virtualization in System p.
FW就是固件了。
函数和各种变量的大纲树
相关的头文件
电量的监测芯片+IPS屏幕的分辨率+蓝牙的串口
这个小东西使用了ESP32内置的ADC
保存ADC寄存器的值+恢复ADC寄存器的值(清空)
蓝牙和串口的初始化
内部储存空间的初始化和电流测量芯片的初始化设置
I2C的配置和引脚的配置
按钮+ADC+测量的引脚等
TFT屏幕的初始化
void BluetoothHandler()
{
String mess = Bluetooth.readString();
Serial.println(mess);
if (mess == "RESTART")
ESP.restart();
if (mess == "M0" && mode != 0)
{
mode = 0;
menu_change();
}
if (mess == "M1" && mode != 1)
{
mode = 1;
menu_change();
}
if (mess == "M2" && mode != 2)
{
mode = 2;
menu_change();
}
if (mess == "M3" && mode != 3)
{
mode = 3;
menu_change();
}
if (mess == "M4" && mode != 4)
{
mode = 4;
menu_change();
}
if (mess == "M5" && mode != 5)
{
mode = 5;
menu_change();
}
if (mess == "M6" && mode != 6)
{
mode = 6;
menu_change();
}
if (mess == "M7" && mode != 7)
{
mode = 7;
menu_change();
}
}
这个菜单的切换写的有点呆
不过好用就行
串口的处理句柄
看的很粗,就是感觉这个小东西很有趣,明天有时间的话,写一下代码分析。