太牛了!致敬AI界的“Hello World”,只用Python和开发板,制作永不重样的时钟

RK3568开发板编译环境搭建与优化指南 嵌入式系统开发中,交叉编译环境搭建是基础且关键的环节。RK3568作为国产高性能处理器,其开发环境配置涉及工具链选择、源码编译和系统优化等多个技术点。本文从嵌入式开发通用流程切入,重点解析如何为RK3568搭建高效的编译环境,包括Buildroot和Linaro工具链的配置技巧、常见Python版本冲突解决方案,以及内存优化和NPU加速等性能调优方法。针对工业控制和边缘计算等应用场景,还分享了设备树定制和Qt应用开发等实战经验,帮助开发者充分发挥RK3568的硬件潜力。 阅读详情

机器之心报道

项目作者:Dheera Venkatraman

参与:思、Jamin

一般机器学习框架都是用MINIST作为入门,就像“Hello world”对于任何一门语言编程医院,要想入门机器学习,就要掌握MINIST。这次有位高手异想天开用Python+MINIST做了一个面钟。有了这面钟,这辈子都离不开 MNIST 手写数据集了。

我们见惯了上古时代,由电子管组成的时钟。在 AI 时代,有没有更加新潮的时间显示方式?是的,数据集也能做成时钟,每天早上,让 MNIST 手写数字唤醒你一天的记忆。

MNIST 是计算机视觉中不老的经典,当第一代卷积神经网络在这个手写数字数据集上绽放出耀眼的光芒,它注定会载入「史册」。

尽管目前计算机视觉已经早就走出了 MNIST 数据集的时代,甚至连一千多万图像的 ImageNet 也不再是非常大的一个图像数据集。然而,MNIST 仍然不可忽视,深度学习入门的第一个数据集、验证算法的第一个实验都是它。甚至连 Hinton 验证 Capsule 这个想法的数据集都用的它。

如果说想要致敬这样的数据集「先驱」,你会采用什么样的方式?在 GitHub 中,机器之心发现一个有意思的小项目,作者 Dheera Venkatraman 做了一面钟,里面的数字都是从 MNIST 数据集中采样的。

项目地址:https://github.com/dheera/mnist-clock

也就是说,24 小时随机抽万张不同的手写数字,每天都不带重样。做出来的效果是这样的:

这样的电子钟只需要简单的电路板再加上 4 块电子墨水屏就行了,它背后的样子是这样的:

硬件

项目使用了 TinyPICO 开发板;紧凑的 ESP32 板以及大量的 GPIO 插脚、4MB 闪存、Wi-Fi,以及其他很多功能。TinyPICO 可以说是目前世界上基于 ESP32-PICO-D4 体积最小的开发板,240 MHz 的 32 位双核处理器足够我们完成计算。

4 块 e-link 数字显示器,之所以选择 e-link,是因为它符合手写数字的概念,在任何光线条件下都能正常运行,而且也不至于打扰到任何人。Waveshare 的 e-link 显示屏大部分是 SPI,虽然也有些额外的引脚。大部分人会希望一块只包含 SPI 以及一块 CS 插脚,但多一些的链接器是有必要的。下面是 ESP32 的连接图,根据这个把电线卷起来。

作者在 TinyPICO 上使用的是两个 10-引脚的 JST-EH 的连接器,JST-EH 比 JST-XH 使用更低的配置,更适合插入,以及比标准引脚更短更安全。

JST-EH 连接器所连接的 TinyPICO

下面,再见硬件固定在 3D 打印的外壳上,就大功告成了:

如果读者们对硬件不熟悉,那也不要急,我们只要按照项目作者给出的硬件,并装配好就行了。后面我们会介绍所有「装备」的价格以及作者提供了设计图。

软件

项目作者 Dheera Venkatraman 表示,他经常写 C++或者 C,但他对 MicroPython 非常有兴趣,因此在这个项目中采用的就是它。

项目作者使用每像素 2 比特的灰度深度来表示 MNIST 手写数字。在这种比特深度下一张 28*28 像素的图像只需要 196 字节,因此一个 4MB 的闪存就能满足整个 MNIST 验证集。如果你想把整个数据集都装进去,那么也只需要换闪存更大的微控制器、或者使用 1 比特深度的图像、或者使用压缩方法等。

将所有文件放在 TinyPICO 根目录中的/ code 中,正确的文件大概如下图所示。

