Skip to content
 
 

Latest commit

 

History

681 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minus-Type 1S Vigibot Robot für Botkins

Inhalt

[Diesen Abschnitt verbergen]

Stand 2026-06-20

Das vigiUPSv3 ist nun verfügbar. Wir sind dabei die Updates von der upstream repo in diese Botkins Teileliste zu übernehmen.

Stand 2026-02-13

Das UPS Bauteil ist aufgrund der mehreren neu gestarteten Roboterbauten im robot-maker Store ausverkauft. Es gibt eine funktionierende Alternative, das «Waveshare UPS hat (D)» UPS, aber dies benötigt Modifikationen, sodass wir empfehlen auf das VigiUPSv3 zu warten, welches innert Monaten verfügbar sein sollte. Gib uns bescheid und wir schreiben dir sobald es verfügbar ist.

Generelle Info

[Diesen Abschnitt verbergen]

Dieser Leitfaden behandelt den Botkins V2. Weitere Verbesserungen sind in Arbeit und werden bald publiziert. Es ist geplant, ein komplettes Kit für Maker anzubieten. Es gibt aber keine Hürde oder Nachteil, einen Bot nach dieser Anleitung zu bauen. Die Funktionalität für die Patienten wird die selbe bleiben.

Erfahre mehr über das Botkins Charity Project:

Erfahre mehr über Vigibot: Das französische Roboter-Projekt, wessen Software und Hardware Design Botkins benutzt.

Als Basis dient die Standard Vigibot Minus-Type Version (siehe Bild, ein reines Botkin Bild folgt). Botkins ist zusätlich mit einem LTE/4G Stick ausgerüstet und kommt ohne Seitenarme aus.

1.00

  • Wenn du für Botkins einen Roboter bauen möchtest, melde dich bei uns und wir senden dir die nötigen Informationen und den Zugang zu Resourcen.
  • Als Maker kannst du die Farbe der 3D-gedruckten Teile selber wählen, sie ist nicht vorgegeben.
  • Der Bau des ersten Roboters kann etwa 10 Stunden dauern, möglicherweise auch länger. Nach etwas Übung dauert der Bau etwa 3 Stunden pro Roboter.
  • Einige Teile von Aliexpress können bis zu 5 Wochen fúr die Lieferung benötigen. Derzeit (2026) schlägt die Einstellung der Zahlungsmethode auf PayPal fehl, mit der Meldung "Sorry, some items are not available", bezahlen per Kreditkare funktioniert. Wähle E-Mail order updates vor dem Checkout ab, sonst bekommst du pro Bestellposition 3-5 Mails.

Voraussetzungen

Du benötigst:

  • Lötkolben (für die 4 Motoren und UPS-Brücke). (Wenn du nicht löten möchtest, kann vielleicht ein anderer Maker die Teile für löten).
  • Internetzugang (SIM-Karte mit mobilen Daten, WLAN oder Ethernet-LAN), PC.
  • Ein 3D-Drucker ist derzeit nicht erforderlich. Wenn du die 3D-Teile selbst drucken möchtest, werden M2- und M2,5-Schrauben und Muttern, die nicht in dieser Botkins-Teileliste aufgeführt sind, benötigt. Du findest sie in der upstream Vigibot-Teileliste in jedem der 3D-gedruckten Sektionen.
  • Werkzeuge: Schraubenzieher, verstellbarer Schraubenschlüssel/Gabelschlüssel, Pinzette, Klebeband, ...

Geplante Verbesserungen am Leitfaden

Wir versuchen, den Bau der Botkins so einfach wie möglich zu gestalten, aber dieser Leitfaden ist nicht ganz so klar und einfach, wie wir es uns wünschen würden. Verbesserungsvorschläge und Anregungen zu diesem Leitfaden sind sehr willkommen. Hilf uns, diesen Leitfaden durch Pull-Anfragen oder anderen Wegen zu verbessern.

Nächste Schritte (für Maker, die zur Verbesserung dieses Leitfadens beitragen möchten)

[Öffne diesen Abschnitt] Bitte teile uns defekte Links oder Mängel (z. B. unklare oder fehlende Schritte) mit.
  • Copy the parts from external guides into this guide and adjust accordingly for this specific build.
  • Translate the parts of the external guide from french to english.
  • Move annotations and instructions that are littered through the partlist further down into the specific sections of the assembly guide. [to be done by fire_ned]
  • extend the troubleshooting table
    • more scenarios
    • add pictures / gifs of led blinking patterns
    • perhaps label whether that specific problem can happen during assembly (for makers) or during everyday use (for patients).
  • add more function tests

Teileliste

