Benutzer-Werkzeuge

Webseiten-Werkzeuge


uhr2

UHR² Roboterprojekt Handbuch

UHR² universal humanoider roboter
UHR² universal humanoid robot

α-Revision 0.009
24.04.2020 © Michael Metzger

WICHTIG: Dieses Handbuch unterliegt laufend Erweiterungen und Änderungen (siehe Datum und Revisionsnummer) es ist derzeit noch eher eine Projektübersicht als eine Nachbauanleitung. Jeder von mir dokumentierte Fortschritt und/oder Änderung wurde durch Erprobung und Tests von mir selbst verifiziert. Möglicherweise funktionieren manche Beschreibungen, Teile oder Geräte trotzdem nicht wie erwartet oder auch gar nicht, vielleicht gibt es auch bessere Lösungen. Eine Haftung für die Angaben kann in keinster Weise aus dieser Dokumentation abgeleitet werden. Ein Nachbau erfolgt daher auf eigene Gefahr und eigenes Risiko!

Vorwort

UHR² ein Roboter zum Selbstbauen.
UHR² besteht aus Teilen die leicht zu beschaffen sind und wenig kosten.
UHR² kann sehen, verstehen und sprechen.
UHR² bewegt sich wie ein Mensch.

Roboter rücken in unserem Leben immer mehr in den Mittelpunkt, vor allem in technikaffinen Haushalten sind solche Helfer mittlerweile in vielfältiger Form im Einsatz. Oft ist es den Personen gar nicht bewusst welche Systeme sie täglich unterstützen. Am einfachsten ist es wohl am Smartphone zu bemerken, diese Geräte haben sich schon sehr lange einen festen Platz an unserer Seite erobert und für den ursprünglichen Zweck, der Sprachtelefonie, werden sie immer weniger verwendet. Ganze Heerscharen von APPs haben individuelle Aufgaben übernommen, sie verwalten Termine, Aufgaben und Einkaufslisten. Sie bieten raschen Zugang zum Bankkonto, verwalten Kundenkarten oder dienen als elektronische Geldbörse für Cyberwährungen - um nur einige wenige Beispiele anzuführen.
Digitale Assistenten wie Alexa Siri oder Google Home sind uns mittlerweile bekannt oder sogar schon in den eigenen vier Wänden zu Hause. Natürlich können die Fähigkeiten dieser virtuellen Assistenten ebenfalls mit Skills erweitert werden und eine Anpassung an persönliche Anforderungen des Besitzers erfolgt manuell oder aber auch oft schon durch „maschinelles Lernen“ oder „künstlicher Intelligenz“ der Geräte. Die Einfachheit der Bedienung, also der Spracheingabe trägt sicher auch bei das diese Assistenten eine so rasche Verbreitung finden. Offensichtlich ist auch die Akzeptanz mit einem elektronischen Gerät zu sprechen mittlerweile so groß das wir den Vorteil der einfachen Bedienung eines Gerätes gerne nutzen.
Der nächste Schritt kann nur sein den digitalen Assistenten aus seinem virtuellen Gefängnis zu befreien und ihm einen echten Körper in der realen Welt zu geben, damit er wie ein Mensch mit seiner Umgebung interagieren kann. Somit sind wir, ab sofort, im Zeitalter der Roboter angelangt!

Projektbeschreibung

UHR² der Roboter zum Selberbauen, ein Projekt getragen vom Open Source Gedanken der einen einfachen Zugang zur Robotertechnik bringt! Einfach und kostengünstig war und ist bei der Entwicklung des Projektes die Basis. Daher kommen bei der Entwicklung meist Open Source Programme zum Einsatz, wo das nicht möglich ist bleibt der Fokus zumindest kotenlose bzw. kostengünstige Software. Auch Hardwareteile sind Eigenkonstruktionen aus bzw. genormte Standardteile wie Schrauben, Muttern usw. Im Bereich der Elektronik und Steuerung kommen Fertigkomponenten wie der RapberryPi3, der Arduino UNO und Modellbauservos. Auch einige Hacks sind dabei wie zum Beispiel die Motoren aus einem IKEA Akkuschrauber. Alles im allem Teile die leicht und günstig zu beschaffen sind.

Da das Projekt auch einer ständigen Weiterentwicklung unterliegt ist eine genaue Baudokumentation von zentraler Bedeutung. Daher werden genaue Vorgehensweisen befolgt um eine Dokumentation der durchgeführten Veränderungen nachvollziehen zu können und die Kompatibilität der Bauteile und Software im höchsten Maße sicherzustellen. Die Bauanleitung auf www.roboterfabrik.at in der Rubrik „UHR² Handbuch“ wird diesbezüglich am aktuellen Stand gehalten und sofern man sich an diese Anleitung hält wird der Nachbau des Roboters gelingen.

Die Bauanleitung versteht sich als „Schritt für Schritt“ Anleitung und ist so aufgebaut das eine gewisse Lernkurve vorhanden ist damit gelingt der Bau auch handwerklich weniger geübten Personen. Auch kostenmäßig ist der Einstieg günstig und erst mit zunehmender Komplexität steigt auch der finanzielle Aufwand.