另外,我们还需要为 Wi-Fi 创建一个名为.wifi 的文件,中间写上 yourssid 与 yourpassword,具体的读取 WIFI 设置的代码就如下所示。

项目作者 Dheera Venkatraman 在 GitHub 中提供了所有代码文件,打印钟表数字的代码也非常易读。更友善的的是,作者的代码提供了非常完善的注释,基本重要的语句都有解读。

现实一点,做一块多少钱?

如果从硬件来看,似乎主要成本就是 TinyPICO 开发板以及四块 e-ink 屏。首先 TinyPICO 在淘宝或者国外网站都能买到,国外卖 20 美元,而淘宝上标价 235 元,加上运费其实也差不多。此外,读者也可以选择专门的元器件商城,其价格也在 200 块左右。

其次,一块 e-ink 屏大概 24 美元,虽然淘宝找不到,但是国内的元器件商城要便宜得多,一块只需要 92 元左右,可能树莓派对它的需求比较大吧。

其它的成本就比较少了,线材、连接器装时钟的外包装都比较容易获得,在国内的元器件商城也可以一次性买到。如果读者想 3D 打印外包装,作者也提供了具体的打印参数。所以,总的来说,制作成本应该是低于 650 元的,其中开发板和电子屏都可以在其它项目中再利用。

也许我们还能改进该项目作者的实现,在一块大的墨水屏上实现数字时钟,直接使用更常用的树莓派作为主板(功耗远高于 TinyPICO),并实现更多的能力,例如实时采样个 CIFAR-10 作为背景。总之,MNIST 数字时钟还有很多可以玩的地方。

最后,所有硬件与软件的详细信息都可查阅原项目。此外,值得一提的是,Dheera Venkatraman 还是非常有意思的一位小哥哥,他从杭州到北京沿着人类历史上最长的人工河靠自行车骑了 1600 公里。

Last But Not Least

确实 MNIST 站在舞台中央的时代已经过去了,但它的作用仍然不可忽视,仍然有很多研究者致力于改进并修复它,做出独特的贡献。

2017 年,德国时尚科技公司 Zalando 提供了 Fashion MNIST 数据集,它的大小、格式和训练集 / 测试集划分与原始的 MNIST 完全一致,从 MNIST 迁移到它,我们不需要修改任何代码。

去年 6 月份,NYU 和 Facebook 的研究者重建并扩展了 MNIST 数据集,在测试集中新增了 50000 个样本,将测试集增加到 6 万样本。MNIST 作者之一的 Yann LeCun 表示,「如果多次使用原版的 MNIST 测试集,你的模型可能在测试集上已经过拟合了,是时候在新增的样本上试一下了。」

不论是将 MNIST 做成日常生活中好看又好玩的项目,还是提升数据集本身的能力,MNIST 一直都会是活着的历史~

往期趣味Python

30行Python代码来绘制一个微信图标

手把手教你50行Python代码,给心目中的女友微博秒评论

还在做重复的劳动,不如用Python自动生成Excel以邮件发送

分享一些程序员圈的趣味事

从零上手CanMV K230开发板:嵌入式AI模型部署与RISC-V实战指南 嵌入式AI与边缘计算是当前物联网和智能设备领域的核心技术,其核心原理在于将人工智能模型的推理能力部署到资源受限的终端设备上,实现低延迟、高隐私的本地智能处理。这项技术的核心价值在于打破了云端计算的局限,为智能摄像头、工业质检、可穿戴设备等场景提供了实时、可靠的解决方案。其中,RISC-V架构以其开放性和灵活性,正成为端侧AI芯片的重要选择。本文以搭载RISC-V双核处理器及专用NPU的CanMV K230开发板为例,详细解析了从环境搭建、系统烧录到模型转换与部署的完整流程。内容涵盖了如何使用NNCase工具 阅读详情

相关推荐

从51单片机到Linux开发板:嵌入式工程师的成长路径与实战经验

微控制器(MCU)与微处理器(MPU)是嵌入式系统的两大核心平台。MCU集成了CPU、内存和外设接口,适合运行裸机程序或实时操作系统,在工业控制、传感器采集等实时性要求高的场景中广泛应用;而MPU需要外接内存和存储,能够运行完整的Linux等操作系统,适用于智能家居、边缘计算等复杂应用。从MCU到MPU的过渡,体现了从硬件寄存器操作到系统软件思维的转变,是嵌入式工程师技术栈拓宽的关键。本文基于STM32和全志T113等热门平台,分享开发板选型、环境搭建、驱动调试等实战经验,涵盖交叉编译、设备树配置等核心技能