[Diesen Abschnitt verbergen] Zur einfacheren Lesbarkeit schlagen wir eine Bezugsquelle vor und listen Alternativen auf, wo vorhanden. Es ist euch selbstverständlich freigestellt, wo ihr die Teile beschafft. Die meisten Teile können bei [robot-maker.com](https://www.robot-maker.com) beschafft werden

Hauptteile

Stk Benennung Shop Alternative*
1 Raspberry Pi 3B+ (or 3B), 1GB or 2GB Link Alternative
1 Unlocked ZTE MF79 4G / LTE Stick Link Huawei E3372h (Modell -153, -320 oder -607
1 USB - USB 90° adapter Link, "Color : Down Angle Black" -
1 USB bracket holder Link -
1 USB Microphone "Super AI". Die meisten anderen verfügbaren USB-Mikrofone sind leider entweder zu leise oder rauschen Link BOYA "Color : BY-M100UA"
1 8-64GB "Endurance" Typ MicroSD Karte Link Alternative
1 Falls keinen vorhanden: CardReader für microSD Link nach Belieben
1 Weitwinkelkamera mit Infrarot-Filter Link Alternative: "Color : Option 10"
1 30cm Verbindungskabel für Kamera (zum ersetzen des kurzen Originals) Link nach Belieben
1 Li-Ion Akku 1S2P 6800mAh Link Li-ion 1S2P 5-7Ah
2 6A 67W Fast USB Charger Link, "Plug Type: EU Charger and Cable" -
1 USB Kabel magnetisch Link, "Color : ** type c", "Length : 1m(3.3ft)" Alternative Kabel + Alternative Stecker "USB C"
1 USB-A zu USB-C Kabel Link, "Color : A-C ** ", "Length : 1m" nach Belieben
1 Active Buzzer 3V/5V, verbinde zwischen GND (kurzer Pin) und GPIO 18 Link, "activ" Alternative, "3v"
1 Etwas Klett-Tape zum Befestigen der Batterie Link, "White 1Meter", "25mm Wide" -
1 Falls noch keinen Vorhanden: Sekundenkleber Link, "1ML x10pcs" -
1 Strommangement vigiUPSv2 Link siehe "Hinweise zu Alternativen"

Hinweis zum vigiUPSv2: Installiere die 2x Kamera-LEDs nicht, da sonst das Lademodul möglicherweise nicht mehr funktioniert, da der Akku aufgrund des zu hohen Leerlaufstromverbrauchs möglicherweise nie 100 % erreicht.

*Hinweise zu Alternativen:

Für gewisse Bauteile gibt es geprüfte Alternativen mit entsprechender Beschreibung.

[öffne diesen Abschnitt]

4G / LTE Stick: Huawei E3372h

  • Das neueste Modell "e3372h-325 (Brand: Brovi)" funktioniert nicht. Die älteren Modelle werden nicht mehr hergestellt.
  • Finden Sie ein passendes Modell auf Secondhand-Plattformen. Das Modell muss „e3372h-153”, „e3372h-320” oder „e3372h-607” sein. Das Modell ist auf dem SIM-Steckplatz unter der Abdeckung aufgedruckt.
  • Die funktionierenden e3372h-Modelle können zwei verschiedene Firmwares haben. (1) Die „hilink”-Firmware, die Plug&Play-fähig ist und dem Pi eine IP-Adresse im Bereich 192.168.8.X zuweist. (2) Die „stick”-Firmware, die über ssh Verbindung via Terminal konfiguriert werden muss. Anleitung (Pi-Kenntnisse nötig)

UPS Alternativen

Seit Dezember 2025 wird das Geekworm UPS3 leider nicht mehr hergestellt.

  • vigiUPSv3 sollte in einigen Monaten verfügbar sein. Bis dahin: Version aus der Teileliste (A) oder mit Mehraufwand (B)

Derzeit stehen folgende Alternativen zur Verfügung:

A. vigiUPSv2

Version aus der Teileliste, siehe oben

B. Waveshare UPS hat (D)

Funktioniert, benötigt jedoch einige Änderungen:

1_Ups_power
  • Löte die Stromkabel für Servos und Motoren an den abgebildeten Stellen an.
  • Gib einen Tropfen Sekundenkleber hinzu, um die Drähte auf der USV-Platine zu befestigen.
  • Kaufe 2x 21700 Liion-Zellen anstelle des Akkus aus der Teileliste.
  • Kaufe zusätzlich 4x 20 mm M2,5 Metall-Sechskantständer.
  • Nimm 1x abgewinkelten USB-Stecker „toUp“ anstelle des „toDown“ aus der Teileliste.

Um die Spannungs- und Strommessungen zum Laufen zu bringen, verbinde dich per ssh mit dem Roboter und konfiguriere ihn:

B.1) Spannungsmessung:

3_Ups_sys_67
sudo nano /usr/local/vigiclient/sys.json
  • Ändern in "INA219ADDRESS": 67,

B.2) Die Strommessung funktioniert auch, aber ich würde empfehlen, diesen Schritt zu überspringen, da er nicht so wichtig ist.

4_Ups_wrench5_Ups_I_conf\ 6_Ups_I_client

  • Nimm die Änderungen wie in den Bildern gezeigt vor
  • Da der Shunt-Widerstand 1/10 des üblicherweise verwendeten Widerstands beträgt und Vin+ und Vin- vertauscht sind, muss der Code in /usr/local/vigibot/clientrobotpi.js geringfügig geändert werden. Ich bin mir nicht sicher, ob das sinnvoll ist, da eine Änderung des Codes meines Wissens nach zukünftige automatische Vigibot-Updates deaktiviert.

Stromverteilung für den Waveshare UPS hat (D)

Stk Benennung Shop Alternative
1 Splitter Board Link, "Color : 1 pcs" -
1 PH2.0 zu 2 Pin Kabel 10cm Link, "Color : 2P", "Length : 10CM" -

Basisplatte Motor

Stk Benennung Shop Alternative
8-16 DuPont-Kabel Link, "30cm" or "20cm" Alternative, "Color : Mix 10 Color", "Connector Type : Female to Female", "Pins : 30cm"
5 Einzelne DuPont Pin Hüllen Link, "1P" -
1 Komplettes Kit mit Druckteilen,
Schrauben, Muttern und Distanzbolzen
Link -
4 Pololu 100:1 Getriebemotoren HP 6V
mit Kabeln zum selber löten
Link Alternative
4 Pololu Motorhalter Extended Link Alternative
4 Pololu Räder 40x7mm
es gibt Radmodelle bei den 3D Daten
Durchmesser beachten kleiner 40mm
Link Alternative
1 Feetech 2-Kanal Motortreiber
Kabel inkl.
Link -

Kopf-Teile

Stk Benennung Shop Alternative
1 Komplettes Kit mit Druckteilen,
Schrauben, Muttern und Distanzbolzen
Link -
1 + 1 Reserve DM-S0090MD 180° oder 270° Metall Getriebe Servo 9g
(Kopf Schütteln)
Link, "Color : 1PCS DM-S0090MD 180" Alternative, "Color: 1PCS-270 Degree"
1 + 1 Reserve 180° Servo 9g
(Nicken)
Link

Hinweis: Verwende die langen Schrauben, um die Servos auf dem Servohalter zu befestigen.

Greifer-Teile

Stk Benennung Shop
1 Komplettes Kit mit Druckteilen,
Schrauben, Muttern und Distanzbolzen
Link
2 180° Servo 9g Link

Hinweis: Verwende die langen Schrauben, um die Servos auf dem Servohalter zu befestigen.

Druckteile und Kleinteile, falls ihr selber druckt

In der Ordnerstruktur befinden sich die Druckteile in verschiedenen Formaten. Hier eine Auflistung der benötigten Teile in den jeweiligen Stückzahlen