Der mechanische Aufbau erfolgt in einer Mischbauweise aus Holzleisten uns 3D Teilen, die erforderlichen Teile sind für die jeweilige Baugruppe mit Bezugsquellen und Preisen angegeben. Es gibt zur Übersicht auch eine komplette Einkaufsliste mit allen Teilen die zu beschaffen sind. PLA Kunststoff wurde einerseits aus Gewichtsgründen, andererseits aus Kostengründen gewählt. Die 3D Druckteile garantieren eine absolute Flexibilität in der Konstruktion bezüglich des Designs und der Anpassungsfähigkeit. Ein eigener 3D Drucker ist nicht unbedingt notwendig da man die Teile bei entsprechenden Dienstleistern drucken lassen kann bzw. sich vielleicht auch jemand in der Community findet der die Teile produziert. Sollte ein eigener 3D Drucker vorhanden sein empfiehlt sich ein Modell mit dem Teile mit den Abmaßen 200 x 200 x 200 mm.
Damit die Kosten für den (Nach)Bau eines solchen Roboters überschaubar bleiben steht die Funktionalität an erster Stelle, das Design orientiert sich daher vorrangig an der Funktion und nicht am Aussehen! Oftmals können auch, mit geringen Abänderungen, ähnliche Teile verbaut werden. Dies wird aber nur empfohlen wenn ein dementsprechendes Wissen vorhanden ist, ansonsten empfiehlt sich die Bauanleitung penibel einzuhalten. Vorschläge zur Verbesserung oder Änderung von Hard- und Software sind natürlich willkommen und werden, sofern sie eine Vereinfachung darstellen, in die laufende Dokumentation übernommen.

Verhaltenskodex
Entwickler des UHR² Open-Source-Roboters bekennen sich einheitlich zu einem Code of Conduct, um zu gewährleisten, dass jeder Einzelne gewisse Regeln in der Verantwortlichkeit und Zuverlässigkeit seiner Arbeiten befolgt. Dies vor allem deswegen notwendig, da sich die meisten Entwickler nie in ihrem Leben gesehen haben oder sehen werden.

Sei höflich
In einem Projekt wird es unvermeidlich Leute geben, mit denen Du nicht übereinstimmst oder die es schwierig finden, zusammenzuarbeiten. Akzeptiere das, aber sei trotzdem respektvoll. Uneinigkeit ist keine Entschuldigung für schlechtes Benehmen oder persönliche Angriffe, und eine Gemeinschaft, in der sich Menschen bedroht fühlen, ist keine gesunde Gemeinschaft.

Glaube an die gute Absicht
Beitragende haben viele Möglichkeiten, unser gemeinsames Ziel eines kostenlosen Robotersystems zu unterstützen. Durch verschiedenen Voraussetzungen können sich unterschiedliche Möglichkeiten ergeben. Viele unserer Mitwirkenden haben nicht Deutsch (bzw. Englisch) als Muttersprache oder unterschiedliche kulturelle Hintergründe.

Sei kollaborativ
In einem großen und komplexen Projekt gibt es immer etwas zu lernen. Es ist gut, um Hilfe zu bitten, wenn Sie es brauchen. Ebenso sollten Hilfsangebote im Zusammenhang mit unserem gemeinsamen Ziel, das Projekt zu verbessern, gesehen werden. Wenn du etwas für das Projekt machst, sei bereit, anderen zu erklären, wie es funktioniert, damit sie auf Ihrer Arbeit aufbauen können, um es noch besser zu machen. Fasse dich kurz!
Denken daran, dass das, was Du schreibst, von hunderten Personen gelesen wird. Durch das Schreiben kurzer Beiträge können die Teilnehmer die Konversation so effizient wie möglich verstehen. Wenn eine ausführliche Erläuterung erforderlich ist, solltest Du eine Zusammenfassung hinzufügen.
Versuche, einer Konversation neue Argumente hinzuzufügen, sodass jeder Beitrag dem Thread einen eindeutigen Wert hinzufügt. Beachten dabei, dass der Rest des Threads weiterhin die anderen Nachrichten mit bereits vorgenommenen Argumenten enthält. Bleibe beim Thema, immer aber besonders in Diskussionen, die bereits ziemlich groß sind.

Sei offen
Die meisten Kommunikationswege innerhalb des Projektes erlauben öffentliche und private Kommunikation. Gemäß des Verhaltenskodex sollten Sie vorzugsweise öffentliche Kommunikationsmethoden für Projektbezogene Nachrichten verwenden, es sei denn, Du veröffentlichst etwas Sensibles. Dies gilt auch für Nachrichten, für Hilfe oder Projektbezogene Unterstützung. Eine öffentliche Support-Anfrage bringt nicht nur viel eher eine Antwort auf deine Frage, sie stellt auch sicher, dass versehentliche Fehler von Personen, die deine Frage beantworten, einfacher erkannt und korrigiert werden können.