weixin_34080951的博客 390

[AI教程]TensorFlow入门:Hello World与基本操作

[AI教程]tensorflow入门:Hello World与基本操作 文章目录[AI教程]tensorflow入门:Hello World与基本操作1.tensorflow介绍2.Hello World3.基本操作 1.tensorflow介绍 TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线...

DoctorCuiLab的博客 1188

嵌入式AI视觉开发实战:基于Grove Vision AI V2与Himax SDK的模型部署与优化

嵌入式AI视觉通过在终端设备本地执行神经网络推理,实现了低延迟、高隐私和高能效的智能感知。其核心原理是将训练好的模型通过量化、编译等工具链,转换为适配专用AI协处理器(如Himax NEU)的高效格式,从而在资源受限的MCU上运行。这项技术的价值在于为物联网、智能家居、工业检测等场景提供了实时、离线的视觉分析能力。以Grove Vision AI V2开发板为例,其集成了Himax HX6537-A处理器与专用SDK,为开发者提供了从模型转换、环境搭建到应用开发的开箱即用体验。通过Himax SDK,开发者

weixin_33713503的博客 472

怎么把 Hello World 写的高端大气上档次?

用 DNA 编码 "Hello, World!- 让细菌培育出可以发光的 "Hello, World!- 用 Morse Code 的声音输出 "Hello, World!- 用植物种子种出一片开花的田地,上面写着 "Hello, World!- 在星空投影仪下,用星座的形式展示 "Hello, World!- 用粒子加速器中的轨迹模拟出 "Hello, World!- 在液态氮烟雾中,用激光刻画 "Hello, World![Piet Hello World][]> (可以用工具生成)---###

小宝哥Code的专栏 1510

ESP32开发板零基础实战:从环境搭建到物联网项目全流程指南

微控制器开发板是嵌入式系统和物联网应用的核心硬件平台,它集成了处理器、内存和多种外设接口,为开发者提供了便捷的硬件实验环境。其工作原理是通过编程控制GPIO引脚和通信协议,实现对传感器、执行器等外部设备的交互。掌握开发板技术对于学习嵌入式编程、构建智能硬件和实现边缘计算具有重要价值,广泛应用于智能家居、环境监测和穿戴设备等场景。本文以热门的ESP32开发板为例,结合Arduino IDE环境,详细讲解从驱动安装、GPIO控制到Wi-Fi通信的完整流程,并通过物联网环境监测站等实战项目,帮助开发者快速上手,解

weixin_30814329的博客 460

Ultra96开发板深度解析:从Zynq MPSoC异构架构到动手实践

FPGA(现场可编程门阵列)以其可重构的硬件逻辑成为高性能计算与嵌入式系统设计的核心器件。异构计算架构将处理器系统与可编程逻辑融合在同一芯片中,通过AXI高速总线实现数据交互,兼顾软件灵活性与硬件并行性。Zynq UltraScale+ MPSoC正是这一理念的典型代表,其内部集成四核ARM Cortex-A53与FPGA可编程逻辑,可在跑Linux的同时自定义硬件电路。文章以Ultra96开发板为载体,详解其硬件配置、启动流程、PS与PL的协作机制,并给出从烧录镜像到点亮外设的完整实操路径。对于希望从树莓

weixin_33768481的博客 278

AI朋克致敬MNIST:只用Python和开发板,制作永不重样的时钟

我们见惯了上古时代,由电子管组成的时钟。在 AI 时代,有没有更加新潮的时间显示方式?是的,数据集也能做成时钟,每天早上,让 MNIST 手写数字唤醒你一天的记忆。 ​ MNIST 是计算机视觉中不老的经典,当第一代卷积神经网络在这个手写数字数据集上绽放出耀眼的光芒,它注定会载入「史册」。 尽管目前计算机视觉已经早就走出了 MNIST 数据集的时代,甚至连一千多万图像的 ImageNet...

Python学习Q群696455390 309

超越Hello World:蜂鸟E203协处理器接口(NICE)与自定义指令集实践