[öffne diesen Abschnitt]
Pos Beschreibung Benennung im Ordner V2 Bild
1 Finger A zu Greifer stl/clamp_finger_a.stl 1 Stk Finger A zu Greifer
2 Finger B zu Greifer stl/clamp_finger_b.stl 1 Stk Finger B zu Greifer
3 Servoaufnahme Greifer stl/clamp_servo_bracket.stl 1 Stk Servoaufnahme Greifer
4 Greiferhalter stl/clamp_u_bracket.stl 1 Stk Greiferhalter
5 Servohalter Kopf schütteln stl/head_pan_servo_bracket.stl 1 Stk Servohalter Kopf schütteln
6a Kopf ohne Smile stl/head_servo_camera_bracket_nosmile.stl 1 Stk
6a oder 6b
Kopf ohne Smile
6b Kopf mit Smile stl/head_servo_camera_bracket_smile.stl 1 Stk
6a oder 6b
Kopf mit Smile
7 Adapter Kopf schütteln stl/head_u_bracket.stl 1 Stk Adapter Kopf schütteln
8 Motorhalter stl/n20_motor_holder.stl 4 Stk Motorhalter
9 Bodenplatte stl/plate_bottom.stl 1 Stk Bodenplatte
10 Mittelplatte =
Motorplatte
stl/plate_middle.stl 1 Stk Mittelplatte
11a Topplatte mit Lüfterloch stl/plate_top_fan.stl 1 Stk
12a oder 12b
Topplatte Fan
11b Topplatte ohne Lüfterloch stl/plate_top_nofan.stl 1 Stk
12a oder 12b
Topplatte No Fan
12 Rad 40 x 7mm stl/pololu_wheel_40x7mm.stl 4 Stk Rad
13 Stosstange hinten stl/rear_protection.stl 1 Stk Stossstange
14 4G Stick Halter stl/usb_bracket.stl 1 Stk 4G Stick Schutz

Kleinteile, falls ihr selber druckt

Anmerkung: Die Kamera <> Kopf Schrauben und Muttern müssen elektrisch leiten.

Stk Benennung Dimmensionen wird verwendet für
4 Distanzbolzen M2.5 Männchen 12mm Pi <> UPS
4 Distanzbolzen M2.5 Männchen 25mm UPS <> Motorplatte
4 Distanzbolzen M2.5 Weibchen 10mm Grundplatte <> Motorplatte
4 Distanzbolzen M2.5 Männchen 5mm Pi <> Topplatte
10 Schraube M2.5 6mm 4x Topplatte
4x Motorplatte
2x Mittelplatte
2 Schraube M2.5 8 oder 10mm für Motortreiber
2 Schraube M2.5 10 oder 12mm Pan Plate <> Roboter
2 Mutter M2.5 - 4x Motorplatte
2x Mittelplatte
2x Pan Plate
4 Schraube M2 20mm 4x Kamera <> Kopf
5 Schraube M2 14 oder 16mm 2x 180° Servo <> Kopf
5x Greifer
1 Schraube M2 10mm 1x Greifer
3 Schraube M2 8mm 3x Rückplatte <> Mittelplatte
2x 270° Servo <> Pan Plate
3x Greifer
2 Schraube M2 5 oder 6mm ?
15 Mutter M2 - 3x Rückplatte <> Mittelplatte
8x Kamera
2x 270° Servo <> Pan Plate
2x Greifer

Minus-Type Zusammenbau

[Diesen Abschnitt verbergen]

1. Software Installieren

pi_cam

Füge deinen Roboter bei Vigibot ganz einfach hinzu. Du benötigst: einen Rapsery Pi (empfohlen 3B+), eine 16 oder 32 GB microSD Karte, eine Spannungsversorgung für den Pi, die Kamera mit dem passenden Kabel. Mit wenigen einfachen Schritten kannst du deine Kamera auf vigibot.com live schalten:

  • Erstelle auf vigibot.com einen Account.
  • Klick auf "Management" und dann "Add a Robot". Wähle einen Namen für deinen Robter, den Roboter Typ Standard und ein Passwort für den Roboter. Das brauchen wir weiter unten gleich wieder, also merken.
  • Lade das Image runter: vigimage.zip und entpacke die ZIP-Datei.
  • Um die Image-Datei auf deine microSD Karte schreiben zu können, musst du diese mit dem PC verbinden (Kartenleser) und ein Tool zum Schreiben verwenden. Ich empfehle den Raspberry Pi Imager. Runterladen, installieren.
  • Andere Tools wie das HDD Raw Copy Tool oder win32diskImager gehen auch. ApplePiBacker (Mac) oder balena etcher (Für Windows, Mac und Linux)
  • Hinweis: Wenn du eine Karte grösser 32GB verwendest, musst du im Pi Imager zuerst das Modell 3 wählen, dann beim Betriebssystem löschen, um die Karte in FAT32 zu formatieren.
  • Nach dem Ausführen des Pi Imager musst du das Modell des Pis auswählen, bei uns meist 3B+. Unter Betriebssystem wählst du zuunterst „Eigenes Image auswählen“, suchst das vigimage.img und wählst es aus. Dann wählst du die SD Karte als Zielmedium und bestätigst eine allfällige Überschreibewarnung. Starte den Schreibvorgang. Das dauert nun je nach Schreibgeschwindigkeit der Karte einige Minuten.
  • Wenn das gemacht ist, öffne den /boot Ordner deiner SD Card. Windows: Sollte im Explorer der /boot Ordner nicht erscheinen, Drücke Win+R und gibt diskmgmt.msc ein. So gelangst du in die Datenträgerverwaltung. Wenn dort eine 100MB Partition gelistet ist, gib ihr über Rechtsklick > Laufwerkbuchstabe und -pfade ändern einen noch freien Buchstaben.
  • Optional: Ändere die Datei "wpa_supplicant.conf" mittels Rechtsklick und "in Editor anpassen" (Ändere die SSID „Demo“ und das Standardpasswort „Default“ entsprechend dem WLAN-Netzwerk, mit dem sich der Botkin verbinden soll. Tipp: Wenn (noch) kein 4G / LTE Stick vorhanden ist, kann mit dem Smartphone ein Hotspot eingerichtet werden. Vorteil: man kann den Botkin schon mitnehmen, wenn ein entsprechender Hotspot "mitreist". Nachteil: um auf den PI zuzugreifen via ssh, muss man im gleichen WLAN sein)
  • Ändere die Datei "robot.json" gemäss dem zuvor gewählten Roboternamen und Roboterpasswort. ( Ändere den „Demo”-Benutzernamen und das „Standard”-Passwort)
  • Installiere die SD-Karte im Raspberry Pi mit der installierten Kamera und schalte ihn dann ein (aufgrund des Kompilierungsprozesses dauert der erste Start einige Minuten, bevor der Roboter auf der Website erscheint (etwa 10 Minuten): Schalte den Raspberry Pi während dieser Zeit nicht aus).