Bei Problemen
Während dieser Verhaltenskodex von den Teilnehmern eingehalten werden sollte, erkennen wir an, dass Menschen manchmal einen schlechten Tag haben oder einige der Richtlinien in diesem Verhaltenskodex nicht kennen. Wenn dies geschieht, kannst Du darauf antworten und auf diesen Verhaltenskodex hinweisen. Solche Nachrichten können öffentlich oder privat sein, was auch immer angemessen ist. Unabhängig davon, ob die Nachricht öffentlich ist oder nicht, sollte sie dennoch die relevanten Teile dieses Verhaltenskodexes einhalten. Insbesondere sollte es nicht missbräuchlich oder respektlos sein. Glaube an die gute Absicht! Es ist wahrscheinlicher, dass die Teilnehmer sich ihres schlechten Verhaltens nicht bewusst sind, als dass sie absichtlich versuchen, die Qualität der Diskussion zu verschlechtern.

Ernste oder hartnäckige User die gegen diesen Verhaltenskodex verstoßen, werden vorübergehend oder dauerhaft daran gehindert, über unsere Systeme zu kommunizieren. Beschwerden sollten (privat) an die Administratoren des betreffenden Kommunikationsforums gerichtet werden. Kontaktinformationen von den Administratoren finden Sie auf der Seite zur Organisationsstruktur. Version 1.0 wurde am 05. August 2018 ratifiziert.

Das Projekt, die Hersteller des Systems, haben einen Verhaltenskodex für die Teilnehmer aller Kommunikationsformen innerhalb des Projekts verabschiedet.

Robotergesetze

Die Asimov’schen Gesetze lauten:
1.Ein Roboter darf kein menschliches Wesen (wissentlich) verletzen oder durch Untätigkeit (wissentlich) zulassen, dass einem menschlichen Wesen Schaden zugefügt wird.
2.Ein Roboter muss den ihm von einem Menschen gegebenen Befehlen gehorchen – es sei denn, ein solcher Befehl würde mit Regel eins kollidieren.
3.Ein Roboter muss seine Existenz beschützen, solange dieser Schutz nicht mit Regel eins oder zwei kollidiert.

0 Vorbereitung

1 Hardware

1.0 Grundgerüst

Baugruppen

Kopf[00], Hals[01], Körper[02], Arm rechts[03], Arm links[04], Hand rechts[05], Hand links[06], Bein rechts[07], Bein links[08], Fuß rechts[09], Fuß links[10]

Schematische Darstellung

Foto: www.roboterfabrik.at

Teilenummerierung

Foto: www.roboterfabrik.at

1.0.0 3D Druckteile