本文深入探讨蜂鸟E203处理器的NICE协处理器接口,指导开发者如何设计自定义硬件加速模块以提升嵌入式系统性能。通过FPGA验证和实际案例,展示如何将计算密集型任务如矩阵运算和加密算法卸载到专用硬件,实现显著的性能提升和功耗优化。

android的专栏 669

Spring AI简单入门:Hello World

通过以上项目验证,证明了在Java语言中,基于SpringBoot+SpringAI开源框架,并使用阿里云国内大模型服务,在SpringBoot工程中集成并使用AI大模型服务是初步可行的。

3507

[AI教程]TensorFlow入门:Hello World与基本操作-代码

[AI教程]TensorFlow入门:Hello World与基本操作-代码

Layout常见错误汇总-不定时更

1、在做LVS时,出现中断错误 解决方法: 重新建立新的schematic和layout文件,对应好其中的元器件,同时两个文件的名字也要对应好“schematic”和“layout”,其他名字的话软件找不到如何对应。

weixin_38753095的博客 4万+

AI小白的第三天:抛弃捷径思想,拥抱hello world(构建第一个模型)

今天迈出学习的第一步——Hello world。

weixin_44109245的博客 460

STM32H750VBT6在Keil5下载报错?三步搞定Flash Download Failed Cortex-M7问题

本文针对STM32H750VBT6在Keil5开发环境中常见的“Flash Download Failed Cortex-M7”下载报错问题,提供了系统性的三步解决方案。核心在于理解该芯片128KB内部Flash的特殊性,并详细指导用户检查更新Device Pack、精确配置Flash下载算法地址(0x08000000, 0x20000)以及进行硬件连接验证,从而快速修复调试器与芯片间的Flash操作协议问题。

weixin_29274969的博客 481

python hello world重复_太牛了!致敬AI界的“Hello World”,只用Python和开发板,制作永不重样的时钟...

原标题:太牛了!致敬AI界的“Hello World”,只用Python和开发板,制作永不重样的时钟 机器之心报道项目作者:Dheera Venkatraman参与:思、Jamin一般机器学习框架都是用MINIST作为入门,就像“Hello world”对于任何一门语言编程医院,要想入门机器学习,就要掌握MINIST。这次有位高手异想天开用Python+MINIST做了一个面钟。有了这面钟,这辈子...

weixin_39633165的博客 174

【技术实践指南】Python解析FactSet Revere供应链数据:构建企业级断裂与重构监测指标

本文提供了一份企业级Python实践指南,详细解析如何利用FactSet Revere供应链数据库,构建供应链断裂与重构监测指标。内容涵盖数据清洗、关系对筛选、时间序列处理及核心指标(断裂、恢复、转移)的工程化实现,旨在帮助数据工程师与分析师搭建自动化、可解释的供应链风险监控系统。

weixin_29051811的博客 937

STM32H723ZGT6-单ADC极限采样率实战与分辨率权衡

本文通过实战测试,深入探讨了STM32H723ZGT6微控制器中单ADC模块的极限性能。文章详细展示了如何通过CubeMX配置时钟树、ADC参数、定时器触发与DMA,实测得出在16位分辨率下最高稳定采样率约为4.6MHz,而将分辨率降至8位后,采样率可提升至约6.2MHz,并分析了速度与分辨率之间的关键权衡,为高速数据采集项目提供选型与优化参考。

weixin_29240711的博客 298

你不知道Python多能干,小伙子骨骼惊奇不来学习吗?

正式的Python专栏第一篇,同学站住,别错过这个从0开始的文章! 学委之前写过太多Python的文章了,大都是直接上手敲代码,总结比较核心的部分。这次直接发基础的,希望有更多朋友加入Python阵营! Python 是什么? 诞生于1989年的一门高级语言,解释型/交互型/面向对象编程的脚本语言! 什么东西能这么经典?几十年还依然火爆!值得学起来。 相比其他语言像Java,Javascript等,只要你懂英语,学会Python还是比较轻松的。 相比之下,python语言使用更少的语义化的结构,阅读Pyth

持续学习持续开发,我是雷学委! 1559

机器人学(三):手眼标定

主要讲了eye-to-hand的手眼标定求解算法,包括AX=XB和AX=YB两种情况,包含SVD法、Tsai-Lenz法、最小二乘法等,从原理到解法再到算法代码实现,包括matlab代码、C++代码、库的使用等,简单明了,容易在实际项目中进行应用

行者无疆的博客 2554