Falls du auf den Pi zugreifen willst: • Der Pi und dein PC müssen in gleichen Netzwerk sein. Finde die IP Adresse des Pi raus (Verbindung über deinen Router (häufig hat der Router die IP 192.168.1.1) > Verbundene Geräte oder nutze eine App wie "Fing") • Win+R > „Powershell“ > Ausführen öffnet das Terminal • Gib im Fenster ein: ssh pi@IP-ADRESSE (Ersetze die Adresse mit der Adresse des Pi, zB 192.168.1.146) • Das Terminal wird dich fragen, ob du sicher bist, eine Verbindung herstellen zu wollen. Schreibe „yes“ und bestätige • Verwende das Passwort, das du oben vergeben hast. Hast du robot.json nicht verändert, ist es „raspberry“.

  • LTE/4G Mobile Data Stick:
  • An einen Windows- oder Mac-PC anschliessen (die Webseite 192.168.8.1 wird geöffnet oder die App auf dem Speichermedium gestartet) und Datenroaming aktivieren.

2. Vigibot Online Konfiguration

Konfiguration der Fernsteuerung über Vigibot

Klicke auf der Vigibot Seite -> Management -> Werkzeug-Symbol (Remote controller configuration) -> Modifications made -> Wechsle von Form zu Text -> ersetze die {} mit dem folgenden Code:

[SHOW CODE BLOCK]
{
  "BUTTONS": [
    {
      "ICON0": "vide",
      "ICON1": "",
      "TEXT": "",
      "ACTION": "",
      "SPECIAL": ""
    },
    {
      "ICON0": "vide",
      "ICON1": "",
      "TEXT": "",
      "ACTION": "",
      "SPECIAL": ""
    },
    {
      "ICON0": "vide",
      "ICON1": "",
      "TEXT": "",
      "ACTION": "",
      "SPECIAL": ""
    },
    {
      "ICON0": "avancer",
      "ICON1": "",
      "TEXT": "Forward",
      "ACTION": "IncrementForward",
      "SPECIAL": "yp"
    },
    {
      "ICON0": "vide",
      "ICON1": "",
      "TEXT": "",
      "ACTION": "",
      "SPECIAL": ""
    },
    {
      "ICON0": "suivant",
      "ICON1": "",
      "TEXT": "Next tool",
      "ACTION": "NextTool",
      "SPECIAL": ""
    },
    {
      "ICON0": "sirene0",
      "ICON1": "sirene1",
      "TEXT": "Buzzer",
      "ACTION": "Switch2",
      "SPECIAL": "i2"
    },
    {
      "ICON0": "lumicont0",
      "ICON1": "lumicont1",
      "TEXT": "Maximize the brightness and contrast",
      "ACTION": "Switch3",
      "SPECIAL": "i3"
    },
    {
      "ICON0": "gauche",
      "ICON1": "",
      "TEXT": "Left",
      "ACTION": "IncrementTurnLeft",
      "SPECIAL": "zn"
    },
    {
      "ICON0": "stopper",
      "ICON1": "",
      "TEXT": "Click to stop or drag to drive",
      "ACTION": "Brake",
      "SPECIAL": "st"
    },
    {
      "ICON0": "droite",
      "ICON1": "",
      "TEXT": "Right",
      "ACTION": "IncrementTurnRight",
      "SPECIAL": "zp"
    },
    {
      "ICON0": "centrer",
      "ICON1": "",
      "TEXT": "Reset tools",
      "ACTION": "ResetTools",
      "SPECIAL": ""
    },
    {
      "ICON0": "vide",
      "ICON1": "",
      "TEXT": "",
      "ACTION": "",
      "SPECIAL": ""
    },
    {
      "ICON0": "vide",
      "ICON1": "",
      "TEXT": "",
      "ACTION": "",
      "SPECIAL": ""
    },
    {
      "ICON0": "vide",
      "ICON1": "",
      "TEXT": "",
      "ACTION": "",
      "SPECIAL": ""
    },
    {
      "ICON0": "reculer",
      "ICON1": "",
      "TEXT": "Backward",
      "ACTION": "IncrementBackward",
      "SPECIAL": "yn"
    },
    {
      "ICON0": "capture",
      "ICON1": "",
      "TEXT": "Capture the last seconds of video",
      "ACTION": "",
      "SPECIAL": "capture"
    },
    {
      "ICON0": "precedent",
      "ICON1": "",
      "TEXT": "Previous tool",
      "ACTION": "PreviousTool",
      "SPECIAL": ""
    },
    {
      "ICON0": "vide",
      "ICON1": "",
      "TEXT": "",
      "ACTION": "",
      "SPECIAL": ""
    },
    {
      "ICON0": "vide",
      "ICON1": "",
      "TEXT": "",
      "ACTION": "",
      "SPECIAL": ""
    },
    {
      "ICON0": "lock0",
      "ICON1": "lock1",
      "TEXT": "Unlink remote control and video",
      "ACTION": "",
      "SPECIAL": "switchlock"
    },
    {
      "ICON0": "osd0",
      "ICON1": "osd1",
      "TEXT": "Toggle OSD",
      "ACTION": "",
      "SPECIAL": "switchosd"
    },
    {
      "ICON0": "vide",
      "ICON1": "",
      "TEXT": "",
      "ACTION": "",
      "SPECIAL": ""
    },
    {
      "ICON0": "dodo",
      "ICON1": "",
      "TEXT": "Put on standby",
      "ACTION": "Sleep",
      "SPECIAL": ""
    },
    {
      "ICON0": "vide",
      "ICON1": "",
      "TEXT": "",
      "ACTION": "",
      "SPECIAL": ""
    },
    {
      "ICON0": "vide",
      "ICON1": "",
      "TEXT": "",
      "ACTION": "",
      "SPECIAL": ""
    },
    {
      "ICON0": "vide",
      "ICON1": "",
      "TEXT": "",
      "ACTION": "",
      "SPECIAL": ""
    },
    {
      "ICON0": "exit",
      "ICON1": "",
      "TEXT": "Restart the client process",
      "ACTION": "ExitRobot",
      "SPECIAL": "confirm"
    },
    {
      "ICON0": "reboot",
      "ICON1": "",
      "TEXT": "Reboot the system",
      "ACTION": "RebootRobot",
      "SPECIAL": "confirm"
    },
    {
      "ICON0": "poweroff",
      "ICON1": "",
      "TEXT": "Power off the system",
      "ACTION": "PowerOffRobot",
      "SPECIAL": "confirm"
    }
  ],
  "COMMANDS": [
    {
      "NAME": "Camera control",
      "CAMERA": 0,
      "MIXING": 0,
      "GAINX": 80,
      "GAINY": 80
    },
    {
      "NAME": "Gripper control",
      "CAMERA": 0,
      "MIXING": 1,
      "GAINX": 80,
      "GAINY": 80
    },
    {
      "NAME": "250 Kbps - Camera control",
      "CAMERA": 1,
      "MIXING": 0,
      "GAINX": 80,
      "GAINY": 80
    },
    {
      "NAME": "250 Kbps - Gripper control",
      "CAMERA": 1,
      "MIXING": 1,
      "GAINX": 80,
      "GAINY": 80
    }
  ],
  "TX": {
    "COMMANDS16": [
      {
        "NAME": "Turret X",
        "INIT": 0,
        "SCALEMIN": -180,
        "SCALEMAX": 180,
        "MIN": -90,
        "MAX": 90,
        "CLAMPMIN": -20,
        "CLAMPMAX": 20,
        "SIGNED": true,
        "NBDIGITS": 2,
        "UNIT": "°"
      },
      {
        "NAME": "Turret Y",
        "INIT": 0,
        "SCALEMIN": -180,
        "SCALEMAX": 180,
        "MIN": -55,
        "MAX": 55,
        "CLAMPMIN": -40,
        "CLAMPMAX": 20,
        "SIGNED": true,
        "NBDIGITS": 2,
        "UNIT": "°"
      },
      {
        "NAME": "Gripper X",
        "INIT": 0,
        "SCALEMIN": -180,
        "SCALEMAX": 180,
        "MIN": -30,
        "MAX": 65,
        "CLAMPMIN": -20,
        "CLAMPMAX": 65,
        "SIGNED": true,
        "NBDIGITS": 2,
        "UNIT": "°"
      },
      {
        "NAME": "Gripper Y",
        "INIT": 0,
        "SCALEMIN": -180,
        "SCALEMAX": 180,
        "MIN": -40,
        "MAX": 80,
        "CLAMPMIN": 0,
        "CLAMPMAX": 45,
        "SIGNED": true,
        "NBDIGITS": 2,
        "UNIT": "°"
      }
    ]
  }
}

