
TX2 2.4G
Momozavur/Mravka-v3
Open the appropriate .kicadpro file in KiCad; .pro entries are legacy projects. Keep schematics, boards, local libraries, library tables, and supporting files together.

Anwendung für den Arduino UNO Q, die ich zunächst mit Claude entwickle.
Watchmen shield v2 is an open-source printed circuit board by Codexzier, from the Codexzier/Watchmen repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 68.6 × 53.3 mm with 44 parts on 35 nets, routed with 252 tracks and 191 vias.
It is built around the 74AHCT1G125SE, RD-03D and ULN2003A, with the AO3401A, BAT54S and WS2812B among its other parts. Its parts include 13 resistors, 12 connectors, 7 capacitors, 2 ICs and 2 diodes.
Anwendung für den Arduino UNO Q (2 GB) mit UNO Media Carrier und IMX219-Kamera: Eine dreh- und neigbare Plattform erkennt Personen, Autos und ein markantes Muster (ArUco-Marker), folgt Personen bzw. dem Muster mit der Kamera, nutzt ein AI-Thinker RD-03D Human-Radar zur Auswahl der nächsten Person, spart im Ruhemodus Strom und wird über Radar oder Vibration (MPU6050) wieder geweckt. Kalibrierung und Live-Ansicht laufen über eine Webseite, die der UNO Q selbst ausliefert. Dazu gibt es ein passendes Shield (KiCad-Projekt).

| Ordner | Inhalt |
|---|---|
app.yaml | App-Beschreibung für Arduino App Lab (Bricks: web_ui, object_detection) |
sketch/ | Mikrocontroller-Teil (STM32U585): Servos, Schrittmotor, Schalter, WS2812B, LED-Matrix, RD-03D, MPU6050, A0 |
python/ | Linux-Teil: Zustandsmaschine, Kamera, Erkennung, Nachführung, Radar, Kalibrierung, Webschnittstelle |
assets/ | Webseite (Live-Bild, Halbkreis-Radar, Kalibrierung, Einstellungen, Marker-Druck) |
hardware/ | Shield für den UNO Q in zwei Versionen (v1 mit, v2 ohne Fenster über der LED-Matrix): Schaltplan, Platine, Gerber – siehe hardware/README.md |
docs/ | Verdrahtung und Pinbelegung, Bilder |
tests/ | Simulationstests für Sketch, Python-Logik und Webseite |
Der gesamte Code im Sketch und in python/ ist Zeile für Zeile auf Deutsch kommentiert.
Linux (QRB2210, Debian, Python) MCU (STM32U585, Zephyr-Sketch)
┌───────────────────────────────────────────────┐ Bridge ┌──────────────────────────────────┐
│ controller.py Zustände, Ruhemodus, Ausgaben │◄──────────►│ Servos (A1, A2) sanft + Ausgleich │
│ vision.py Kamera IMX219, ArUco, KI │ (RPC) │ 28BYJ-48 + Referenzfahrt (D2) │
│ tracker.py Nachführung (P-Regler) │ │ WS2812B über SPI-MOSI (D11) │
│ radar.py RD-03D-Ziele, nächste Person │ │ LED-Matrix-Text / Lauftext │
│ calibration.py Kalibrierung 2 (automatisch) │ │ RD-03D (Serial1, 256000 Baud) │
│ webapi.py Webseite, MJPEG, Marker-PNG │ │ MPU6050: Vibration + Lage │
│ config.py /app/data/watchmen_config.json │ │ A0: Motoren angeschlossen? │
└───────────────────────────────────────────────┘ └──────────────────────────────────┘
▲ http://<UNO-Q>:7000 (Socket.IO + MJPEG)Zeitkritisches (Schrittimpulse, Servo-Rampen, LED-Timing, Radar-Protokoll, Vibration) erledigt der Mikrocontroller. Entscheidungen (Kalibrierung, Erkennung, Ruhemodus) trifft die Linux-Seite.
type1-2lanes (IMX219) wählen,
Apply and reboot.cd ~/ArduinoApps && git clone https://github.com/Codexzier/Watchmen.git watchmenServo, ArduinoGraphics).http://<IP-des-UNO-Q>:7000 öffnen.| Zustand | LED 1 | LED 2 | LED-Matrix |
|---|---|---|---|
| Start / nicht kalibriert / Kalibrierung | rot blinkend | rot blinkend | – |
| Referenzfahrt nach dem Einschalten | türkis blinkend | türkis blinkend | – |
| Kalibrierung abgeschlossen | grün (5 s) | grün (5 s) | – |
| Erkennung aktiv, nichts im Bild | aus | aus | – |
| Auto erkannt | blau | aus | CAR |
| Person erkannt (Kamera folgt) | rot | aus | HUMEN (Lauftext) |
| Muster erkannt (Kamera hält es mittig) | weiß | aus | MARK |
| Ruhemodus (1 min nichts erkannt) | aus | orange blinkend, 1 Hz | – |
| Vibration über Schwellwert | beide 3× lila | ||
| Fehler (Schalter nicht gefunden) | rot schnell | rot schnell | ERR |
Priorität: Muster > Person > Auto. Texte, Schwellwerte usw. sind auf der Webseite einstellbar.