Bauteilegruppe Kopf [00]
Stück Nummer-Rev Gruppe Beschreibung Bild Farbe Druckzeit Füllgrad Stütz Druckinfo stl Datei
1 U2-00-001-0 Kopf - Foto rot 00:00 30% nein - U2-00-001-0.stl
1 U2-00-002-0 Kopf - Foto rot 00:00 30% nein - U2-00-002-0.stl
1 U2-00-003-0 Kopf - Foto rot 00:00 30% nein - U2-00-003-0.stl
1 U2-00-004-0 Kopf - Foto rot 00:00 30% nein - U2-00-004-0.stl
1 U2-00-005-0 Kopf - Foto rot 00:00 30% nein - U2-00-005-0.stl
Bauteilegruppe Hals [01]
Stück Nummer-Rev Gruppe Beschreibung Bild Farbe Druckzeit Füllgrad Stütz Druckinfo stl Datei
1 U2-01-001-0 Hals - Foto rot 00:00 30% nein - U2-01-001-0.stl
1 U2-01-002-0 Hals - Foto rot 00:00 30% nein - U2-01-002-0.stl
1 U2-01-003-0 Hals - Foto rot 00:00 30% nein - U2-01-003-0.stl
1 U2-01-004-0 Hals - Foto rot 00:00 30% nein - U2-01-004-0.stl
1 U2-01-005-0 Hals - Foto rot 00:00 30% nein - U2-01-005-0.stl
Bauteilegruppe Körper [02]
Stück Nummer-Rev Gruppe Beschreibung Bild Farbe Druckzeit Füllgrad Stütz Druckinfo stl Datei
1 U2-02-001-0 Körper - Foto rot 00:00 30% nein - U2-02-001-0.stl
1 U2-02-002-0 Körper - Foto rot 00:00 30% nein - U2-02-002-0.stl
1 U2-02-003-0 Körper - Foto rot 00:00 30% nein - U2-02-003-0.stl
1 U2-02-004-0 Körper - Foto rot 00:00 30% nein - U2-02-004-0.stl
1 U2-02-005-0 Körper - Foto rot 00:00 30% nein - U2-02-005-0.stl
Bauteilegruppe Arm rechts [03]
Stück Nummer-Rev Gruppe Beschreibung Bild Farbe Druckzeit Füllgrad Stütz Druckinfo stl Datei
1 U2-03-001-0 Arm rechts - Foto rot 00:00 30% nein - U2-03-001-0.stl
1 U2-03-002-0 Arm rechts - Foto rot 00:00 30% nein - U2-03-002-0.stl
1 U2-03-003-0 Arm rechts - Foto rot 00:00 30% nein - U2-03-003-0.stl
1 U2-03-004-0 Arm rechts - Foto rot 00:00 30% nein - U2-03-004-0.stl
1 U2-03-005-0 Arm rechts - Foto rot 00:00 30% nein - U2-03-005-0.stl
Bauteilegruppe Arm links [04]
Stück Nummer-Rev Gruppe Beschreibung Bild Farbe Druckzeit Füllgrad Stütz Druckinfo stl Datei
1 U2-04-001-0 Arm links - Foto rot 00:00 30% nein - U2-04-001-0.stl
1 U2-04-002-0 Arm links - Foto rot 00:00 30% nein - U2-04-002-0.stl
1 U2-04-003-0 Arm links - Foto rot 00:00 30% nein - U2-04-003-0.stl
1 U2-04-004-0 Arm links - Foto rot 00:00 30% nein - U2-04-004-0.stl
1 U2-04-005-0 Arm links - Foto rot 00:00 30% nein - U2-04-005-0.stl
Bauteilegruppe Hand rechts [05]
Stück Nummer-Rev Gruppe Beschreibung Bild Farbe Druckzeit Füllgrad Stütz Druckinfo stl Datei
1 U2-05-001-0 Hand rechts - Foto rot 00:00 30% nein - U2-05-001-0.stl
1 U2-05-002-0 Hand rechts - Foto rot 00:00 30% nein - U2-05-002-0.stl
1 U2-05-003-0 Hand rechts - Foto rot 00:00 30% nein - U2-05-003-0.stl
1 U2-05-004-0 Hand rechts - Foto rot 00:00 30% nein - U2-05-004-0.stl
1 U2-05-005-0 Hand rechts - Foto rot 00:00 30% nein - U2-05-005-0.stl
Bauteilegruppe Hand links [06]
Stück Nummer-Rev Gruppe Beschreibung Bild Farbe Druckzeit Füllgrad Stütz Druckinfo stl Datei
1 U2-06-001-0 Hand links - Foto rot 00:00 30% nein - U2-06-001-0.stl
1 U2-06-002-0 Hand links - Foto rot 00:00 30% nein - U2-06-002-0.stl
1 U2-06-003-0 Hand links - Foto rot 00:00 30% nein - U2-03-003-0.stl
1 U2-06-004-0 Hand links - Foto rot 00:00 30% nein - U2-03-004-0.stl
1 U2-06-005-0 Hand links - Foto rot 00:00 30% nein - U2-03-005-0.stl
Bauteilegruppe Bein rechts [07]
Stück Nummer-Rev Gruppe Beschreibung Bild Farbe Druckzeit Füllgrad Stütz Druckinfo stl Datei
1 U2-07-001-0 Bein rechts - Foto rot 00:00 30% nein - U2-07-001-0.stl
1 U2-07-002-0 Bein rechts - Foto rot 00:00 30% nein - U2-07-002-0.stl
1 U2-07-003-0 Bein rechts - Foto rot 00:00 30% nein - U2-07-003-0.stl
1 U2-07-004-0 Bein rechts - Foto rot 00:00 30% nein - U2-07-004-0.stl
1 U2-07-005-0 Bein rechts - Foto rot 00:00 30% nein - U2-07-005-0.stl
Bauteilegruppe Bein links [08]
Stück Nummer-Rev Gruppe Beschreibung Bild Farbe Druckzeit Füllgrad Stütz Druckinfo stl Datei
1 U2-08-001-0 Bein links - Foto rot 00:00 30% nein - U2-08-001-0.stl
1 U2-08-002-0 Bein links - Foto rot 00:00 30% nein - U2-08-002-0.stl
1 U2-08-003-0 Bein links - Foto rot 00:00 30% nein - U2-08-003-0.stl
1 U2-08-004-0 Bein links - Foto rot 00:00 30% nein - U2-08-004-0.stl
1 U2-08-005-0 Bein links - Foto rot 00:00 30% nein - U2-08-005-0.stl
Bauteilegruppe Fuß rechts [09]
Stück Nummer-Rev Gruppe Beschreibung Bild Farbe Druckzeit Füllgrad Stütz Druckinfo stl Datei
1 U2-09-001-0 Fuß rechts - Foto rot 00:00 30% nein - U2-09-001-0.stl
1 U2-09-002-0 Fuß rechts - Foto rot 00:00 30% nein - U2-09-002-0.stl
1 U2-09-003-0 Fuß rechts - Foto rot 00:00 30% nein - U2-09-003-0.stl
1 U2-09-004-0 Fuß rechts - Foto rot 00:00 30% nein - U2-09-004-0.stl
1 U2-09-005-0 Fuß rechts - Foto rot 00:00 30% nein - U2-09-005-0.stl
Bauteilegruppe Fuß links [10]
Stück Nummer-Rev Gruppe Beschreibung Bild Farbe Druckzeit Füllgrad Stütz Druckinfo stl Datei
1 U2-10-001-0 Fuß links - Foto rot 00:00 30% nein - U2-10-001-0.stl
1 U2-10-002-0 Fuß links - Foto rot 00:00 30% nein - U2-10-002-0.stl
1 U2-10-003-0 Fuß links - Foto rot 00:00 30% nein - U2-10-003-0.stl
1 U2-10-004-0 Fuß links - Foto rot 00:00 30% nein - U2-10-004-0.stl
1 U2-10-005-0 Fuß links - Foto rot 00:00 30% nein - U2-10-005-0.stl

