Skip to content

findfindfind/awesome-technical-diy-cn

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Awesome Technical DIY

Awesome

DIY Projects/Tools/Books for Makers

科技类 DIY 工具、作品/项目、创意整理。目前由 Blanboom 维护。


欢迎体验 AirTerminal,一个用于 iPhone/iPad/Apple Silicon Mac 的蓝牙终端 App。可在移动设备上,通过蓝牙的方式访问和控制自己的 DIY 作品:

本仓库主要整理硬件项目。对于软件类项目,请关注如下仓库:


目录

Created by gh-md-toc

资源

书籍与杂志

网站与讨论区

社交网站账号

备注:部分内容参考了这篇文章:

活动与展会

厂商、网店

文章推荐

工具、材料

常用工具

  • 万用表
  • 示波器
  • 逻辑分析仪
  • 电烙铁/焊台/热风枪/吸锡器
  • 3D 打印机
  • 激光切割机/雕刻机

开发板、单片机

目前市面上流行的单片机种类较多,本节只整理比较流行、有代表性的。

常见的开发板/单片机:

  • Arduino: 基于 AVR 等单片机开发板,拥有完善的生态(软件、教程、各种周边模块等),受到了世界各地 DIY 爱好者的喜爱。且有不少厂商推出 Arduino 开发板,部分在价格上有优势、部分增加了新的功能
    • Awesome Lembed/Awesome-arduino
    • Microduino: Arduino 兼容开发板,特色在于体积小巧,且官方提供网络通信、OLED、电源管理、RTC、SD 卡槽等多种模块,与 Microduino 具有相同的体积,能够直接堆叠安装
    • DFRduino: DFRobot 出品的 Arduino 开发板
    • Bluno: DFRobot 出品的 Arduino 兼容开发板,在原版 Arduino 的基础上,增加了蓝牙功能
    • Seeeduino: Seeed Studio 出品的 Arduino 开发板
  • ESP8266: 支持 Wi-Fi 的单片机,在物联网项目中受欢迎
  • ESP32: 支持 Wi-Fi 与蓝牙的单片机
  • Mbed: ARM Mbed 认证的开发板,能够兼容 Mbed 的一系列开发工具
  • 8051 系列: Intel 推出的单片机系列,国内不少单片机教程基于 8051,目前较为流行的是各个厂商推出的增强型 8051 单片机
    • STC: 国内常用的一种增强型 8051 单片机,具有指令执行速度快、外设丰富等特点(部分型号无需外部晶振和复位电路,只需通电即可工作,可以大大简化电路设计)。缺点是官网和文档比较混乱
    • EFM8/C8051F 系列: 增强型 8051 单片机,提供跨平台 IDE(Simplify Studio),方便在 Linux、macOS 环境上开发和调试
  • STM32: ST 公司基于 ARM Cortrx-M 的单片机
  • MSP430: TI 推出的 16 位单片机,特色为低功耗
  • Raspberry Pi Pico/RP2040: Raspberry Pi Pico 是来自 Raspberry Pi 的开发板。采用了 Raspberry Pi 设计的 RP2040 单片机,支持 Programmable I/O
  • TI SimpleLink 系列: 支持无线通信的单片机系列,其中不同型号支持不同协议
    • CC2530: 支持 ZigBee 的单片机/SoC,基于 8051
    • CC2540: 支持蓝牙 BLE 的单片机/SoC,基于 8051
    • CC3200: 支持 Wi-Fi 的单片机,基于 32 位 ARM Cortex-M
  • WRTnode: 物联网开发板,部分型号支持运行 OpenWrt
  • OpenMV: 带有摄像头的开发板,支持使用 MicroPython 完成计算机视觉项目

其他有特色的开发板:

  • HE: 小巧的 AR9331 OpenWrt 模块,兼容 Arduino Yún
  • NavSpark: 内置 GPS/北斗的 Arduino
  • Wio Terminal: 带有蓝牙、双频 Wi-Fi、显示屏的开发板,体积小巧,带有塑料外壳

如下文章对常见的单片机进行了非常全面的评测:

单板计算机(SBC)

与单片机开发板相比,单板计算机一般运行 Linux 等通用操作系统,性能也更强大。

常见的单板计算机:

其他有特色的单板计算机:

  • Marvell ESPRESSObin: 具有强大的网络和存储功能,除了用于实现物联网项目,也可以用于 DIY NAS 或路由器

如下文章对常见的嵌入式 CPU/SoC 进行了全面的评测。如果想自制单板计算机、自制基于嵌入式 Linux 的设备,或者想对单板计算机的 CPU 进行更详细的了解,都可以参考这篇文章:

当然,单板计算机本身也是可以 DIY 的,例如下面两个 DIY 单板计算机项目:

  • Yuzuki Chameleon: 基于全志 H616 的单板电脑,PCB 设计符合嘉立创的免费打样规则
  • Project-Quantum: 超迷你模块化卡片电脑计划

电子模块

软件:电路设计与仿真、PCB 设计