Hardware Konfiguration

Klicke auf der Vigibot Seite -> Management -> Zahnradsymbol (Hardware configuration) -> Modifications made -> Wechsle von Form zu Text -> ersetze {} mit dem folgenden Code:

[SHOW CODE BLOCK]
{
  "CAMERAS": [
    {
      "TYPE": "",
      "SOURCE": 0,
      "WIDTH": 640,
      "HEIGHT": 480,
      "FPS": 30,
      "BITRATE": 1500000,
      "ROTATE": 180,
      "BRIGHTNESS": 50,
      "CONTRAST": -5,
      "BRIGHTNESSBOOST": 80,
      "CONTRASTBOOST": 100
    },
    {
      "TYPE": "",
      "SOURCE": 0,
      "WIDTH": 640,
      "HEIGHT": 480,
      "FPS": 30,
      "BITRATE": 250000,
      "ROTATE": 180,
      "BRIGHTNESS": 50,
      "CONTRAST": -5,
      "BRIGHTNESSBOOST": 80,
      "CONTRASTBOOST": 100
    }
  ],
  "COMMANDS8": [
    {
      "RAMPUP": 0,
      "RAMPDOWN": 0,
      "RAMPINIT": 0,
      "FAILSAFE": true,
      "SLEEP": true
    },
    {
      "RAMPUP": 15,
      "RAMPDOWN": 15,
      "RAMPINIT": 15,
      "FAILSAFE": true,
      "SLEEP": true
    },
    {
      "RAMPUP": 15,
      "RAMPDOWN": 15,
      "RAMPINIT": 15,
      "FAILSAFE": true,
      "SLEEP": true
    }
  ]
}

3. UPS Solder Bridge

ups_poff_1
  • A: Remove POFF solder bridge

ups_poff_2

  • set the AUTO-UPS switch to OFF

4. Servostecker teilen

servo_assembly_1 servo_assembly_2 servo_assembly_3 servo_assembly_4
  • Die Servos werden in dieser Version über die Spannungsversorgungsprint mit Strom versorgt. Die Signalleitungen werden direkt auf dem Pi eingesteckt. Dazu müssen die Kabel "geteilt" werden.
  • Hinweis zu Servokabelfarben: Pluspos ist immer rot. GND ist entweder schwarz oder braun. Die Signalleitung ist entweder orange, gelb, weiss oder blau. Kompliziert, ich weiss.
  • Erstelle nun für jedes Servo einen Stecker mit zwei Polen (+ und GND) und eine einpolige Signalleitung. Um die Stecker einstecken zu können, entfernen wir die Kabel inkl. gecrimpte Buchsen und packen sie in neu Zweier-, resp. Einer-Kunststoffhüllen. Siehe Teileliste, die DuPont Buchsen.
  • Split the signal (orange or white) wire off the 4x servos and 1x motor driver.

5. Spannungsversorgung

pdb_assembly_1 pdb_assembly_3 pdb_assembly_4

  • Wenn nötig, Polarität des PH2.0 Kabels anpassen, je nach USP
pdb_assembly_5
  • Baue den UPS auf den Raspberry Pi.
  • Update 26.05.2025: Schneide den Batteriestecker ab (schneide + und - nacheinander ab, um die Batterie nicht kurzzuschliessen) und löte ihn an die Batterielötpads der USV. Die Servos und Motoren können wie auf den Fotos gezeigt mit Strom versorgt werden. Grund: Der Roboter kann sich zufällig oder bei nur teilweise geladener Batterie ausschalten. Ein weiteres Symptom ist, dass die gemessene Batteriespannung von 4,2 V auf 3,8 V oder weniger abfällt, wenn das Gerät vom Stromnetz getrennt wird. Es scheint, dass der kombinierte Widerstand der Batterieleistung, die über drei Stecker läuft, zu hoch ist.

