Skip to content

Commit e11c67e

Browse files
committed
Stamp AddOn Camera UserDemo v0.1
0 parents  commit e11c67e

2,479 files changed

Lines changed: 438204 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# Source:
2+
# https://github.com/Tinyu-Zhao/M5-Depends/blob/main/.github/ISSUE_TEMPLATE/bug-report.yml
3+
# See:
4+
# https://docs.github.com/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms
5+
6+
name: Bug report
7+
description: Report a problem with the code in this repository.
8+
labels:
9+
- "type: bug"
10+
body:
11+
- type: markdown
12+
attributes:
13+
value: "Thank you for opening an issue on an M5Stack Arduino library repository.\n\
14+
To improve the speed of resolution please review the following guidelines and common troubleshooting steps below before creating the issue:\n\
15+
If you have any UIFLOW questions you can ask in the [special board](https://community.m5stack.com/category/5/uiflow), there will be many enthusiastic friends to help you.\n\
16+
Do not use GitHub issues for troubleshooting projects and issues. Instead use the forums at https://community.m5stack.com to ask questions and troubleshoot why something isn't working as expected. In many cases the problem is a common issue that you will more quickly receive help from the forum community. GitHub issues are meant for known defects in the code. If you don't know if there is a defect in the code then start with troubleshooting on the forum first."
17+
- type: textarea
18+
id: description
19+
attributes:
20+
label: Describe the bug
21+
description: A clear and concise description of what the bug is.
22+
validations:
23+
required: true
24+
- type: textarea
25+
id: reproduce
26+
attributes:
27+
label: To reproduce
28+
description: Provide the specific set of steps we can follow to reproduce the problem.
29+
placeholder: |
30+
1. In this environment...
31+
2. With this config...
32+
3. Run '...'
33+
4. See error...
34+
validations:
35+
required: true
36+
- type: textarea
37+
id: expected
38+
attributes:
39+
label: Expected behavior
40+
description: What would you expect to happen after following those instructions?
41+
validations:
42+
required: true
43+
- type: textarea
44+
id: screenshots
45+
attributes:
46+
label: Screenshots
47+
description: If applicable, add screenshots to help explain your problem.
48+
validations:
49+
required: false
50+
- type: textarea
51+
id: information
52+
attributes:
53+
label: Environment
54+
description: |
55+
If applicable, add screenshots to help explain your problem.
56+
examples:
57+
- **OS**: Ubuntu 20.04
58+
- **IDE & IDE Version**: Arduino 1.8.19 Or Platform IO v2.5.0
59+
- **Repository Version**: 0.4.0
60+
value: |
61+
- OS:
62+
- IDE &IDE Version:
63+
- Repository Version:
64+
validations:
65+
required: false
66+
- type: textarea
67+
id: additional
68+
attributes:
69+
label: Additional context
70+
description: Add any additional information here.
71+
validations:
72+
required: false
73+
- type: checkboxes
74+
id: checklist
75+
attributes:
76+
label: Issue checklist
77+
description: Please double-check that you have done each of the following things before submitting the issue.
78+
options:
79+
- label: I searched for previous reports in [the issue tracker](https://github.com/m5stack/M5Stack/issues?q=)
80+
required: true
81+
- label: My report contains all necessary details
82+
required: true
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Arduino Lint Check
2+
on:
3+
push:
4+
branches: [ master, main ]
5+
pull_request:
6+
branches: [ master, main ]
7+
workflow_dispatch:
8+
9+
defaults:
10+
run:
11+
shell: bash
12+
13+
concurrency:
14+
group: ${{ github.workflow }}-${{ github.ref }}
15+
cancel-in-progress: true
16+
17+
jobs:
18+
lint:
19+
name: Lint Check
20+
runs-on: [self-hosted, Linux, X64]
21+
steps:
22+
- uses: actions/checkout@v4
23+
- uses: arduino/arduino-lint-action@v2
24+
with:
25+
library-manager: update
26+
compliance: strict
27+
project-type: all
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: clang-format Check
2+
3+
env:
4+
INCLUDE_REGEX: ^.*\.((((c|C)(c|pp|xx|\+\+)?$)|((h|H)h?(pp|xx|\+\+)?$))|(inl|ino|pde|proto|cu))$
5+
6+
on:
7+
push:
8+
tags-ignore:
9+
- '*.*.*'
10+
- 'v*.*.*'
11+
branches:
12+
- '*'
13+
paths:
14+
- '*'
15+
- '**.ino'
16+
- '**.cpp'
17+
- '**.hpp'
18+
- '**.h'
19+
- '**.c'
20+
- '**.inl'
21+
- '**clang-format-check.yml'
22+
- '**.clang-format'
23+
pull_request:
24+
paths:
25+
- '**.ino'
26+
- '**.cpp'
27+
- '**.hpp'
28+
- '**.h'
29+
- '**.c'
30+
- '**.inl'
31+
- '**clang-format-check.yml'
32+
- '**.clang-format'
33+
workflow_dispatch:
34+
35+
jobs:
36+
formatting-check:
37+
name: Formatting Check
38+
runs-on: [self-hosted, Linux, X64]
39+
strategy:
40+
matrix:
41+
path:
42+
- check: './' # path to include
43+
exclude: '' # path to exclude
44+
#- check: 'src'
45+
# exclude: '(Fonts)' # Exclude file paths containing "Fonts"
46+
#- check: 'examples'
47+
# exclude: ''
48+
49+
steps:
50+
- name: Checkout
51+
uses: actions/checkout@v4
52+
with:
53+
ref: ${{ github.event.pull_request.head.sha }}
54+
55+
- name: Run clang-format style check for C/C++/Protobuf programs.
56+
uses: jidicula/clang-format-action@v4.10.2 # Using include-regex 10.x or later
57+
with:
58+
clang-format-version: '18'
59+
check-path: ${{ matrix.path['check'] }}
60+
exclude-regex: ${{ matrix.path['exclude'] }}
61+
include-regex: ${{ env.INCLUDE_REGEX }}

.gitignore

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Prerequisites
2+
*.d
3+
4+
# Compiled Object files
5+
*.slo
6+
*.lo
7+
*.o
8+
*.obj
9+
10+
# Precompiled Headers
11+
*.gch
12+
*.pch
13+
14+
# Compiled Dynamic libraries
15+
*.so
16+
*.dylib
17+
*.dll
18+
19+
# Fortran module files
20+
*.mod
21+
*.smod
22+
23+
# Compiled Static libraries
24+
*.lai
25+
*.la
26+
*.a
27+
*.lib
28+
29+
# Executables
30+
*.exe
31+
*.out
32+
*.app
33+
34+
# MacOS desktop metadata files
35+
.DS_Store
36+
37+
# Build files
38+
build/
39+
cmake-build-*/
40+
managed_components/
41+
42+
# PlatformIO
43+
.pio/
44+
45+
# VSCode
46+
.vscode/
47+
.cache/
48+
49+
# Python virtual environment
50+
.venv/
51+
52+
# Debug / Release files
53+
Debug/
54+
debug/
55+
Release/
56+
release/
57+
out/
58+
bin/
59+
obj/
60+
61+
*.code-workspace

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# M5Stamp-AddOn-Camera-UserDemo
2+
3+
| Directory | Firmware | Build system |
4+
| -------------- | ---------------------------- | -------------------- |
5+
| `./uvc/` | USB Video Class (UVC) camera | ESP-IDF |
6+
| `./webserver/` | Wi-Fi camera web server | PlatformIO + Arduino |
7+
8+
The two projects use the same camera wiring, but different camera and application stacks. Build and flash only one project at a time; they are not two runtime modes combined in a single firmware.
9+
10+
## UVC firmware
11+
12+
The `uvc/` project captures frames through DVP and exposes the camera as a UVC device to Linux, macOS, Windows, or another USB host through TinyUSB. It can automatically detect OV3660 and GC0308 sensors.
13+
14+
## WebServer firmware
15+
16+
`webserver/` is an independent CameraWebServer project. After connecting to Wi-Fi, it provides browser-based camera control, still image capture, MJPEG video streaming, and optional face or QR features.

README_CN.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# M5Stamp-AddOn-Camera-UserDemo
2+
3+
| 目录 | 固件用途 | 构建系统 |
4+
| -------------- | ---------------------------- | -------------------- |
5+
| `./uvc/` | USB Video Class(UVC)摄像头 | ESP-IDF |
6+
| `./webserver/` | Wi-Fi 摄像头网页服务器 | PlatformIO + Arduino |
7+
8+
两个工程使用相同的摄像头接线,但底层摄像头和应用栈不同。每次只构建并烧录其中一个工程;它们目前不是合并在同一个固件中的两个运行模式。
9+
10+
## UVC 固件
11+
12+
`uvc/` 工程通过 DVP 采集图像,并使用 TinyUSB 将摄像头作为 UVC 设备输出给 Linux、macOS、Windows 或其他 USB Host。目前支持自动探测 OV3660 和 GC0308。
13+
14+
## WebServer 固件
15+
16+
`webserver/` 是独立的 CameraWebServer 工程。设备连接 Wi-Fi 后,可通过浏览器控制摄像头、获取静态图片、查看 MJPEG 视频流,并按配置启用人脸或 QR 功能。

0 commit comments

Comments
 (0)