1.0.1 Klebstoffe

1.0.2 Halbzeuge

2 Elektronik

2.0 Raspberry Pi Zero

Technische Daten

Minicomputer Raspberry Pi WH (in der Version 1.1. von 2017)
Name: Raspberry Pi® Zero WH
Prozessor: BCM 2835 SOC 1GHZ
Arbeitsspeicher: 512 MB
Netzwerk: WLAN 802.11 b/g/n
On-board Wireless LAN: 2.4 GHz 802.11 b/g/n (BCM43438)
On-board Bluetooth: 4.1 + HS Low-energy (BLE) (BCM43438)
Board-Steckplätze: GPIO 40 PIN, SPI, I2C, UART, CSI
Speicherkarte: microSD
Anschlüsse
1x mini-HDMI Typ C Anschluss
1x micro-B USB für Daten
1x micro-B USB für Stromversorgung
Maße: Länge 65 mm, Breite 30 mm, Höhe 5 mm

Dieser Microcomputer eignet sich aufgrund der kleinen Bauform, des geringen Stromverbrauchs und der guten Leistung hervorragend zum Einsatz in dem UHR² Roboter. Die Programme für den Roboter werden in Python3 bzw. C (gcc Compiler) geschrieben.

Einkaufsliste

Raspberry Pi Zero
Stück Bezeichnung Link
1 Raspberry Pi Zero WH
1 microSD Karte
1 Netzgerät
Optional
1 Kartenlesegerät für microSD Karte

Neben den angeführten Teilen wird auch ein PC mit SD Kartenlesegerät verwendet um das Betriebssystem Raspbian, eine speziell für den Raspberry Pi angepasste Linuxversion auf die microSD Karte zu schreiben.

GPIO Anschlüsse

Foto: www.roboterfabrik.at

2.1 Arduino

2.1.0 Technische Daten

2.1.1 Anschlussbelegung

2.2 Servos

2.2.0 Technische Daten

2.2.1 Anschlussbelegung

2.2.2 Berechnung der Servostellkraft

Berechnung / Umrechnung der Servostellkraft Die Servostellkraft, bzw. der Drehmoment, also die Kraft welcher der Servo hat um zu drehen wird meist in Ncm (Newton Centimeter) angegeben. Doch darunter können sich die wenigsten etwas vorstellen, mit der Angabe Kg/cm jedoch schon eher und die Umrechnung ist ganz einfach.
Umrechnung Ncm in Kg/cm Multipliziert einfach Ncm mit dem Faktor 0,10197 Das heißt 1 Ncm entspricht 0,10197 Kg/cm Stellkraft.

Beispiel:
Die Servostellkraft / Drehmoment wird mit 32 Ncm angegeben.
32 x 0,10197 = 3,26 Kg/cm
Umrechnung Kg/cm in Ncm Multipliziert einfach Kg/cm mit dem Faktor 9,80665 Das heißt 1 Kg/cm entspricht 9,80665 Ncm.

Beispiel:
Die Servostellkraft / Drehmoment wird mit 3,5 Kg/cm angegeben.
3,5 x 9,80665 = 34,32 Ncm
Die physikalische Formel dazu lautet: Drehmoment M = Kraft F * Kraftarm l (M = F*l)
Ncm sagt also aus, wie viel Kraft der Servo maximal hat, bei 1 cm Abstand zum Servo bzw. Drehpunkt (Länge des Servohebel bzw. Abstand zum Servo wo die Kraft benötigt wird zum Drehpunkt.) Bei 2 cm Abstand würde sich die Kraft z.B. halbieren

2.2.4 Servotestprogramm

servotest.c
// Servotestprogramm Version 1.0
// © Michael Metzger - www.roboterfabrik.at - 2019
 
#include <Servo.h> Servo myservo;     // Servo Objekt (max. 8 Servo) 
int pos = 0;                          // Variable zum Abspeichern der Servoposition 
void setup() { myservo.attach(3);     // Servoanschluss an Pin 3 (PWM) 
} 
void loop() 
{ 
for(pos = 0; pos < 180; pos += 1)    // Drehung von 0° bis 180°; in 1° Schritten 
{
// Servodrehung bis zum in Variable ‚pos‘ angegebenen Winkel (Grad) 
myservo.write(pos); 
delay(20);                           // Wartezeit wenn das Servo die Endposition erreicht hat 
} 
for(pos = 180; pos>=1; pos-= 1)      // Drehung von 0° bis 180°; in 1° Schritten 
{
 
// Servodrehung bis zum in Variable ‚pos‘ angegebenen Winkel (Grad) 
myservo.write(pos); delay(20);       // Wartezeit wenn das Servo die Endposition erreicht hat 
} 
}