软件:嵌入式开发、调试工具

  • Keil 8051 Microcontroller Development Tools: 国内常用的 8051 开发工具
  • Keil MDK: ARM Cortex-M 单片机开发工具
  • IAR Embedded Workbench: 单片机开发工具,在编译优化方面有特色
  • PlatformIO: 全能的嵌入式开发工具,支持大量单片机和开发板,提供 Visual Studio Code、Atom、CLion 插件
  • Arduino IDE: Arduino 官方 IDE,易于上手,但功能较少
  • Arduino Pro IDE: Arduino 官方 IDE,基于 Visual Studio Code,比 Arduino IDE 拥有更丰富的功能
  • Mbed Studio: ARM Mbed 提供的免费 IDE
  • GNU MCU Eclipse: Eclipse 插件,支持在 Eclipse 上进行嵌入式开发
  • CoIDE:
  • Visual Micro: Visual Studio 插件,支持在 Visual Studio 上进行 Arduino 的开发和调试
  • VisualGDB: Visual Studio 插件,支持在 Visual Studio 上进行 Arduino、ESP8266/ESP32、Mbed 以及多种架构单片机的开发,并具有强大的调试功能
  • Atmel Studio: Microchip/Atmel 官方提供的 IDE,用于 AVR 和 SAM 单片机的开发。基于 Visual Studio,并提供免费的 Visual Assistant 授权
  • DAPLink (CMSIS-DAP): ARM 官方开源的芯片调试工具,可用于代替 J-Link 等收费工具

更多资源:

软件:嵌入式操作系统、驱动、GUI 库等

  • 嵌入式操作系统

    • Apache NuttX: 开源的嵌入式实时操作系统,POSIX 兼容,功能丰富(任务管理、CPU 占用率测量、内存管理、丰富的文件系统支持、虚拟文件系统、设备驱动、网络、USB、电源管理、音频解码器、GUI、Shell、支持浮点运算的数学库、日志等)。著名的飞控软件 PX4 就是基于 NuttX 的
    • RIOT: 对物联网友好的嵌入式操作系统,使用了 wiselib 算法库
    • Contiki-NG: 物联网嵌入式操作系统,使用了 Protothreads 协程库
    • Atomthreads: 轻量级嵌入式实时操作系统,整个操作系统仅有 5 个 .c 文件,除了应用于嵌入式项目,也非常适合用于学习嵌入式操作系统的原理
    • FreeRTOS
    • TinyOS
  • 标准库

  • 用于嵌入式设备的脚本语言运行环境

    • Lua: 一种脚本语言语言。与 Python、JavaScript 相比,原版的 Lua 解释器无需做过多的适配修改,就能移植到嵌入式系统
    • eLua: 用于单片机的 Lua 环境。提供了一些了操作单片机外设的 API
    • MicroPython: 用于单片机的 Python 环境
    • Espruino: 用于单片机的 JavaScript 环境
    • Lua RTOS: 支持 Lua 的嵌入式操作系统
    • Ruff: 支持 JavaScript 的嵌入式操作系统
    • Pumbaa: 支持 MicroPython 的嵌入式操作系统
  • 驱动与外设库

    • libopenstm32、libopencm3: 开源的 ARM Cortex-M 单片机外设库,在进行开源的嵌入式项目时,用于取代官方的外设库(例如 STM32 标准外设库),避免带来与 GPL 协议不兼容的问题
  • 常见功能在嵌入式系统上的实现

    • umm_malloc: 用于嵌入式系统的内存管理程序
    • jsmn: 适合在嵌入式系统上使用的 json 处理程序。不依赖 malloc(),方便移植
  • 图形与 GUI

    • uGFX: 轻量级嵌入式 GUI 库
    • U8g2: 用于嵌入式设备的图形库,支持 Arduino
  • 更多

软件:3D 建模、CAD 类

软件:互动、可视化

服务:物联网公众平台

项目与专题

🎹音频与音乐

基础知识:

软件与工具:

参考项目:

🕹自制游戏机

教程:

更多资源:

📺复古计算

  • The MOnSter 6502: 用分立元件搭建的 6502 CPU,通过 LED 显示内部状态。可用于 CPU 原理的教学
  • diy-VT100 - A Miniature hardware terminal: 自制 VT100 终端
  • MiSTer: 使用现代硬件来重新实现复古电脑和游戏主机。本项目为开源项目,包含一个 FPGA 板、一系列外设硬件、以及对应的开源软件,具有较强的可扩展性

🕰时钟、屏幕、LED、装饰品

🎃视觉暂留(POV)类

📈信息可视化

🤖️机器人/小车

✈️飞行器

基础知识:

课程:

开源项目:

商业级产品参考:

🐸生物与生态

🏃运动与健康

🏠智能家居/家庭自动化/环境监测

⌚️可穿戴设备

工具:

项目:

🔋能源相关

⛓互动装置

⚡️高压相关

🎓教育

🔧工具 DIY

🎉其他

欢迎参与

欢迎通过提交 Issue,或提交 Pull request 的方式,为本文档做出贡献。

在参与之前,请先阅读参与者公约

许可证

CC-BY

本作品采用知识共享署名 4.0 国际许可协议进行许可。

About

DIY Projects/Tools/Books for Makers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published