6. Signalleitungen verbinden

wiring_assembly_1 pinout_ups wiring_assembly_3

Nun werden die Servos an der richtigen Stelle auf dem Pi eingesteckt:

  • A: Kopf Schütteln : Head pan [x] GPIO 5 (physical pin 29)
  • B: Nicken: Head tilt [y] GPIO 6 (physical pin 31)
  • C: Greifer auf/zu: Gripper claw [x] GPIO 7 (physical pin 26)
  • D: Greifer heben/senken: Gripper tilt [y] GPIO 8 (physical pin 24)

wiring_assembly_5

  • A: ESC Motortreiber
    • Linke Motoren GPIO 26 (physical pin 37)
    • Rechte Motoren GPIO 27 (physical pin 13)

Sollte ein Motor eine falsche Drehrichtung haben, Polarität der Motorkabel am Treiber andersherum anschliessen.

  • Verwende das magnetische USB-Kabel, um die USV mit Strom zu versorgen. (Hinweis: Verwende ab sofort den Anschluss auf der USV-Platine – nicht auf der Raspberry Pi-Platine.)
  • Testen Sie die Steuerung jedes Servos von Vigibot.
  • Bevor Sie fortfahren, drücke Stop ■ Drücke die Taste, um alle Servos zu zentrieren. Fahre den Bot über die Taste mit dem durchgestrichenen Steckersymbol im Vigibot Kontrollfeld herunter und ziehe den Akku und das USB-Kabel ab.

Zusammenstellung aller PINS

Da die zu verwendenen PINs verstreut in der Beschreibung zu finden sind, hier eine Zusammenstellung:

Beschreibung GPIO PIN Nummer
Kopf schütteln 5 29
Kopf nicken 6 31
Greifer auf / zu 7 26
Greifer auf / ab 8 24
Motor rechts 27 13
Motor links 26 37
Buzzer + 18 12
Buzzer GND 14

7. Zusammenbau Motorplatte

Benötigtes Material, enthalten in den Kits oder anhand der Kleinteile-Liste

  • Motorplatte
  • 4 Motoren mit angelöteten Kabeln, Länge ca. 12cm
  • 4 Motorhalter mit Schrauben und Muttern
  • Motortreiber mit Schrauben und Muttern
  1. Befestigung der Motoren mit Motorhalten, je 2 Schrauben und 2 Muttern (von unten)

Middle plate assembly-1 Middle plate assembly-2 2. Motortreiber mit zwei Schrauben und zwei Muttern an der Motorplatte befestigen

Middle plate assembly-3 Middle plate assembly-4 3. Schlussendlich sollten die Kabel so aussehen wie im nächsten Bild. Die Motoren auf der gleichen Seite haben die Stecker jeweils nebeneinander. Die Verbindung zum Pi stellt ihr anhand der Beschriftung auf dem Treiber her. Linke Motoren GPIO 26 (physical pin 37), rechte Motoren GPIO 27 (physical pin 13)

Motor Plate complete
4. Auffahrschutz, Greiferhalter und Abstandshalter montieren. Länge siehe Tabelle unten

Middle plate assembly-5Middle plate assembly-6 Middle plate assembly-7Middle plate assembly-8 Middle plate assembly-9Middle plate assembly-10

Stk Benennung Dimmensionen wird verwendet für
4 Distanzbolzen M2.5 Männchen 12mm Pi <> UPS
4 Distanzbolzen M2.5 Männchen 25mm UPS <> Motorplatte
4 Distanzbolzen M2.5 Weibchen 10mm Grundplatte <> Motorplatte
4 Distanzbolzen M2.5 Männchen 5mm Pi <> Topplatte

8. Zusammenbau Kopf

Kopf Schütteln

Pan turret assembly-1 Pan turret assembly-2

Nicken

Tilt turret assembly-1 Tilt turret assembly-2

kompletter Kopf

Pan + Tilt turret assembly-1 Pan + Tilt turret assembly-2

Kamera

Die Infrarot-Seitenteile müssen mit dem Kamerakopf elektrisch leitend verbunden sein. Auf die Polarität achten. Mit den langen Schrauben und Muttern klemmen, danach ins gedruckte Teil einbauen und noch einmal mit Muttern sichern. Oder so wie auf den Bildern. Wichtig ist, dass die IR-Seitenteile mit Spannung versorgt werden.

Camera assembly-1 Camera assembly-2

Zusätzliche Anleitung in Englisch

9. Zusammenbau Greifer

Gripper assembly-1 Gripper assembly-2 Gripper assembly-3 Gripper assembly-4 Gripper assembly-5 Gripper assembly-6 Gripper assembly-7 Final assembly-1 Final assembly-2

Zusätzliche Anleitung in Englisch

10. Finale Fertigstellung

Final assembly-3 Final assembly-4 Final assembly-5 Final assembly-6 Final assembly-7 Final assembly-8 Final assembly-9 Minus render-1

Alle Servohörner müssen satt sitzen und dürfen kein Spiel haben.

  • Mikrofon an einem der USB Anschlüsse einstecken.
  • LTE / 4G Stick in 90° Winkelstecker stecken und diesen in einen der USB Anschlüsse einstecken.
  • Der Roboter sollte nun betriebsbereit sein.
  • Steuere über die Vigibot-Website, überprüfe jeden Servoweg und stelle die Servohörner bei Bedarf neu ein.
  • Stelle beide Infrarot-IR-LEDs auf die schwächste Beleuchtung ein, indem du den Helligkeitssensor/Fotowiderstand abdeckst, das kleine Potentiometer auf den IR-LED-Platinen drehst und mit einer Smartphone-Kamera beobachtest.

10.1 Aufkleber auf dem Roboter

labels_bottom stick_1 Stick 2

Um die Bedienung des Roboters durch die Nutzer zu vereinfachen, wird empfohlen, folgende Aufkleber zu drucken und anzubringen. Die mit ** Text ** geführten Ausdrücke müssen passend zu eurem Roboter angepasst werden. Die Schriftgrösse so anpassen, dass die Aufkleber Platz haben. Beim Hinweis zum LED-Farbcode des 4G Sticks muss auf den Typ des Sticks geachtet werden.