2.3 Sensoren

2.3.0 Technische Daten

2.3.1 Anschlussbelegung

2.4 Kreisel

2.4.0 Technische Daten

2.4.1 Anschlussbelegung

2.5 Kameras

2.5.0 Technische Daten

2.5.1 Anschlussbelegung

2.6 Lautsprecher

2.6.0 Technische Daten

2.7 Mikrofon

2.7.0 Technische Daten

2.8 Verkabelung

2.8.0 Farben-Normierung

2.9 Akkus

2.9.0 Technische Daten

3 Entwicklungs-Software

3.0 gcc /gdb

3.0.0 Allgemein

3.0.1 Programme

3.1 Python

3.1.0 Allgemein

3.1.1 Programme

3.2 OpenSCAD

3.3 Cura

3.4 Fritzing

4 Betriebssystem

4.0 Raspbian

Nachdem wir alle benötigten Teile bekommen haben, geht es los mit dem Download und der Installation des Raspbian Betriebssystems auf die microSD Karte.

Download Raspbian Buster Lite Auf der Homepage https://www.raspberrypi.org/ befinden sich viele Informationen zum Raspberry Pi. Unter dem Menüpunkt Downloads und dort unter Raspbian (direkter Link: https://www.raspberrypi.org/downloads/raspbian/) befindet sich eine gezippte Datei mit dem Betriebssystem „Raspbian Buster Lite“ das ist eine Minimalversion (ohne Desktopoberfläche) basierend auf Debian Buster in der Version vom 2019-09-26 (Kernel Version: 4.19) mit einer Größe von 435 MB. Diese Datei laden wir nun auf den PC.

SHA-256 Checksumme prüfen

SHA-256 Checksumme des Downloads unter Windows10 prüfen
Generell sollten man Software nur von vertrauenswürdigen Quellen installieren, diese erkennt man in der Regel dadurch, dass sie eine so genannte SHA-256 Checksumme beim Download anzeigen. Eine SHA-256 Checksumme ist eine 256 Zeichen lange Kette aus Zahlen und Buchstaben die durch eine Formel aus einer Menge an Daten entsteht.
Der SHA-256 Algorithmus generiert eine lange Zahl, es unmöglich Software manuell so zu verändern, dass die selbe Checksumme entsteht. Die Prüfsumme einer Datei muss immer gleich sein, andernfalls wurde an den Daten etwas geändert (manipuliert).

Download des Checksummenprogramms für Windows: https://www.dropbox.com/s/4hgplc7h5k6ivd5/sha256sum.exe?dl=0 Nach dem Download der Datei in Windows 10 in das Downloadverzeichnis wechseln und den Befehl eingeben:

sha256sum.exe 2019-09-26-raspbian-buster-lite.zip


Die richtige SHA-256 Checksumme: a50237c2f718bd8d806b96df5b9d2174ce8b789eda1f03434ed2213bbca6c6ff
Die angezeigte Checksumme muss mit der angeführten Zahl übereinstimmen!

GNU/Linux Raspbian auf die microSD Karte schreiben

Zum Formatieren der microSD Karte unter Windows 10, verwenden wir das Programm SD Card Formatter.
Das Programm kann unter der Internetadresse https://www.sdcard.org/downloads/formatter/eula_windows/index.html kostenlos als zip-Datei heruntergeladen werden.
Nach dem Download die Datei SDCardFormatterv5_WinEN.zip entpacken und die Installation mit einem Doppelklick auf SD Card Formatter 5.0.1 Setup.exe starten.

Das Programm SD Card Formatter starten und den Laufwerksbuchstaben der eingesteckten microSD Karte auswählen und die Karte formatieren. Die neu formatierte Karte ist nun bereit für die Installation des Betriebssystems.

Das Betriebssystem kann nicht einfach auf die microSD Karte kopiert werden, zum Übertragen verwenden wir unter Windows 10 das Programm ≪balenaEtcher≫. ≪balenaEtcher≫ kann kostenlos aus dem Internet unter der Adresse https://www.balena.io/etcher/ heruntergeladen werden.

Mit einem Doppelklick auf die Datei ≪balenaEtcher-Setup-1.5.71.exe≫ wird die Installation auf dem PC gestartet.
Nun starten wir das Programm balenaEtcher und schieben die microSD Karte in den Kartenleser, dann die Datei ≪2019-09-26-raspbian-buster-lite.iso≫ (Linux Betriebssystem) auswählen und auf die microSD Karte schreiben.
Nach Beendigung des Schreibprozesses (dauert einige Zeit) die microSD Karte aus dem Kartenleser entfernen und gleich wieder einstecken, eventuell ausgegebene Fehlermeldungen ignorieren.

Vorbereiten zum ersten Start