oeasy-python-tutorial终极教程:从Hello World到网络爬虫的完整学习路径

oeasy-python-tutorial是面向零基础初学者的良心Python教程,提供简明易懂的Python3入门基础课程。在linux+vim生产力环境下,带你从浅入深,从简单程序学到网络爬虫,还可以配合蓝桥云上实验环境操作。 ## 一、环境准备:快速搭建Python学习环境 ### 终端操作基础 学习Python首先要熟悉终端环境,掌握`whoami`、`pwd`、`ls`等基本命令,了解

gitblog_00203的博客 362

计算机毕设项目一:基于卷积神经网络、resnet、VGG化妆品分类识别 完整代码数据可直接运行

计算机毕设项目一:基于卷积神经网络、resnet、VGG化妆品分类识别 完整代码数据可直接运行

656

SAP DRC 是什么?一文读懂 SAP Document and Reporting Compliance 的定位、架构与落地案例

把视线拉长,会发现SAP DRC的价值并不仅是用来交差的工具。它更像是企业在全球化经营中建设的一套公共底座:既能以最低的重复成本去应对各国不断演进的监管要求,也能为财务数字化与供应链协同提供可信数据回路。依托本地与云的分层职责、与的生态联动、以及按国家不断更新的任务目录,企业可以将合规变成一种标准化、工程化、可持续运营的能力。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1656

【电赛上分利器】用 AI 零代码配置 TI MSPM0?天猛星 MSPM0G3507 专属 Agent Skill 开源发布!

本文介绍了一个专为全国大学生电子设计竞赛开发的AI辅助工具——MSPM0固件开发技能库(Agent Skill)。该工具针对TI MSPM0系列主控芯片(特别是立创·天猛星MSPM0G3507开发板)的常见开发痛点,通过AI智能体实现零代码底层驱动配置。主要特点包括:1)避免手动修改易被覆盖的生成文件;2)内置开发板专属引脚避坑指南;3)提供可直接复用的代码模板;4)包含自动化查错脚本。用户只需用自然语言描述需求,AI就能自动完成外设配置和代码生成,大幅提升开发效率。项目已在GitHub开源,旨在帮助参赛队

2604_96604358的博客 382

组态王与DLT645-2007电能表通讯调试总结

组态王与电力协议DLT 645-2007调试总结 DLT 645-2007是多功能电能表通信协议,该标准由中国电力企业联合会2006年提出,该协议为主-从结构的半双工通信方式。手持单元或其它数据终端为主站,多功能电能表为从站。每个多功能电能表均有各自的地址编码。通信链路的建立与解除均由主站发出的信息帧来控制。帧是传送信息的基本单元,每帧由帧起始符、从站地址域、控制码、数据域长度、数据域、帧信息纵向校验码及帧结束符7个域组成,每部分由若干字节组成,帧格式如图1所示。 1.确定设备地址 地址域由 6 个字节构

逍遥子的博客 1万+

AI时代工程师转型:从写代码到定义问题

在生成式AI深度融入软件开发的今天,'编程能力'正从语法执行层向上迁移为问题抽象、约束建模与人机协同决策能力。理解大模型作为语义解析器而非自动补全工具的本质,掌握结构化提示词工程与本地化知识注入方法,是保障AI产出可信、可控、可追溯的技术前提。其核心价值不在于替代编码,而在于将工程师从确定性任务中解放,聚焦于业务本质建模、跨域权衡判断与技术影响力构建——这正是当前企业招聘与团队升级中最紧缺的‘AI协同能力’,也是普通开发者实现职业跃迁的关键支点。

weixin_33691700的博客 703

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

K210边缘AI实战:5个高效开发技巧完整解析

MaixPy-v1 是一款基于 MicroPython 的嵌入式 AI 开发框架,专门为 K210 RISC-V AIoT 芯片设计。这款框架通过 Python 语法简化了边缘 AI 开发流程,让开发者能够轻松利用 K210 的硬件 AI 加速功能进行图像识别、语音处理等智能应用开发。对于想要快速上手边缘 AI 项目的技术爱好者和开发者来说,MaixPy 提供了完整的开发工具链和丰富的硬件支持。

gitblog_01161的博客 792

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: 基金抄底成功的概率有多大?Python带你来分析
下一篇: 知名网站的 404 页面长啥样?
菜鸟学Python
博客等级 码龄9年 8088粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值