Nr. Benennung Text Position am Roboter
1 Name *Name: ** NAME ** botkins.ch [Nr. ** Roboternummer *] oben/unten auf dem Roboter
2 Hauptschalter Ein / Aus Beim Hauptschalter des Spannungsversorgungsmoduls (UPS)
3 Startvorgang Startvorgang dauert 30s oben/unten auf dem Roboter
4 Hinweis Betrieb Roboterli ist designt, um durchgehend eingesteckt und eingeschaltet zu sein. oben/unten auf dem Roboter
5 Empfang 4G Stick 2x Blau: Empfang ok, Rot + Blau: kein Empfang auf dem 4G Stick
6 Hinweis 4G Stick 4G Stick für botkins.ch vigibot.com auf dem 4G Stick
7* Ladehinweis Roboter mit dem Netzteil laden, nicht am Raspberry in der Nähe der Ladebuchse
8* WLAN Konfig Zum Verbinden mit WLAN Robo einschalten und mit Netzwerk "Vigibot WiFi Config" verbinden oben/unten auf dem Roboter

7* Je nach verbauter Spannungsversorgung (UPS) ist dieser Hinweis anders zu gestalten. Wichtig ist, dass der Robo nicht über den USB-Anschluss des Raspberry geladen wird. Am besten den richtigen Anschluss farblich kennzeichnen und ein Foto dem Begleitbrief beilegen. 8* Nur, wenn balena WLAN-Config installiert ist

11. Optionale Schritte

apt repositories aktualisieren

[Diesen Abschnitt anzeigen]

Um Dinge installieren zu können, müssen die Quellen für apt aktualisiert werden, da die ursprünglichen Paketquellen nicht mehr verfügbar sind.

⚠️ Achtung: Während der Installation wird die bestehende WLAN-Verbindung getrennt.

  • Verbinde den Roboter über Ethernet mit deinem lokalen Netzwerk.

  • Öffne die Vigibot Website und fahre mit dem Cursor auf das Roboter-Icon.

    • Notiere die LAN-IP-Adresse deines Roboters, die angezeigt wird, zB 192.168.1.90
  • Verbindung per SSH herstellen. Je nach Betriebssystem:

    • Windows: Nutze z.B. PuTTY
    • Android: Nutze Termius oder eine andere SSH-App.
  • Win+R > „Powershell“ > Ausführen öffnet das Terminal

  • Gib im Fenster ein: ssh pi@IP-ADRESSE (Ersetze die Adresse mit der Adresse des Pi, zB 192.168.1.146)

  • Das Terminal wird dich fragen, ob du sicher bist, eine Verbindung herstellen zu wollen. Schreibe „yes“ und bestätige

  • Verwende das Passwort, das du oben vergeben hast. Hast du robot.json nicht verändert, ist es „raspberry“.

  1. raspi.list anpassen
sudo nano /etc/apt/sources.list.d/raspi.list