In diesem Absatz behandeln wir die Vorbereitungsarbeiten um den Raspberry Pi Zero ohne angeschlossener Maus Tastatur und Monitor zu starten und zu betreiben. Der Zugang zum Raspberry Pi Zero erfolgt mit dem Programm Putty per SSH Verbindung über das WLAN.

SSH aktivieren

Mit dem Windows 10 Editor Notepad erstellen wir auf der microSD Karte, in der Boot-Partition von Raspbian Buster Lite, eine leere Datei mit dem Namen SSH (ohne .txt Endung im ASCI Format). Eine leere Datei SSH bewirkt, dass der SSH-Dienst sofort aktiviert wird. (Das ist standardmäßig bei Raspbian 10 (Buster) nicht der Fall).

WLAN aktivieren

Mit dem Windows 10 Editor Notepad erstellen wir auf der microSD Karte, in der Boot-Partition von Raspbian Buster Lite, eine Datei wpa_supplicant.conf in der Boot-Partition von Raspbian Buster Lite mit folgendem Inhalt:

country=DE
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
       ssid="xxxx"
       psk="xxxx"
       key_mgmt=WPA-PSK
}

In der Datei oben ist zu ersetzen: ssid=„xxxx“ die xxxx mit dem Netzwerknamen
und bei psk=„xxxx“ ist statt den xxxx das Netzwerk-Passwort einzutragen

Danach die microSD Karte in den Raspberry Pi W Zero einstecken und durch einstecken des Netzgerätes starten.

Einloggen nach der Installation

Mit dem Windows-Konsolenprogramm SSH auf den Rapberry verbinden und mit Benutzer: pi Passwort: raspberry (Achtung! Beim aktiviertem englischen Tastaturtreiber sind Y und Z Tasten vertauscht) Aus Sicherheitsgründen sollt das Passwort sollte schnellstmöglich geändert werden.
Foto: www.roboterfabrik.at Das Konfigurationsprogramm Raspberry Pi Software Configureation Tool (raspi-config) um Linux-Raspian anzupassen

sudo raspi-config

\\starten und den Punkt 1 auswählen um das Standardpasswort des User pi zu ändern. Als nächstes den Punkt 8 auswählen um das Konfigurationsprogramm „raspi-config“ selbst auf den aktuellen Stand zu bringen.
Foto: www.roboterfabrik.at

Aktualisieren des Raspbian Betriebssystems

sudo apt-get update
sudo apt-get dist-upgrade

4.0.0 Installation ohne Tastatur und Monitor

4.0.1 Einrichtung und Konfiguration über SSH

4.0.2 Fixe IP Adressen beim RaspberryPi

4.1 Hardwaresteuerung

4.1.0 Technische Daten

4.1.1 Anschlussbelegung

4.2 UHR²'s Brain

4.2.0 Künstliche Intelligenz

4.2.1 Bildverarbeitung

4.2.3 Spracheingabe

4.2.4 Sprachausgabe

Die Sprachausgabe auf dem Raspberry pi 4 erfolgt mit dem Programm espeak über den 3.5 mm Klinkenstecker auf Aktivboxen.
Als erster Schritt werden die Aktivlautsprecher mit dem Soundausgang (Klinkenanschluss) verbunden.
Dann die Aktivlautsprecher mit dem mitgelieferten Netzgerät oder wenn die Lautsprecher über den USB-Port versorgt werden, diese mit Strom versorgen.

Danach testen wir die grundsätzliche Funktion der Soundausgabe:

aplay /usr/share/sounds/alsa/Side_Left.wav

Nach erfolgreichem Test wird das Programm eSpeak installiert:

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install espeak

Nun können wir die Sprachausgabe testen:

espeak -s 150 -vde "Dieser Text wird ausgegeben" --stdout | aplay

Das Ergebnis hört sich dann so an:



eSpeak bietet einige Einstellungsmöglichkeiten:
Option Funktion
-f TEXTDATEI
wiederzugebende Textdatei
--stdin
Text der Standardeingabe (stdin) statt einer Textdatei wiedergeben
-a WERT
Lautstärke, Werte von 0 bis 200, Standard ist 100
-s WERT
Sprechgeschwindigkeit in Wörtern pro Minute, Werte von 80 bis 450, Standard ist 175
-g WERT
Wort-Zwischenräume. Pause zwischen den Wörtern, in 10ms-Einheiten bei Standardgeschwindigkeit (siehe -s)
-p WERT
Anpassung der Tonhöhe,Werte von 0 bis 99, Standard ist 50
-k WERT
Gebe Großbuchstaben wieder: 1= Klicklaut bei einem Großbuchstaben oder zwei Klicklaute, wenn das Wort nur aus Großbuchstaben besteht, 2= dem Wort „capitals“, höherer Werte führen zu einer Erhöhung der Stimmlage (z.B. -k20)
-l WERT
Zeilenlänge. Wenn nicht 0 gesetzt ist (Standardeinstellung), werden Zeilen, die kürzer als diese Länge sind, als Phrasen-Ende betrachtet