Kalibrierung 1 – Bereiche (Reiter Kalibrierung):
Kalibrierung 2 – Richtungen: Kamera auf eine strukturierte Umgebung richten und „Bereit zur Kamerabewegung einstellen“ drücken. Das System dreht und neigt um je 6° hin und zurück und misst per Phasenkorrelation, wohin und wie weit sich das Bild verschiebt (Richtung und Maßstab). Klappt das (Plausibilitätsprüfung), ist die Kalibrierung abgeschlossen. Sonst die beiden Richtungen von Hand eintragen und Speichern drücken. Danach leuchten beide LEDs 5 s grün und die Objekterkennung startet.
Nach jedem Einschalten wird bei abgeschlossener Kalibrierung zuerst automatisch die Referenzfahrt ausgeführt (Offset des Schrittmotors), danach startet die Erkennung.
Reiter Muster: Marker anzeigen und ausdrucken (Standard: Wörterbuch DICT_4X4_50, jede ID). Der
weiße Rand muss erhalten bleiben. Sobald der Marker im Bild ist, hat er Vorrang vor allem anderen.
# Sketch mit Ersatz-Headern übersetzen und Hardware simulieren (g++)
tests/host_sketch/run_tests.sh
# Python-Logik mit simuliertem Mikrocontroller, Kamera-Welt und KI (numpy, opencv-python-headless, fastapi)
python3 tests/python/test_system.py
# Webseite mit simulierter Hardware ausprobieren (zusätzlich uvicorn, python-socketio)
python3 tests/python/sim_server.py --port 7000 # dann http://localhost:7000
# Browser-Test der Webseite (zusätzlich playwright + Chromium)
python3 tests/python/ui_check.pyAbgedeckt sind u. a.: Referenzfahrt inkl. Schrittverlust, Rampen, Servo-Grenzen und Radar-Ausgleich, RD-03D-Rahmen, WS2812-Bitmuster, Matrix-Text, Vibration, A0-Erkennung; in Python die komplette Kalibrierung (automatisch und von Hand), Verfolgen von Person und Muster (auch kopfüber), Auswahl der nächsten Person per Radar, Ruhemodus und Wecken per Radar/Vibration, Betrieb ohne Motoren und Neustart.
Die Software wurde gegen die offiziellen Quellen (App-Lab-Bricks, Arduino Zephyr-Core, RouterBridge, Servo-Bibliothek) geschrieben und in Simulationen getestet. Auf echter Hardware konnte ich sie nicht laufen lassen; ein Übersetzen mit der originalen Arduino-Toolchain war in meiner Umgebung nicht möglich (Download gesperrt). Besonders beachten:
| Qty | Value | Footprint | References |
|---|---|---|---|
| 5 | 100nF | Capacitor_SMD:C_0805_2012Metric | C2, C3, C4, C6, C7 |
| 4 | M3 | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4 |
| 2 | 10k | Resistor_SMD:R_0805_2012Metric | R1, R13 |
| 2 | 1k | Resistor_SMD:R_0805_2012Metric | R5, R10 |
| 2 | 220 | Resistor_SMD:R_0805_2012Metric | R7, R8 |
| 2 | 470 | Resistor_SMD:R_0805_2012Metric | R11, R12 |
| 1 | 100k | Resistor_SMD:R_0805_2012Metric | R6 |
| 1 | 10uF | Capacitor_SMD:C_0805_2012Metric | C5 |
| 1 | 15k | Resistor_SMD:R_0805_2012Metric | R3 |
| 1 | 1k5 | Resistor_SMD:R_0805_2012Metric | R2 |
| 1 | 28BYJ-48 | Connector_JST:JST_XH_B5B-XH-A_1x05_P2.50mm_Vertical | J6 |
| 1 | 330 | Resistor_SMD:R_0805_2012Metric | R14 |
| 1 | 33k | Resistor_SMD:R_0805_2012Metric | R4 |
| 1 | 3A hold | Fuse:Fuse_1812_4532Metric | F1 |
| 1 | 470uF 10V | Capacitor_THT:CP_Radial_D8.0mm_P3.50mm | C1 |
| 1 | 5V->VMOT | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP2 |
| 1 | 74AHCT1G125 | Package_TO_SOT_SMD:SOT-23-5 | U2 |
| 1 | A0 Quelle | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | JP1 |
| 1 | AO3401A | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | BAT54S | Package_TO_SOT_SMD:SOT-23 | D2 |
| 1 | MOTOR 5V | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_Horizontal | J5 |
| 1 | MPU6050 GY-521 | Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Vertical | J11 |
| 1 | RD-03D | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J10 |
| 1 | REF SCHALTER | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J9 |
| 1 | SERVO 1 Kamera | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J7 |
| 1 | SERVO 2 Radar | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J8 |
| 1 | ULN2003A | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U1 |
| 1 | UNO Analog | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J2 |
| 1 | UNO D0-D7 | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J3 |
| 1 | UNO D8-SCL | Connector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_Vertical | J4 |
| 1 | UNO Power | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J1 |
| 1 | WS2812B | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J12 |
| 1 | gruen | LED_SMD:LED_0805_2012Metric | D1 |
It measures 68.6 × 53.3 mm and has 2 copper layers, 1.6 mm thick.
44 parts, built around the 74AHCT1G125SE, RD-03D, ULN2003A and AO3401A. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the Codexzier/Watchmen repository on GitHub, at the commit this page was made from: the board is hardware/watchmen-shield-v2/watchmen-shield-v2.kicad_pcb and its schematic hardware/watchmen-shield-v2/watchmen-shield-v2.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Momozavur/Mravka-v3
Open the appropriate .kicadpro file in KiCad; .pro entries are legacy projects. Keep schematics, boards, local libraries, library tables, and supporting files together.

MrBlahhhh/esp32-autosport
A data logger you wire straight into a race car: 12 V and CAN come in on one 4-pin plug, sensor readings and CAN traffic get written to a microSD card.

damnitzhemanth-oss/Flight_Controller
Custom STM based flightcontroller designed from scratch.




