如何选择嵌入式练手项目、嵌入式开源项目大全
作者 | 将狼才鲸 |
---|---|
创建日期 | 2022-06-19 |
本文档源码地址:才鲸嵌入式 / 嵌入式知识图谱WiKi
文章阅读地址:如何选择嵌入式练手项目、嵌入式开源项目大全
一、前言
- 快速提高嵌入式技术的方法就是完成实际项目中一个或几个模块;
- 快速提高嵌入式架构水平的方法就是完成一个完整的项目;
- 如果单纯的只想学习一门特定方向的技术,而又没有完善的教程和完善的考核机制的的话,很容易就在短时间内丧失兴趣;能持续的周期性的让你兴奋的方法才是好方法;
- 一个项目不是只使用一两项单纯的技术,而是包含了多项技术,基本上都需要专精不同方向的人组成的团队来完成,选择项目时要结合自己的能力、时间成本、项目预期来选择。如果你只考虑自己的兴趣,和完成项目的成就感,而并不考虑所学技术在当前和未来岗位上的作用的话,则可以自己学习和完成所有的技术方向;
- 对项目的前瞻性、对理论知识的贡献,和项目的实用性、对技能熟练度的贡献之间要进行取舍。
二、寻找项目
1) 注意事项与方法:
- 项目需要有长期的吸引力;
- 项目需要有可预见的实用性(不过时);
- 如何寻找既有前瞻性又能提升技术水平的项目?
- “项目”是一个有实际使用价值的可独立存在的电子产品或软件产品,或者提供完整API接口和Demo的软件库;
- 寻找项目方向:
1、个人使用的,不可缺少的或者十分想要的产品;
2、企业使用的,必不可少的或者预期能提高效率的产品;
3、各种工业产业链中的一环,一个符合接口标准的模块或产品; - 寻找可用项目的方法:
1、遍历所有github或gitee中的C/C++、硬件或者嵌入式相关开源项目,熟悉已有的一些成功案例;
2、访问芯片原厂的官网,查看公司提供的方案和芯片应用的行业;
3、访问知名电子产品公司的官网,查看已经商用的产品和公司未来的研发计划;
4、在搜索引擎搜索一些有意思的嵌入式项目。
2) 开源嵌入式项目举例:
2.1 完整产品项目
- 智能手表
InfiniTimeOrg/InfiniTime - 音视频播放器
mikebrady/shairport-sync - 键盘
qmk/qmk_firmware
blackleee / XS40 - 墨水屏
甘草酸不酸 / 天气墨水屏 - 小电视
太极创客团队 / 哔哩哔哩天气时钟单色屏版
wangpeng25 / 哔哩哔哩小电视
凯文库尔 / ESP_MASTER - 透明显示屏
peng-zhihui / HoloCubic - 热成像仪
qlexcel / ThermalCam - 机械臂
灰大柱 / 小型6轴桌面机械臂 - 微型示波器
Open-ELL / MiniDSO-Pro
zhan-min / oscilloscope - 焊台
createskyblue / OpenT12
甘草酸不酸 / mini-T12
蔡子 / STM32_T12_Controller - 硬件模拟器
Gitee 极速下载 / qemu - 智能车
SeekFree / 逐飞科技基于英飞凌TC264的智能车BLDC开源项目
SeekFree / 逐飞科技基于MM32SPIN360C的智能车BLDC开源项目
harryzhang / cartographer STM32
刘骢 / Self-Balance-Car
HOME / STM32-car-MPU6050-Bluetooth-Ultrasonic - 时钟
Lengff / esp8266-lattice-clock-open - 智能锁
hanxiaohu / W600-RT-Thread智能指纹门锁 - 智能电表
azenk / VirtualMeter - 智能家居
李子 / My smart home
2.2 模块项目
- 操作系统
关键模块:进程线程管理、内存管理、文件系统、驱动、系统软件
开源网址:
Gitee极速下载/u-boot
Gitee极速下载/Linux Kernel
Gitee RT-Thread/rt-thread
Github RT-Thread/rt-thread
Huawei LiteOS/LiteOS
zephyrproject-rtos/zephyr
tock/tock
embox/embox
QuantumLeaps/qpc
alibaba/AliOS-Things
RIOT-OS/RIOT
bean/BabyOS
littlefs-project/littlefs
pellepl/spiffs
apache/incubator-nuttx - GUI库
lvgl/lvgl
Gitee idea4good/GuiLite
Github idea4good/GuiLite
zlgopen/awtk
ImpulseAdventure/GUIslice
olikraus/u8g2
gzbkey / LingLongGUI
崔洪玺 / GUI - 飞控框架
nasa/fprime
cleanflight/cleanflight - 网络服务器
cesanta/mongoose - 缓存模块
nanopb/nanopb - USB驱动和协议栈
hathach/tinyusb - 不需要依赖文件的printf
mpaland/printf - 数据库
symisc/unqlite
armink/FlashDB
taosdata/TDengine - ARM仿真器
ARMmbed/DAPLink - 图像识别与机器学习库
symisc/sod - Flash驱动与相关应用库
armink/EasyFlash - Linux固件升级模块
sbabic/swupdate - CAN驱动及应用模块
CANopenNode/CANopenNode - malloc动态内存分配模块
thi-ng/tinyalloc - ini文件解析器
benhoyt/inih - 嵌入式基础模块:网络、音视频、队列等
Gitee gozfree/gear-lib
Github gozfree/gear-lib - modbus驱动
ECBM工作室 / modbus
armink / FreeModbus_Slave-Master-RTT-STM32 - USB无线网卡驱动
linkaiqin / USB Wireless LAN Driver for STM32F4xx - 按键驱动
wei / key_board
RT-Thread-Mirror / FlexibleButton
2.3 相关项目举例:
- 语音转文字
mozilla/DeepSpeech - 深度学习引擎
PaddlePaddle/Paddle-Lite - 硬件连接到云
blynkkk/blynk-library - STM32工具集
stlink-org/stlink - rust替代C开发嵌入式
rust-embedded/awesome-embedded-rust - Python引擎
adafruit/circuitpython
pikasTech/pikascript - 嵌入式沙箱运行引擎
bytecodealliance/wasm-micro-runtime - 物联网解决方案
blinker-iot/blinker-library - C++机器学习框架
uTensor/uTensor - JavaScript引擎
cesanta/elk - AVR CPU模拟器
buserror/simavr - JSON数据库
Softmotions/ejdb - 嵌入式C++应用框架
SmingHub/Sming - 一个RISC-V CPU IP核源码
stnolting/neorv32 - 物联网平台
thingsboard/thingsboard - 任天堂游戏机模拟器
yuzu-emu/yuzu - wii游戏机模拟器
dolphin-emu/dolphin - 安卓手机投屏与群控
Genymobile/scrcpy - git版本管理
git/git - 直播与录屏
obsproject/obs-studio - FFmpeg音视频编解码
FFmpeg/FFmpeg - 网络视频流播放
ossrs/ur5 - 龙芯硬件模拟器
loongsonlab / qemu
3) 商用嵌入式产品举例:
- 品胜:
品胜官网
- 灭蚊宝、小风扇、电动牙刷、加湿器
- 储能电源、充电枪、充电宝、充电器
- 小米:
小米官网
- 平衡车、滑板车、充电器、行车记录仪、耳机、音响
- 空调、微波炉、电磁炉、冰箱、扫地机器人、洗衣机、吸尘器、投影仪、料理机、净水器、电饭煲
- 路由器、麦克风、对讲机、打印机、摄像机、智能锁、视频门铃
- 爱国者:
爱国者官网
- 移动硬盘、U盘、录音笔、执法仪、高拍仪、扫码枪、门禁、耳机、HiFi播放器、MP3播放器、音频功放、智能手表、按摩仪、数码相框
- 飞利浦:
飞利浦官网
- 车载音响、行车记录仪、车载冰箱、助听器、制氧机、智能门锁、电子保险柜、家电、投影仪、MP3、录音机、传真机、家庭影院
- 海康威视:
海康威视官网
- 各种类型摄像头(带人工智能识别和统计)、测温摄像头、硬盘录像机、视频编码器、监控主机、存储设备(NAS)、各种显示器监视器、摄像头控制键盘、会议终端、交换机、网桥、光纤收发器、门禁、读卡机、考勤机、对讲终端、安检机、车机、
- 其它设备:
- 智能手机、智能手表、摄像机、相机、音响、蓝牙耳机、电脑、游戏机、无人机
- 其它公司:
- 大疆、华为、中兴、OPPO、vivo、一加、魅族、传音、realme、荣耀、苹果、三星、TCL、创维、海信、联想、格力、美的、海尔、格兰仕、方太
- TP-Link(交换机路由器)、海能达(对讲机)、迈瑞(医疗器械)、大族激光(激光打标切割焊接)
4) 工业产品目录大全:
- 蓄电池充电器、轮椅车、交流充电桩、电动滑板、电动童车、电磁炉、空调、吸油烟机、除湿器、电热水器、冰箱、电饭煲、电火锅、电净水器、电烤炉、电压力锅、电熨斗、洗衣机、洗碗机、消毒柜、搅拌机、破壁机、豆浆机、烤面包机、酸奶机、卷发器、咖啡机、空气过滤器、空气净化器、饮水机、榨汁机、煮蛋器、电炖锅、蛋卷机、电饼机、电烤盘、空气炸锅、微波炉、按摩器、充电器、织物蒸汽机、跑步机、平衡车、电动牙刷、UPS不间断电源、移动电源
- 行车记录仪、儿童学习平板、扫地机、投影机、打印机、智能锁、照相机、助听器、机顶盒、监控设备、导航仪、读卡器、显示器、MP3播放器、MP4唱戏机、服务器、收音机、监视器、老人机、路由器、平板电脑、验钞机、拾音器、调音器、声卡、功放(声频功率放大器)、手机、POS机(税控收款机)、固定电话、U盘
3、厨房电器、食品加工机械、港口装卸机械、木工机床、木工铣床、普通车床、肉食加工机械、数控车床、数控机床、数控数显系统、数控铣床、水文仪器、岩土工程仪器、塑料机械、压力加工机械、医疗设备、印刷机械、汽车设备、农业设备、金融设备、联合收割机械、粮油加工机械、棉花加工机械、排灌机械、收获机械、饲料粉碎机械、饲料加工机械、植物保护机械 - 起重机、变压器、电子秤、包装机、气体报警器、步进电机、激光振镜、抽油机、加油机、电表、水表、气表、机床、电力线载波机、电力线阻波器滤波器、电力整流器、阀门电动装置、制药压片机、激光打标机、激光切割机、机器臂、搅拌机、经纬仪、湿度传感器、温度传感器、水准仪、血压表、眼科光学计量仪器、喷粉机、喷雾机、播种机、旋转榨油机、碾米机、三轮车、摩托车、汽车、卡车、拖拉机、运输车、清选机、水田耕整机、防爆仪表、防盗报警控制器、火灾报警产品、汽车防盗报警系统、消防联动控制系统
- 计算器、自动柜员机、胶印设备、显微镜、能谱仪、温度仪、夜视仪、射线分析仪、电泳仪、色谱仪器、频谱仪器、波普仪器、质谱仪器、物性分析仪器、热学分析仪器、光学分析仪器、电化学分析仪器、示波器、物位液位测量仪表、流量测量仪器、压力测量仪器、视听节目制作与播控设备、雷达设备、声呐设备、电视发射设备、广播发射设备、调音台、音频节目制作与播控设备、移动通信核心网分组域设备、移动通信基站设备、移动交换机、光交换机、数字程控交换机、微波终端机、微波收发通信机、卫星通信地面站终端机、GPS接收机、卫星地面接收机、光纤放大器、光缆中继设备、光端机、发电机、噪音与震动控制设备、固体废弃物处理设备、水质污染防治设备、除尘设备、大气污染防治设备、临床检验分析仪器、医用高频仪器设备、医用激光设备、医用超声设备、医用射线设备、刺绣机、工业缝纫机、织机、细纱机、纺织纤维梳理机、化学纺织纤维加工机械、印刷机、制浆造纸设备、饲料生产设备、制糖机械、磨粉机、碾米机、方便面生产线、橡胶硫化设备、橡胶成型压力机、橡胶压延机械、橡胶挤出机、3D打印机、轧材锯切设备、轧材剪切设备、金属轧制设备、铁合金冶炼设备、有色金属冶炼设备、炼钢设备、炼铁设备、炼焦设备、遭块设备、平板玻璃拉伸机、平板玻璃垂直引上机、摊铺机械、桩工机械、挖沟管道吊装机械、机动压路机、装载机、铲运机、平地机、推土机、挖掘机、海上石油钻井、陆上石油钻井、真空干燥设备、减速机、固液分离机、衡器、包装机、灌装机、真空过滤器、加氢反应器、冷却设备、气体分离液化设备、热交换装置、风机、液压系统及装置、给料机械、装卸机械、输送机械、电梯、电动汽车、起重机、塔吊、电子乐器、玩具、键盘乐器、军工设备、航空航天设备
- 光学仪器、汽车仪器仪表、环境监测专用仪器仪表、工业仪表、自动控制系统、楼宇控制系统、工业自动控制系统、工业自动调节仪表、船舶设备、轨道车辆设备、铁路机车车辆设备、草原建设机械、畜牧机械、农作物收获机械、植保机械、播种种植机械、食品加工机械、烟草加工机械、饮料加工机械、乳品加工机械、塑料加工设备、炼油化工生产专用设备、金属冶炼设备、水泥专用设备、筑路机械、采油设备、采矿专用设备、粉末冶金设备
- 电热食品加工机械、空气压缩机、电子应用仪器、广播通信铁塔设备、无线广播电视发射装备、电力调度通讯设备、水文仪器、教学仪器、岩土工程仪器
- VR设备、电动自行车、残疾人辅助器具、工业机器人、矿用传感器
- 绞车、取料机、清污机
-
机械行业国家标准目录大全,中国国家标准目录[GB、GBT],电子工业标准目录总汇:国家级的电子产品 国内最新国家标准目录(电工电子行业)
-
嵌入式公司举例:
2020电子信息百强企业名单一览
嵌入式行业公司及所属产业
- 备注:
-
机械类和强电类设备使用PLC编程,编程语言不是C语言,而是图形化的特定编程方法,选择嵌入式项目时可以排除此选项。
浅谈PLC编程的五种编程语言 -
弱电类电子设备(36V以下)一般都是单片机、MCU、DSP、FPGA、SOC来驱动的,也有使用PC或工控机来驱动的。一般弱电作用偏向于信号电,而强电作用偏向于动力能源。
-
嵌入式设备通常是无人照看的自运行设备,在开机后长期运行;嵌入式装置一般在设备中起到中枢控制作用。