4.3 UHR²'s Body

4.3.0 I2C Bus

4.3.1 Bewegungsabläufe

4.3.3 Gleichgewicht

4.3.4 Sensordatenverarbeitung

4.4 Arduino

4.4.0 Servo Testprogramm

5 Werkzeuge

5.0 elektrische Werkzeuge

5.1 elektronische Messgeräte

5.1.0 Multimeter

5.1.1 Labornetzgerät

5.2 Vorrichtungen

5.3 3D Drucker

6 Bezugsquellen

6.0 Stücklisten

6.0.0 Werkzeuge

6.0.1 Halbzeuge

6.0.2 Mechanische Bauteile

Materialliste Mechanische Bauteile
Stück Nummer Beschreibung Bezeichnung Bild Lieferant(en) Stückpreis (circa)
1 M0001-00----
1 M0002-00----
1 M0003-00----

6.0.3 Elektronische Bauteile

Materialliste Elektronische Bauteile
Stück Nummer Beschreibung Bezeichnung Bild Lieferant(en) Stückpreis (circa)
1 E0001-00RaspberryPi Zero WHauptrechner-
1 E0002-00RaspberryPi Zero W---
1 E0003-00RaspberryPi Zero W---

7 Pläne

Jeder Bauteil wird in der Bauanleitung mit einer Teilenummer versehen diese vierstellige Bauteilnummer wird nur einmal vergeben. Die Teilenummer hat folgenden Aufbau:
Eine einstellige Bauteilgruppe zB. [E] eine vierstellige Teilenummer [0012] und optional eine zweistellige Revisionsnummer [02]

Beispiel:
E0012-02 Bauteilgruppe E - Teilenummer 0012 - Revision 02

Diese Kennzeichnung ermöglicht ein rasches eindeutiges zuordnen des jeweiligen Bauteiles. Der Revisionskatalog gibt Auskunft zur Kompatibilität mit bereits vorhandenen Bauteilen, bzw. über die Veränderungen an dem Bauteil.
Um den Lieferanten eines Bauteils zu verifizieren wird im Bedarfsfall eine vierstellige Lieferantennummer in Klammer angegeben z.B. E0012-02 (0017) diese Angabe ist optional und der zugehörige Lieferant kann dem Lieferantenkatalog entnommen werden.

3D Bauteile in einem frühen Konstruktionsstadium (Alpha Teile) werden mit einem Kleinbuchstaben und einer Zahl (fortlaufender Revisionsnummer bezeichnet) diese Teile sind NICHT zur Produktion gedacht, sondern dokumentieren ein frühes Konstruktions- bzw. Produktionsstadium und dienen ausschließlich zu Tests. Sobald diese Teile zur Fertigung herangezogen werden, unterliegen sie den oben angeführten Richtlinen zur Teilenummerkennzeichnung.

7.0 Pläne Grundgerüst

7.0.0 Baupläne

7.0.1 Verkabelungspläne

7.0.2 elektronische Schaltpläne

8 Anhang

8.0 Linux Konsolenbefehle

8.1 Begriffe

8.2 Elektronik Einführung

8.2.1 Allgemein

8.2.2 Widerstände

Farbcodierung
Foto: www.roboterfabrik.at
Es gibt zehn international anerkannte Standardfarben, mit denen die Werte einer Reihe von elektronischen Komponenten ermittelt werden.
Jedem wird ein numerischer Wert zwischen 0 (null) und 9 (neun) in der folgenden Reihenfolge zugewiesen. schwarz, braun, rot, orange, gelb, grün, blau, violtt, grau, weiß.
Da diese am häufigsten zur Ermittlung von Widerstandswerten verwendet werden, wird dieser Farbbereich häufig (fälschlicherweise) als „Widerstandsfarbcodes“ bezeichnet.

In der Praxis werden diese auf verschiedene andere elektronische Komponenten angewendet.
Zwei andere Farben werden ebenfalls häufig verwendet. Gold und Silber, üblicherweise als Toleranzmarkierungen auf Widerständen (zusammen mit bestimmten anderen Farben), verdoppeln sich jedoch auch als Teilungsfaktormarkierungen für Widerstände unter 10 Ohm.
Ihre zugewiesenen Toleranzwerte betragen ± 5% für Gold und ± 10% für Silber. Als Teilungsfaktoren sind ihre Werte ÷ 10 bzw. ÷ 100.

8.2.3 Leuchtdioden LED

8.2.4 Dioden

8.2.5 Elektrolyt Kondensatoren ELKO

8.2.6 Transistoren NPN PNP

8.3 C Programmierung Einführung gcc/gdb

8.4 Programmierung Einführung Python3

8.5 Quellen

8.7 Archiv UHR¹

Foto: www.roboterfabrik.at

WICHTIG: UHR¹ - Dieses Projekt diente der Grundlagenforschung und die Erkenntnisse sind in das UHR² Roboterprojekt eingeflossen.
uhr2.txt · Zuletzt geändert: 2020/04/26 09:53 von Michael Metzger