Kommentiere alle vorhandenen Zeilen aus (mit # am Anfang der Zeile) und füge folgende Zeilen ein:

deb http://legacy.raspbian.org/raspbian/ buster main contrib non-free rpi
deb http://archive.raspberrypi.org/debian buster main

Speichern (PuTTY): Strg+O → Enter → Strg+X

  1. sources.list anpassen
sudo nano /etc/apt/sources.list

Kommentiere hier ebenfalls alle vorhandenen Zeilen aus.

Speichern (PuTTY): Strg+O → Enter → Strg+X

  1. Paketlisten aktualisieren
sudo apt update

Danach sollte apt korrekt funktionieren.

WLAN Unterstützung Einrichten

[Diesen Abschnitt anzeigen]

Mit diesem Abschnitt kannst du deinem Roboter ermöglichen, sich per WLAN mit deinem Netzwerk zu verbinden. Wir nutzen dazu das balena wifi-connect-Tool, das ein Captive-Portal auf dem Roboter startet.

  1. Führe zuerst den obigen Abschnitt apt repositories aktualisieren durch, bevor du weiterfährst.

  2. Mit SSH zum Roboter verbinden

ssh pi@ROBOT_IP
  1. balena wifi-connect installieren
bash <(curl -L https://github.com/balena-io/wifi-connect/raw/master/scripts/raspbian-install.sh)
  1. start_Vigibot_WiFi_Config.sh erstellen
nano ~/start_Vigibot_WiFi_Config.sh

Füge folgenden Inhalt ein:

#!/usr/bin/env bash

printf 'Warten, um der WLAN verbindung Zeit zu geben, sich zu verbinden\n'
sleep 25

# Prüfen, ob bereits eine WLAN-Verbindung besteht
iwgetid -r
if [ $? -eq 0 ]; then
    printf 'Skipping WiFi Connect\n'
else
    printf 'Starting WiFi Connect\n'
    /usr/local/sbin/wifi-connect --portal-ssid "Vigibot WiFi Config" --portal-passphrase "64robots"
fi

sleep infinity

PuTTY Speichern: Strg+O, Enter, Strg+X.

  1. Datei ausführbar machen
chmod +x ~/start_Vigibot_WiFi_Config.sh
  1. rc.local anpassen Damit das WLAN-Captive-Portal automatisch beim Booten startet:
sudo nano /etc/rc.local

Füge vor exit 0 folgende Zeile ein:

/home/pi/start_Vigibot_WiFi_Config.sh &

Speichern PuTTY: Strg+O, Enter, Strg+X.

  1. Roboter neu starten
sudo reboot

Nach dem Neustart startet der Roboter automatisch das Captive-Portal Vigibot WiFi Config mit dem Passwort 64robots.

  1. Verbinde dein Smartphone zum Access Point Vigibot WiFi Config. Es kann ca 60 Sekunden dauern, bis wifi-connect gestartet wird.
  2. Öffne eine beliebige Website in einem Browser, das Captive-Portal wird dich automatisch zum Konfikurationsportal weiterleiten.
  3. Dort kannst du das gewünschte Heim-WLAN-Netzwerk aus einer Liste auswählen, womit sich der Roboter dann verbindet.

12. Zusätzliche Bauanleitungen

13. Funktionstest

Nun ist es Zeit für den finalen Check! Teste die Funktionen des Roboters:

  1. Roboter auf vigibot.com sichtbar mit korrektem Namen?

  2. Alle Bedienelemente vorhanden? Wenn nicht > botkins Team fragen

    servo_assembly_4
  3. Spannungsanzeige zuunterst ist vorhanden? Wenn nicht, botkins Team fragen

    servo_assembly_4
  4. Steuerbefehle (vorwärts, rückwärts, links, rechts) funktionieren?

  5. Alle Räder drehen?

  6. Robo lässt sich präzise fahren, auch schnelles Drehen ist möglich?

  7. Robo fällt beim abrupten Bremsen nicht vornüber?

  8. Antriebsmotoren sind vor Staub und Zugriff geschützt?

  9. Ruderhörner der Servos sind passgenau und spielfrei verbaut?

  10. Kopf lässt sich drehen?

  11. Kopf dreht symmetrisch in beide Richtungen? Wenn nicht > Servohorn lösen und in Ruhestellung einmitten

  12. Nicken funktioniert?

  13. Nicken symmetrisch in beide Richtungen? Wenn nicht > Servohorn lösen und in Ruhestellung einmitten

  14. Der Greifer muss bis auf den Boden greifen können und sich komplett öffnen und schliessen lassen.

  15. Der Greifer darf nicht „hängenbleiben“, was passieren kann, wenn die Schrauben zu weit/zu fest eingeschraubt sind. Dazu die Bewegungen ganz langsam durchführen.

  16. Bei vollständigen Kopf- und Greiferbewegungen dürfen keine Kabel gezogen werden.

  17. Verbinde dich mit Vigibot und stell die Kamera auf einen Text gerichtet scharf.

  18. Schau mit dem Smartphone auf die "Augen", die IR-LEDs. Decke den runden Helligkeitssensor ab. Stelle die Helligkeit nun mit einem winzigen Schlitzschraubendreher auf das Minimum. Auf der anderen Seite wiederholen. Das verhindert übermässigen Akkuverbrauch.

  19. Ist der Winkelstecker und der LTE/4G Stick und der Auffahrschutz montiert?

  20. Teste den Roboter mit LTE/4G Stick, bei Dunkelheit, fahre und bewege Kopf oder Greifer bei niedrigem Akkustand (ca 3,3V – 3,5V), ob Abstürze auftreten.

  21. Ist die Ladebuchse des Roboters zugänglich?

  22. Lass den Akku des Roboters vollständig entladen. Die Servos können sich leicht bewegen, aber der Roboter sollte nicht von selbst fahren.

  23. Lasse den Roboter eingeschaltet und schliesse bei vollständig entladenem Akku das Ladekabel an. Er sollte nicht in einer Boot-Schleife hängenbleiben.

  24. Lade den Roboter Komplett auf (aufladen dauert bis zu 10h eingeschaltet, 4h ausgeschaltet). Die Spannung sollte beim Ausgestecken von 4,1–4,2V nicht unter 3,9V fallen. Sonst ist der Widerstand zum Akku zu gross, dazu evtl die Akkukabel direkt am UPS anlöten.

  25. Mirofon testen

  26. Sind die Aufkleber angebracht?

Troubleshooting

[Diesen Abschnitt verbergen]

Wenn du anhand der folgenden Tabelle keine Lösung findest, frage im Vigibot-Discord-Server (Tag @firened) oder in der Botkins Maker Signal-Gruppe nach.

Problem Mögliche Ursachen Lösung wichtig für
Der Roboter trennt sich sporadisch (alle paar Stunden oder Minuten) (1) Schwache Batterie (2) Schlechter 4G-Empfang (1) Aufladen (2) Einen anderen Standort ausprobieren Nutzer
Der Roboter blinkt (visuell) und klickt (akustisch) alle paar Sekunden oder mehrmals pro Sekunde Schwache Batterie Roboter ausschalten und mehrere Stunden lang aufladen Nutzer
Der Roboter trennt alle 5 Sekunden die Verbindung Fehlerhafte Konfiguration von Vigibot Bitten Sie Vigibot oder Botkins, die Online-Konfiguration der Roboter zu überprüfen Nutzer
Der Akku ist nach ~5 Tagen leer, obwohl das Gerät ausgeschaltet ist Einige Teile (Servos, Motortreiber) werden auch im ausgeschalteten Zustand mit Strom versorgt und entladen die Batterie kann leider nicht geändert werden Nutzer
Das Video stottert, das Fahren wird unterbrochen, alle paar Sekunden erscheinen rote Balken auf der Website Schlechter 4G-Empfang, zu geringe 4G-Bandbreite Wählen Sie die Ansicht mit niedriger Bandbreite, probieren Sie einen anderen Standort aus und stellen Sie sicher, dass die mobile Datenübertragungsgeschwindigkeit mindestens „bis zu 50 Mbit/s“ beträgt Nutzer
Robo erscheint nicht, im vigibot.com, oder nur kurz Ist der 4G/LTE Stick eingesteckt, aber es besteht keine Verbindung, wird nur auf WLAN umgeschaltet, wenn der Stick entfernt wird Stick ausstecken, wenn über WLAN verbunden werden soll Nutzer
Während der Montage ist der Roboter nach einem Neustart für einige Sekunden online und verschwindet dann Keine 4G-Verbindung/Empfang Ziehen Sie den 4G-Stick ab und versuchen Sie es mit WLAN oder Ethernet Maker
Der Roboter lässt sich über ssh nicht verbinden, obwohl die IP-Adresse bekannnt ist Firewall oder VPN blockt Firewall oder VPN temporär ausschalten Maker
ssh meldet trotz korrekter IP Adresse " @@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@ ..." Neues Image, alter Key ssh-keygen -R 192.168.1.200 im Terminal eingeben und Enter, alter Key gelöscht. Erneut einloggen Maker
Verbindung per ssh nicht möglich nach Aufspielen von neuem Image Image hat Standardpasswort mitgegeben SD Card in PC > boot > robot.json Name und Passwort vergeben ODER Standardpasswort "raspberry" verwenden, um ssh zu starten Maker
Spannung wird im vigibot Interface nicht korrekt angezeigt (2.5V) Grund liegt je nach UPS am Pin, auf dem die Info an den PI gelangt. Bsp: sudo nano /usr/local/vigiclient/sys.json > "INA219ADDRESS": 66 Maker

| | | | |

Credits

  • Original Partlist: Vigibot
  • Assembly Renders: Narayan1986
  • Partlist Modifications: Botkins Charity Project
  • Assembly Guide: Botkins Charity Project (unless otherwise noted)

About

Minus-Type Vigibot Robot for Botkins

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages