DIY Projects/Tools/Books for Makers
科技类 DIY 工具、作品/项目、创意整理。目前由 Blanboom 维护。
欢迎体验 AirTerminal,一个用于 iPhone/iPad/Apple Silicon Mac 的蓝牙终端 App。可在移动设备上,通过蓝牙的方式访问和控制自己的 DIY 作品:
本仓库主要整理硬件项目。对于软件类项目,请关注如下仓库:
Created by gh-md-toc
- 《无线电》杂志
- 《爱上机器人》杂志
- Make: 著名的科技 DIY 类杂志,中文版名为《爱上制作》,已停刊
- The MagPi magazine
- Servo Magazine
- HackSpace magazine
-
英文
-
中文
- 科创论坛
- 爱折腾
- 果壳网 DIY 主题站
- 极客工坊
- Arduino 中文社区
- Arduino 台灣使用者社群
- RoboticFan 机器人爱好者(存档)
- RobotBase的博客
- 创酷
- 极客迷
- 杜洋工作室 DoYoung Studio:杜洋老师擅长简洁的电子 DIY 作品,例如用一片单片机驱动光立方或 LED 点阵屏幕,不使用额外元器件
- EEVblog - YouTube
- N-O-D-E - YouTube
- Raspberry Pi - YouTube
- jen foxbot - YouTube
- SeanHodgins - YouTube
- Estefannie Explains It All - YouTube
- Tucker Shannon - YouTube
- Tinkernut - YouTube
- Blitz City DIY - YouTube
- engineerish - YouTube
- Frederick Vandenbosch - YouTube
- Raspberry Pi Press - YouTube
- Bilibili 科技区 - 极客 DIY
- WAA-ZephRay - Bilibili
- 果壳实验室 - 微博
- Microchip Makes (@MicrochipMakes) - Twitter
- Tube Time (@TubeTimeUS) - Twitter
- 稚晖君 - Bilibili
- Mr Innovative - YouTube
备注:部分内容参考了这篇文章:
- Seeed Studio Bazaar, The IoT Hardware enabler.
- DFRobot创客商城-创客教育_STEAM教育_开源硬件_人工智能_机器人教育
- SparkFun Electronics
- Adafruit Industries, Unique & fun DIY electronics and kits
- Arduino Official Store
- Digi-Key 中国
- e络盟 element14
- 万用表
- 示波器
- 逻辑分析仪
- 电烙铁/焊台/热风枪/吸锡器
- 3D 打印机
- 激光切割机/雕刻机
目前市面上流行的单片机种类较多,本节只整理比较流行、有代表性的。
常见的开发板/单片机:
- Arduino: 基于 AVR 等单片机开发板,拥有完善的生态(软件、教程、各种周边模块等),受到了世界各地 DIY 爱好者的喜爱。且有不少厂商推出 Arduino 开发板,部分在价格上有优势、部分增加了新的功能
- Lembed/Awesome-arduino
- Microduino: Arduino 兼容开发板,特色在于体积小巧,且官方提供网络通信、OLED、电源管理、RTC、SD 卡槽等多种模块,与 Microduino 具有相同的体积,能够直接堆叠安装
- DFRduino: DFRobot 出品的 Arduino 开发板
- Bluno: DFRobot 出品的 Arduino 兼容开发板,在原版 Arduino 的基础上,增加了蓝牙功能
- Seeeduino: Seeed Studio 出品的 Arduino 开发板
- ESP8266: 支持 Wi-Fi 的单片机,在物联网项目中受欢迎
- pando85/awesome-esp8266
- NodeMcu: 基于 ESP8266 的开发板
- ESP32: 支持 Wi-Fi 与蓝牙的单片机
- agucova/awesome-esp
- M5Stack: 小巧、模块化的 ESP32 开发板
- Mbed: ARM Mbed 认证的开发板,能够兼容 Mbed 的一系列开发工具
- 8051 系列: Intel 推出的单片机系列,国内不少单片机教程基于 8051,目前较为流行的是各个厂商推出的增强型 8051 单片机
- STC: 国内常用的一种增强型 8051 单片机,具有指令执行速度快、外设丰富等特点(部分型号无需外部晶振和复位电路,只需通电即可工作,可以大大简化电路设计)。缺点是官网和文档比较混乱
- EFM8/C8051F 系列: 增强型 8051 单片机,提供跨平台 IDE(Simplify Studio),方便在 Linux、macOS 环境上开发和调试
- STM32: ST 公司基于 ARM Cortrx-M 的单片机
- STM32 Discovery 发现工具包: STM32 官方开发板
- MSP430: TI 推出的 16 位单片机,特色为低功耗
- MSP430 Launchpad: MSP430 等 TI 芯片的官方开发板
- Raspberry Pi Pico/RP2040: Raspberry Pi Pico 是来自 Raspberry Pi 的开发板。采用了 Raspberry Pi 设计的 RP2040 单片机,支持 Programmable I/O
- TI SimpleLink 系列: 支持无线通信的单片机系列,其中不同型号支持不同协议
- WRTnode: 物联网开发板,部分型号支持运行 OpenWrt
- OpenMV: 带有摄像头的开发板,支持使用 MicroPython 完成计算机视觉项目
其他有特色的开发板:
- HE: 小巧的 AR9331 OpenWrt 模块,兼容 Arduino Yún
- NavSpark: 内置 GPS/北斗的 Arduino
- Wio Terminal: 带有蓝牙、双频 Wi-Fi、显示屏的开发板,体积小巧,带有塑料外壳
如下文章对常见的单片机进行了非常全面的评测:
与单片机开发板相比,单板计算机一般运行 Linux 等通用操作系统,性能也更强大。
常见的单板计算机:
- Raspberry Pi: 最著名的单板计算机
- ASUS Tinker Board: 来自华硕的单板计算机
- NVIDIA Jetson Nano Developer Kit: 来自 NVIDIA 的开发板,带有 GPU,适合用来实现计算机视觉和 AI 项目
- LattePanda: x86 架构开发板,支持运行 Windows 10
- CubieBoard
- Banana Pi
- Orange Pi
- ODROID
- Khadas
- UDOO
其他有特色的单板计算机:
- Marvell ESPRESSObin: 具有强大的网络和存储功能,除了用于实现物联网项目,也可以用于 DIY NAS 或路由器
如下文章对常见的嵌入式 CPU/SoC 进行了全面的评测。如果想自制单板计算机、自制基于嵌入式 Linux 的设备,或者想对单板计算机的 CPU 进行更详细的了解,都可以参考这篇文章:
当然,单板计算机本身也是可以 DIY 的,例如下面两个 DIY 单板计算机项目:
- Yuzuki Chameleon: 基于全志 H616 的单板电脑,PCB 设计符合嘉立创的免费打样规则
- Project-Quantum: 超迷你模块化卡片电脑计划
- 电子墨水屏模块
- LILYGO TTGO 电子墨水屏模块:集成 ESP32 和电子墨水屏的模块/开发板
- Altium Designer: 国内比较流行的 EDA 工具,有着丰富的教程,收费
- Altium CircuitMaker: 来自 Altium,免费的 PCB 设计工具
- KiCad
- Eagle
- 立创 EDA / EasyEDA
- Fritzing
- Proteus
- Autodesk Tinkercad Circuits
- 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 等收费工具
更多资源:
-
嵌入式操作系统
- Apache NuttX: 开源的嵌入式实时操作系统,POSIX 兼容,功能丰富(任务管理、CPU 占用率测量、内存管理、丰富的文件系统支持、虚拟文件系统、设备驱动、网络、USB、电源管理、音频解码器、GUI、Shell、支持浮点运算的数学库、日志等)。著名的飞控软件 PX4 就是基于 NuttX 的
- RIOT: 对物联网友好的嵌入式操作系统,使用了 wiselib 算法库
- Contiki-NG: 物联网嵌入式操作系统,使用了 Protothreads 协程库
- Atomthreads: 轻量级嵌入式实时操作系统,整个操作系统仅有 5 个
.c
文件,除了应用于嵌入式项目,也非常适合用于学习嵌入式操作系统的原理 - FreeRTOS
- TinyOS
-
标准库
-
用于嵌入式设备的脚本语言运行环境
-
驱动与外设库
- libopenstm32、libopencm3: 开源的 ARM Cortex-M 单片机外设库,在进行开源的嵌入式项目时,用于取代官方的外设库(例如 STM32 标准外设库),避免带来与 GPL 协议不兼容的问题
- JorgeAparicio/libstm32pp: 基于 C++ 的 STM32 外设库
- andysworkshop/stm32plus: 基于 C++ 的 STM32 外设库
- libemb: 提供串口、控制台IO、shell、nRF24l01无线通信等功能
- pigweed/pigweed - Git at Google: 来自 Google 的嵌入式库
-
常见功能在嵌入式系统上的实现
- umm_malloc: 用于嵌入式系统的内存管理程序
- jsmn: 适合在嵌入式系统上使用的 json 处理程序。不依赖
malloc()
,方便移植
-
图形与 GUI
-
更多
- The Embedded Rust Book: 使用 Rust 进行嵌入式开发的教程
-
各大云计算厂商提供的物联网云服务
基础知识:
软件与工具:
- Mozzi: Arduino PWM 音效库
- The Hairless MIDI<->Serial Bridge:将串口输入转换为 MIDI 信号
参考项目:
- 不同的输入方式
- MakeyMakey:触摸输入。将任何物体变为琴键
- Theremin 泰勒明:通过移动手掌,改变手掌与天线的距离,来改变输出声音的频率
- Singing Plant. Make Your Plant Sing With Arduino, Touche and a Gameduino: 会唱歌的植物。通过触摸植物,可以使装置发出不同的声音
- SNF Drumming MIDI Glove using Arduino and light sensors:MIDI 手套,手套中装有光线传感器,可识别动作
- Musical MIDI Shoes:通过脚部动作演奏音乐
- Making music with your muscles!: 利用肌肉电传感器(EMG)做为输入装置,产生音乐
- Midify Your Life! Give Any Sensor the Power of MIDI:将各种传感器输入转换为 MIDI 信号
- Turning GameCube & N64 Pads Into MIDI Controllers | Hackaday:将 NGC 和 N64 游戏手柄转换为 MIDI 控制器
- The Arduipiano is an Arduino-powered floor piano that lets you play music with your feet | Arduino Blog:脚踏钢琴
- GeroTakke.de - ottopot 使用 8 个旋钮制作的 MIDI 控制器。旋钮具有类似模拟电位器的高分辨率
- 不同的输出方式
- Making Music with Makeblock:通过机器人演奏木琴
- Arduino-Controlled Robotic Drum:通过机械臂打鼓
- DIY 等离子扬声器:电弧击穿空气发声
- The RoboTrombo is a MIDI-controlled robotic trombone: MIDI 控制的长号机器人
- Firefly Jar Portable Bluetooth Speakers: 使用萤火虫罐制作蓝牙扬声器
- Robot Pianista:使用机械装置自动弹钢琴
- 自制音频设备
- 3D Printed Mini Bluetooth Speaker: 迷你蓝牙扬声器
- Bluetooth Speaker W/ Music-Reactive LED Matrix: 带有 LED 点阵,能够显示音乐频谱的蓝牙扬声器
- 自制MP3播放器Bric - WAA-ZephRay - bilibili
- 其他项目
- Arduino Esplora: 游戏摇杆形状的 Arduino,内置话筒、光线传感器、加速度传感器、LCD 插槽等
- Gamebuino: 基于 Arduino 的开源游戏机
- Gameduino: Arduino 游戏扩展板,带有 VGA 和音频输出,使用 SPI 通信,基于 FPGA
- SmartGPU:用于 Arduino,带图形加速的 LCD 屏幕
- fdivitto/FabGL: 在 ESP32 上制作游戏的全套软件库 Display Controller (VGA, SSD1306), PS/2 Mouse and Keyboard Controller, Graphics Library, Sound Engine, Game Engine and ANSI/VT Terminal for the ESP32
- Building a ‘Homebrew’ Video Game Console | Internal Register
- Playing Tetris On An Oscilloscope: 在示波器上玩俄罗斯方块
教程:
- 写给玩家的FPGA入门指南 - module ZephRay; - 使用 FPGA 自制 Game Boy 的教程
更多资源:
- The MOnSter 6502: 用分立元件搭建的 6502 CPU,通过 LED 显示内部状态。可用于 CPU 原理的教学
- diy-VT100 - A Miniature hardware terminal: 自制 VT100 终端
- MiSTer: 使用现代硬件来重新实现复古电脑和游戏主机。本项目为开源项目,包含一个 FPGA 板、一系列外设硬件、以及对应的开源软件,具有较强的可扩展性
- LED Cube 8x8x8: 光立方
- SMD Nixie Clock: 辉光管时钟
- 如何制作一个 WIFI 像素时钟,只要 Lametric 十分之一的价格
- Time Twister: 使用乐高套件制作的机械数字时钟
- Build a Pi Zero W pocket projector - MickMake: DIY 微型投影仪
- DIY Night Lamp Light Stand for Room Decor
- DIY - LED Water Lamp
- 自行车LED投影灯
- Make an Interactive IPad Controlled LED Wall
- 1,156 LEDs make up these dual acrylic light-up panels
- Google Analytics on Arduino EPS8266 and 2.4" TFT: 在液晶显示屏上显示 Google Analytics 统计信息
- Use a Raspberry Pi and E-Ink Display to Build a Desktop Monitoring Station for Vital Information - Hackster.io: 在电子墨水屏上显示日历和待办事项列表
- Building a TRUE 4k home cinema projector (it’s awesome): 自制 4K 投影仪
- Create your own home office work status light with Raspberry Pi - Raspberry Pi: 在家办公时,用一个装在墙壁上的指示灯,来告诉家人自己是否正忙
- PIXIE - Chainable, Dual 5*7 Micro-LED Displays: 可扩展的 LED 点阵显示屏,显示效果比较独特
- Arduino Display Matrix (32 x 8 DOTS) - Hackster.io: LED 点阵屏幕,多块屏幕可拼接或扩展
- Zenreader: A 4.7 inches E-Ink RSS Reader Powered by ESP32 – Huan Truong's Pensieve: 基于 e-ink 电子墨水屏的 RSS 阅读器
- mcer12/Temper-ESP8266: Temper is a compact temperature sensor based on ESP8266 and SHT30 with large 13x7 pixel led display.: 自制温度计,拥有精致的 LED 点阵屏幕
- MagicMirror²: DIY 魔镜
- Display Array Clock: LED 阵列时钟,通过软件可以实现不同的显示效果
- 6adgy - E-Ink Desk Clock/Calendar with 6 displays: E-ink 电子墨水屏阵列时钟
- Building a Panel out of e-ink Electronic Shelf Labels | rbaron.net:使用一组低价的电子墨水屏价签,制作大屏幕显示面板
- Rŏ̽ta: Counting, With Style | Hackaday: 使用辉光管和老式旋转电话拨号盘制作的一个小装置,可以作为秒表或者计数器。看起来很有复古气息。
- DNThomas/AstraDash: Arduino code to directly bitbang an Astra GTE Dashboard display.:将汽车上的仪表板改装成智能家居控制面板
- 使用电子墨水屏制作的待办事项列表,能够显示 Apple Reminders 中全家的共享待办事项
- 制作 SHOOK16 摇摇棒
- Arduino Wireless Power POV Display: 2D 「风火轮」
- PropHelix is an amazing 3D POV holographic display: 3D 「风火轮」
- Bike Wheel POV Display: 自行车「风火轮」
-
Twitter Mood Light - the World's Mood in a Box: 世界心情指示器。实时统计 Twitter 上所有关于心情、情绪的词汇,并通过不同的色彩来显示「世界的心情」
-
Mazda Miata gets Arduino dashboard upgrade: 使用 Arduino 制作汽车仪表盘
- Arduino Neural Network Robot - Instructables: Arduino 神经网络机器人
- Clean And Minimal Self-balancing Robot: 小巧、容易制作的自平衡小车
- mike4192/spotMicro: Spot Micro Quadripeg Project: 自制「波士顿动力机器狗」
- Petoi Bittle: 另一个可编程的「机器狗」
- Chapelier Fou: 一只会「行走」的水壶
- ToanTech/py-apple-quadruped-robot: 菠萝狗--一个低成本大型全套四足机器人软硬件开源项目
- Real Robot One is a high-performance robotic arm that you can build yourself: 方便 DIY 的高性能机械臂,具有较大的活动范围,而且能负担重物
基础知识:
课程:
- Autonomous Navigation for Flying Robots: 一个关于飞行器的 MOOC 课程
开源项目:
- MultiWii
- Ardupilot
- PX4 (基于 Nuttx)
- CrazyFlie
- Crazepony
- 圆点博士小四轴飞行器(部分开源)
- Hom-Wang/Quadcopter
商业级产品参考:
- I'm a cyborg now! (On Building My Own Artificial Pancreas): 自制胰腺(适用于糖尿病患者,自动检测血糖,并根据血糖水平注射胰岛素)
- An Arduino ECG device with an integrated display | Arduino Blog: 基于 Arduino 的心电图装置
- DIY Pull Up Bar | Heavy Duty | The Casual Engineer - YouTube:带计数功能的引体向上杆
- Arduino + 灰尘传感器实现空气质量检测
- The AirGradient DIY Air Quality Sensor: 一个更完整的空气质量检测仪 DIY 教程,提供 3D 打印外壳
- Chicken coop door automation with Arduino
- kizniche/Mycodo: 环境监控与自动调节系统,可在 Raspberry Pi 上运行
- ESPHome — ESPHome: 基于 ESP8266/ESP32 制作智能家居设备
工具:
- Arduino LilyPad: 可以缝在衣物上的 Arduino 开发板
项目:
- Nike+ FuelBand SE BLE Protocol Reversed
- Open source DIY Nike+ Fuelband | Hackaday.io
- DoWatch DIY 手表
- esp32玩转彩屏 | 自制太空人主题的透明手表 - DF创客社区 - 分享创造的喜悦
- Watchy - An Open Source Smartwatch That You Build Yourself - YouTube: 电子墨水屏手表
- PiGlass v2: 使用 Raspberry Pi Zero 制作的 AR 眼镜
- Smartphone Charger Powered by Fire: 火力发电的手机充电器
- How to Build a Bicycle Generator: 自行车改装发电机
- Dandelion Wind Turbine: 风力发电机
- This wearable robot can zip up your jacket for you: 一个能自动开拉链的小装置
- 激光写字装置: 可作为礼物的激光写字装置(原文链接已失效,无法加载图片,可使用此第三方网站的转载链接阅读)
- 写字机器人
- 【Maker源代码】制作一个宠物机器人 - DF创客社区 - 分享创造的喜悦
- 鸡蛋绘图装置 Robotic Easter Egg Painter - Arduino Project Hub
- 鸡蛋绘图时钟 Egg Clock - YouTube
- Fighting smartphone addiction with Arduino: 使用 Arduino 控制手机使用时间,避免手机上瘾
- ShiqiYu/StrawberryRobot: 草莓分拣机器人
- The Toothbrush Machine: 刷牙机
- Review: Adafruit MONSTER M4SK:眼镜形状的开发板,眼睛是两个 LCD 屏幕,可显示动画
- 【何同学】我做了一个自己打字的键盘:会自动打字的键盘。视频中何同学还利用同样的原理,复刻了 2009 年奥运会上的活字印刷表演
- 我养了一朵云:能够漂浮在空中,与人陪伴的「云朵」
- Build a Mesmerizing Sand Table : a DIY Arduino Masterpiece! : 6 Steps (with Pictures) - Instructables 使用 Arduino 制作的沙盘,能够控制小球在沙子上绘制不同的图案
- 高压电小玩意——高压发生器,等离子蚀刻和电弧球| 果壳 科技有意思
- 特斯拉线圈制作教程,纪念特斯拉诞辰 - 爱折腾 - 开动脑筋 挽起袖子 准备折腾 . . .
- 自制电磁炮 V2.0 - FGHRSH 的博客
- 让电弧唱歌,自制简易zvs等离子扬声器 | DIY小组 | 果壳网 科技有意思
- イルミパケット - セキュリティ博物館: 会发光的报文。通过 LED 灯光的流动,对网络报文的传输进行可视化。
- The Megaprocessor: 使用分立元器件制作的 CPU。CPU 的各个组件带有 LED,通过 LED 可显示数据的流向。
- Building the worst digital camera ever | Arduino Blog: 使用光敏电阻制作的数码相机,成本极低。可用于展示数码相机的工作原理。
- 仪器仪表
- Seeed-Studio/DSO_Nano: DIY 示波器
- DSLoigc: 开源、跨平台的 USB 逻辑分析仪
- IBM/MicroscoPy: 使用 LEGO、Arduino、Raspberry Pi 制作的显微镜
- This Arduino-powered spectrophotometer uses a little prism to create rainbows: 使用 Arduino 制作的光谱仪
- 电脑外设
- myst729/xtrm: 自制机械键盘
- 【自制】我做了一把 模 块 化 机 械 键 盘 !【软核】: 稚晖君的 DIY 模块化机械键盘项目。键盘包含了屏幕,和一个用无刷电机实现的力反馈旋钮
- 摄影类工具
- Transforming a 3D printer into a four-axis camera slider: 3D 打印机改装成相机稳定器
- 其他工具
- rbenamotz/LEMPA: 使用 Raspberry Pi 制作的单片机编程器
- 烤肉vs贴片 | 电熨斗改造的微型回流焊加热台 - DF创客社区
- Linux on an 8-bit micro?: 在 8 位 AVR 单片机上模拟 32 位 CPU,来运行 Linux
- Making aerogel - YouTube: 自制气凝胶
- ruha.camera | 3D Printable Retro-style Raspberry Pi HQ Camera: 使用 Raspberry Pi 自制相机
- Vizy: 使用 Raspberry Pi 制作的 AI 相机
欢迎通过提交 Issue,或提交 Pull request 的方式,为本文档做出贡献。
在参与之前,请先阅读参与者公约。
本作品采用知识共享署名 4.0 国际许可协议进行许可。