Rollender Ball: Unterschied zwischen den Versionen

Aus HRW FabLab MediaWiki
Wechseln zu: Navigation, Suche
(Referenz eingefügt)
(Anhänge)
 
(27 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Dieses Projekt behandelt die Eigenkonstruktion einer, aus dem 3D-Drucker erstellen, Kugel welche über den Beschleunigungssensor des Smartphones gesteuert wird.<br>
+
Dieses Projekt behandelt die Eigenkonstruktion einer, mit dem 3D-Drucker erstellten Kugel, welche über den Beschleunigungssensor des Smartphones gesteuert wird.<br>
 
Die Umsetzung erfolgte über eine auf PhoneGap basiertende Applikation, welche ihre Befehle per Bluetooth Low Energy an einen Genuino 101 überträgt.
 
Die Umsetzung erfolgte über eine auf PhoneGap basiertende Applikation, welche ihre Befehle per Bluetooth Low Energy an einen Genuino 101 überträgt.
 +
[[Datei:RollenderBallTransparentCut.png|frameless|right]]
  
 
= Idee & Umsetzungsplanung =
 
= Idee & Umsetzungsplanung =
  
 
Nach einer anfänglicher Findugsphase im Projekttinder hat sich unsere Gruppe auf die Umsetzung dieser Kugel geeinigt. Inspiration holten wir uns von zahlreichen Eigenkonstruktionen aus dem Bereich der sozialen Medien sowie des komerziellen Sphero<sup>[[#Einzelnachweise|[1]]]</sup>.
 
Nach einer anfänglicher Findugsphase im Projekttinder hat sich unsere Gruppe auf die Umsetzung dieser Kugel geeinigt. Inspiration holten wir uns von zahlreichen Eigenkonstruktionen aus dem Bereich der sozialen Medien sowie des komerziellen Sphero<sup>[[#Einzelnachweise|[1]]]</sup>.
Zu Beginn planten wir eine ca. 18cm große Kugel aus Plexiglas zu bestellen, haben uns jedoch nach Rücksprache mit einem Mitarbeiter des FabLabs für eine selbstgedruckte Kugel aus dem 3D-Drucker entschieden. Allerdings ist jede alternative Kugel welche Platz für den Genuino mit Fahrwerk bietet geeignet.
+
Zu Beginn planten wir eine ca. 18&nbsp;cm große Kugel aus Plexiglas zu bestellen, haben uns jedoch nach Rücksprache mit einem Mitarbeiter des FabLabs für eine selbstgedruckte Kugel aus dem 3D-Drucker entschieden. Allerdings ist jede alternative Kugel, welche Platz für den Genuino mit Fahrwerk bietet, geeignet.
Die Kontruktion des Fahrwerkes kann sehr individuell gestaltet werden, wir haben uns für eine horizontalte Befestigung mit zwei Servos entschieden. Weil die Steuerung über einen Beschleunigunssensor erfolgen soll muss dies auch bei der Planung der Applikation berücksichtigt werden.
+
Die Konstruktion des Fahrwerkes kann sehr individuell gestaltet werden, wir haben uns für eine horizontalte Befestigung mit zwei Servos entschieden. Weil die Steuerung über einen Beschleunigunssensor erfolgen soll, muss dies auch bei der Planung der Applikation berücksichtigt werden.
  
= Funktion =
+
= Bauplan =
 +
 
 +
* '''Bauteile'''
 +
** 1 Kugel
 +
** 8 Neodym Magneten
 +
** 1 Halterung für den Arduino
 +
** 1 Arduino (hier: Genuino 101)
 +
** 2 Koninuierliche Servos
 +
** 2 Räder
 +
** 1 Akku (hier: Lithium-Polymer-Akku)
 +
** 8 Verbindungskabel
 +
** 1 Halterung für den Akku
 +
**  Gewichte
 +
**  Smartphone mit PhoneGap zur Steuerung
 +
 
 +
* '''Material'''
 +
** Heißkleber
 +
** Kabelbinder
 +
** ggf. Klebeband
 +
 
 +
==Kugel==
 +
[[Datei:RollenderBallKugelModell.png|thumb|200px|rechts|Modell der Halbkugel]]
 +
Die Kugel besteht aus zwei Halbkugeln, welche über acht quadratische Neodym Magneten fixiert wird. Sie besitzt einen Außendurchmesser von 156.00&nbsp;mm sowie einen Innendurchmesser von 140.00&nbsp;mm. Die acht, für die Magneten vorgesehenen Löcher, erstrecken sich über das Volumen eines Würfels mit der Kantenlänge 5.00&nbsp;mm. Dementsprechend groß müssen auch die acht Neodym Magneten sein. Weitere Details zur Kugel lassen sich aus dem Fusion 360<sup>[[#Einzelnachweise|[3]]]</sup> Modell entnehmen, welches unter [[#Anhänge|Anhänge]] zu finden ist. In unserem Bespiel wurde die Kugel nach diesem Modell aus dem 3D Drucker gedruckt. Wir empfehlen hier die Kugel mit der glatten Oberfläche aufliegend zu drucken, um ein möglichst gutes Ergebnis zu erzielen.<br clear=all>
 +
 
 +
==Halterung für den Arduino==
 +
[[Datei:RollenderBalHalterungArduino.png|thumb|200px|rechts|Modell der Arduino Halterung]]
 +
Die Halterung besteht aus einem Rechteck mit einer Breite von 73.340&nbsp;mm sowie einer Länge von 88.66&nbsp;mm. Die in der Abbildung zu sehenden Würfel, sind für das folgende Projekt nicht mehr von Bedeutung; sie dienen nur noch als horizontale Begrenzung für den Arduino.<br clear=all>
 +
 
 +
==Akku==
 +
[[Datei:RollenderBalHalterungAkku.png|thumb|200px|rechts|Modell der Akku Halterung]]
 +
Die Stromversorgung wird durch einen Lithium-Polymer-Akku, welcher eine konstante Spannung von 7&nbsp;Volt liefert, gewährleistet. Vorherige Tests, mit einer herkömmlichen 9&nbsp;Volt Batterie, sind fehlgeschlagen da diese keine konstante Leistung erbringen konnten, sodass unser Arduino ständig die Verbindung zum Smartphone abgebrochen hat. Die zweite Halterung muss individuell auf den Akku abgestimmt werden. Länge und Breite sind so abgestimmt, dass sie den Akku fest umschließen aber keinen zu großen Druck ausüben. <br clear=all>
 +
 
 +
==Gewichte==
 +
Zum Ausbalancieren werden einige Gewichte benötigt wir haben für dieses Beispiel mehrere Eisenkugeln mit Klebeband zu zwei länglichen Gewichten vereinig.
 +
 
 +
==Zusammenbau==
 +
Als ersten Schritt müssen die acht Magnete in die entsprechenden Löcher der Halbkugeln eingesetzt werden.
 +
Hierbei ist besonders auf die Polung zu achten, da die Magnete eventuell nur noch sehr schwer entfernt werden können.
 +
Anschließend müssen die zwei Servos wie in der Abbildung (siehe [[#Anhänge|Anhänge]]) unter die Halterung für den Arduino angebracht werden.
 +
Wir haben hier zu Heißkleber gegriffen.
 +
Die zweite Halterung für den Akku muss anschließend zusammen mit den Gewichten unter die Arduino Halterung angebracht werden.
 +
Bevor die Gewichte jedoch befestigt werden, muss die Konstruktion ausgewogen werden.
 +
Dies geschieht am besten durch das Einsetzten ohne Gewichte in einer der Halbkugeln.
 +
Nachdem alles verklebt wurde, kann der Arduino an die Halterung angebracht werden und es folgt die Verkabelung des Servos sowie des Akkus.
 +
 
 +
==Verkabelung==
 +
[[Datei:RollenderBallVerkabelung.JPG|mini|300px|rechts|Verkabelung der Servos]]
 +
Die Verkabelung erfolgt wie in der Abbildung rechts.
 +
Die Servos müssen jeweils an den 5V- und einem GND Port angeschlossen werden.
 +
Für die Steuerung der Servos haben wir uns für die digitalen Pins 9, für den linken Servo und Pin 6 für den rechten Servo entschieden.
 +
Das Weiteren muss der Akku mit dem Vin Port sowie einem weiteren GND Port verbunden werden.<br clear=all>
 +
 
 +
= Funktionsweise =
 +
[[Datei:FunktionsweiseRollenderBall.png|mini|links|Das Zusammenspiel aus App und Arduino grafisch dargestellt]]
 +
Die Funktionsweise wurde in zwei Hauptkomponente aufgeteilt; der Smartphone App die mit dem Arduino mit Bluetooth kommuniziert.
 +
<br clear=all>
 +
== Smartphone Applikation ==
 +
Sodass die Applikation auf iOS und Android ausführbar ist, wurde die App in Adobe PhoneGap<sup>[[#Einzelnachweise|[2]]]</sup> entwickelt.
 +
 
 +
Um die Phonegap App für eigene Zwecke zu nutzen, muss zunächst die Anleitung auf der Phonegap [https://phonegap.com/getstarted/ Get Started Seite] befolgt werden.
 +
 
 +
Über dem, in der verlinkten Anleitung, erstellten Projekt können dann unsere [https://gitlab.hs-ruhrwest.de/TeamAlgo/BallInterface/ Quellcodedateien] gezogen werden, die über dem Gitlab der Hochschule verfügbar gemacht worden sind.
 +
 
 +
Danach kann die Applikation in der Desktop App gestartet werden.
 +
 
 +
Auf dem Smartphone muss dann in der Phonegap App, die in der Desktop App angezeigten IP Adresse eingegeben werden.
 +
 
 +
=== Nutzung der App ===
 +
[[Datei:RollenderBallAppScreenshotStart.png|thumb|Screenshot der App vor dem Verbinden|links]]
 +
[[Datei:RollenderBallAppScreenshotVerbunden.png|thumb|Screenshot der App nach dem Verbinden|rechts]]
 +
Die App ist sehr schlicht und einfach gestaltet. Das rote Quadrat im Fadenkreuz zeigt an, wie das Smartphone geneigt ist.
 +
Sobald der Arduino bespielt und mit Strom versorgt ist, kann auf der App der "Verbinden"-Button betätigt werden.
 +
 
 +
Wird der Arduino mit Erfolg verbunden, wird das rote Quadrat blau und der Button erlaubt eine Trennung der Bluetooth Verbindung, falls gewünscht. Der Ball kann jetzt gesteuert werden.
 +
<br clear=all>
 +
 
 +
== Arduino Programmierung ==
 +
Für die Arduino Programmierung haben wir die [https://github.com/arduino/ArduinoCore-arc32/tree/master/libraries/CurieBLE CurieBLE] Bibliothek verwendet, um die Bluetooth Low Energy Verbindung zu dem mobilen Endgerät her zu stellen.
 +
Für die Verbindung benötigt man eine UUID, die man sich, z.B. auf bestimmten Internet Seiten<sup>[[#Einzelnachweise|[4]]]</sup>, generieren lassen kann.
 +
Mit der UUID kann man nun einen BLE Service anlegen. Dieser Service kann benutzt werden, um Signale von dem Endgerät zu empfangen.
 +
Mit der Funktion BLEService.connected() wird geprüft, ob ein Gerät mit dem Arduino verbunden ist.
 +
Mit der Funktion BLEService.written() wird geprüft, ob etwas gesendet wurde.
 +
Falls eine Übertragung stattfand, kann man mit BLEService.value() darauf zugreifen.
 +
Alle Werte, die kleiner Null sind, sind für den linken Servomotor bestimmt, die positiven Werte für den rechten.
 +
Um die Servos anzusteuern haben wir die Library servo.h verwendet.
 +
So können wir die Pins, an denen die Servos angeschlossen sind, festlegen um später über die entsprechenden Pins, die empfangenen Werte an die Servos weiter zu geben.
 +
Unsere [https://gitlab.hs-ruhrwest.de/TeamAlgo/BallArduino/ Quellcodedateien] für den Arduino werden ebenfalls wieder über das Gitlab der Hochschule zur Verfügung gestellt.
  
 
= Team =
 
= Team =
Zeile 15: Zeile 102:
 
*[[Benutzer:Mpmamaci | Marvin Maciejewski]]
 
*[[Benutzer:Mpmamaci | Marvin Maciejewski]]
  
= Anmerkungen =
+
=Anhänge=
 +
<b>Fusion 360 Dateien:</b>
 +
[https://drive.google.com/open?id=1MYOERwTz72pvCAG0jmLkCsdisk_twE1S Google Drive Ordner]<br>
 +
<b>Quellcode (Alternativer Download):</b>
 +
[https://drive.google.com/open?id=1FPQ2DyJVVrirC1027ENVtth3u7zzhjp_ Google Drive Ordner]<br>
 +
<b>Werbeplakat:</b>
 +
[https://drive.google.com/open?id=1_rIH1Bn0IoOfBr7ZiJ07U0SHUXAEhTDn Plakat 01]<br>
 +
 
 +
<b>Bilder:</b><br>
 +
 
 +
<gallery  mode="packed"|left>
 +
File :RollenderBallKugelSeitenansicht.JPG
 +
File: RollenderBallFinal1.jpeg
 +
File: RollenderBallFinal2.jpeg
 +
File: RollenderBallSeitenansicht.jpeg
 +
File: RollenderBallInnereStruktur.jpeg
 +
</gallery>
 +
 
 +
<b>Vorstellung:</b>
 +
{{#evu:https://www.youtube.com/watch?v=G_ySn-8xIn4
 +
|alignment=left
 +
}}
 +
<br clear=all>
 +
 
  
 +
<b>Erster Testlauf:</b>
 +
{{#evu:https://www.youtube.com/watch?v=aUBPa_3gCAw
 +
|alignment=left
 +
}}
 +
<br clear=all>
  
 
= Einzelnachweise =
 
= Einzelnachweise =
[1] [https://www.sphero.com/ Sphero: Offizielle Seite], abgerufen am 23.1.2018
+
[1] [https://www.sphero.com/ Sphero: Offizielle Seite], abgerufen am 23.1.2018<br/>
 +
[2] [https://phonegap.com/ Adobe Phonegap: Offizielle Seite], abgerufen am 5.3.2018<br/>
 +
[3] [https://www.autodesk.com/products/fusion-360/overview Autodesk Fusion 360: Offizielle Seite], abgerufen am 14.3.2018<br/>
 +
[4] [https://www.guidgenerator.com/ GUID/UUID Generator], abgerufen am 14.03.2018<br/>

Aktuelle Version vom 2. Juli 2021, 15:55 Uhr

Dieses Projekt behandelt die Eigenkonstruktion einer, mit dem 3D-Drucker erstellten Kugel, welche über den Beschleunigungssensor des Smartphones gesteuert wird.
Die Umsetzung erfolgte über eine auf PhoneGap basiertende Applikation, welche ihre Befehle per Bluetooth Low Energy an einen Genuino 101 überträgt.

RollenderBallTransparentCut.png

Idee & Umsetzungsplanung[Bearbeiten]

Nach einer anfänglicher Findugsphase im Projekttinder hat sich unsere Gruppe auf die Umsetzung dieser Kugel geeinigt. Inspiration holten wir uns von zahlreichen Eigenkonstruktionen aus dem Bereich der sozialen Medien sowie des komerziellen Sphero[1]. Zu Beginn planten wir eine ca. 18 cm große Kugel aus Plexiglas zu bestellen, haben uns jedoch nach Rücksprache mit einem Mitarbeiter des FabLabs für eine selbstgedruckte Kugel aus dem 3D-Drucker entschieden. Allerdings ist jede alternative Kugel, welche Platz für den Genuino mit Fahrwerk bietet, geeignet. Die Konstruktion des Fahrwerkes kann sehr individuell gestaltet werden, wir haben uns für eine horizontalte Befestigung mit zwei Servos entschieden. Weil die Steuerung über einen Beschleunigunssensor erfolgen soll, muss dies auch bei der Planung der Applikation berücksichtigt werden.

Bauplan[Bearbeiten]

  • Bauteile
    • 1 Kugel
    • 8 Neodym Magneten
    • 1 Halterung für den Arduino
    • 1 Arduino (hier: Genuino 101)
    • 2 Koninuierliche Servos
    • 2 Räder
    • 1 Akku (hier: Lithium-Polymer-Akku)
    • 8 Verbindungskabel
    • 1 Halterung für den Akku
    • Gewichte
    • Smartphone mit PhoneGap zur Steuerung
  • Material
    • Heißkleber
    • Kabelbinder
    • ggf. Klebeband

Kugel[Bearbeiten]

Modell der Halbkugel

Die Kugel besteht aus zwei Halbkugeln, welche über acht quadratische Neodym Magneten fixiert wird. Sie besitzt einen Außendurchmesser von 156.00 mm sowie einen Innendurchmesser von 140.00 mm. Die acht, für die Magneten vorgesehenen Löcher, erstrecken sich über das Volumen eines Würfels mit der Kantenlänge 5.00 mm. Dementsprechend groß müssen auch die acht Neodym Magneten sein. Weitere Details zur Kugel lassen sich aus dem Fusion 360[3] Modell entnehmen, welches unter Anhänge zu finden ist. In unserem Bespiel wurde die Kugel nach diesem Modell aus dem 3D Drucker gedruckt. Wir empfehlen hier die Kugel mit der glatten Oberfläche aufliegend zu drucken, um ein möglichst gutes Ergebnis zu erzielen.

Halterung für den Arduino[Bearbeiten]

Modell der Arduino Halterung

Die Halterung besteht aus einem Rechteck mit einer Breite von 73.340 mm sowie einer Länge von 88.66 mm. Die in der Abbildung zu sehenden Würfel, sind für das folgende Projekt nicht mehr von Bedeutung; sie dienen nur noch als horizontale Begrenzung für den Arduino.

Akku[Bearbeiten]

Modell der Akku Halterung

Die Stromversorgung wird durch einen Lithium-Polymer-Akku, welcher eine konstante Spannung von 7 Volt liefert, gewährleistet. Vorherige Tests, mit einer herkömmlichen 9 Volt Batterie, sind fehlgeschlagen da diese keine konstante Leistung erbringen konnten, sodass unser Arduino ständig die Verbindung zum Smartphone abgebrochen hat. Die zweite Halterung muss individuell auf den Akku abgestimmt werden. Länge und Breite sind so abgestimmt, dass sie den Akku fest umschließen aber keinen zu großen Druck ausüben.

Gewichte[Bearbeiten]

Zum Ausbalancieren werden einige Gewichte benötigt wir haben für dieses Beispiel mehrere Eisenkugeln mit Klebeband zu zwei länglichen Gewichten vereinig.

Zusammenbau[Bearbeiten]

Als ersten Schritt müssen die acht Magnete in die entsprechenden Löcher der Halbkugeln eingesetzt werden. Hierbei ist besonders auf die Polung zu achten, da die Magnete eventuell nur noch sehr schwer entfernt werden können. Anschließend müssen die zwei Servos wie in der Abbildung (siehe Anhänge) unter die Halterung für den Arduino angebracht werden. Wir haben hier zu Heißkleber gegriffen. Die zweite Halterung für den Akku muss anschließend zusammen mit den Gewichten unter die Arduino Halterung angebracht werden. Bevor die Gewichte jedoch befestigt werden, muss die Konstruktion ausgewogen werden. Dies geschieht am besten durch das Einsetzten ohne Gewichte in einer der Halbkugeln. Nachdem alles verklebt wurde, kann der Arduino an die Halterung angebracht werden und es folgt die Verkabelung des Servos sowie des Akkus.

Verkabelung[Bearbeiten]

Verkabelung der Servos

Die Verkabelung erfolgt wie in der Abbildung rechts. Die Servos müssen jeweils an den 5V- und einem GND Port angeschlossen werden. Für die Steuerung der Servos haben wir uns für die digitalen Pins 9, für den linken Servo und Pin 6 für den rechten Servo entschieden. Das Weiteren muss der Akku mit dem Vin Port sowie einem weiteren GND Port verbunden werden.

Funktionsweise[Bearbeiten]

Das Zusammenspiel aus App und Arduino grafisch dargestellt

Die Funktionsweise wurde in zwei Hauptkomponente aufgeteilt; der Smartphone App die mit dem Arduino mit Bluetooth kommuniziert.

Smartphone Applikation[Bearbeiten]

Sodass die Applikation auf iOS und Android ausführbar ist, wurde die App in Adobe PhoneGap[2] entwickelt.

Um die Phonegap App für eigene Zwecke zu nutzen, muss zunächst die Anleitung auf der Phonegap Get Started Seite befolgt werden.

Über dem, in der verlinkten Anleitung, erstellten Projekt können dann unsere Quellcodedateien gezogen werden, die über dem Gitlab der Hochschule verfügbar gemacht worden sind.

Danach kann die Applikation in der Desktop App gestartet werden.

Auf dem Smartphone muss dann in der Phonegap App, die in der Desktop App angezeigten IP Adresse eingegeben werden.

Nutzung der App[Bearbeiten]

Screenshot der App vor dem Verbinden
Screenshot der App nach dem Verbinden

Die App ist sehr schlicht und einfach gestaltet. Das rote Quadrat im Fadenkreuz zeigt an, wie das Smartphone geneigt ist. Sobald der Arduino bespielt und mit Strom versorgt ist, kann auf der App der "Verbinden"-Button betätigt werden.

Wird der Arduino mit Erfolg verbunden, wird das rote Quadrat blau und der Button erlaubt eine Trennung der Bluetooth Verbindung, falls gewünscht. Der Ball kann jetzt gesteuert werden.

Arduino Programmierung[Bearbeiten]

Für die Arduino Programmierung haben wir die CurieBLE Bibliothek verwendet, um die Bluetooth Low Energy Verbindung zu dem mobilen Endgerät her zu stellen. Für die Verbindung benötigt man eine UUID, die man sich, z.B. auf bestimmten Internet Seiten[4], generieren lassen kann. Mit der UUID kann man nun einen BLE Service anlegen. Dieser Service kann benutzt werden, um Signale von dem Endgerät zu empfangen. Mit der Funktion BLEService.connected() wird geprüft, ob ein Gerät mit dem Arduino verbunden ist. Mit der Funktion BLEService.written() wird geprüft, ob etwas gesendet wurde. Falls eine Übertragung stattfand, kann man mit BLEService.value() darauf zugreifen. Alle Werte, die kleiner Null sind, sind für den linken Servomotor bestimmt, die positiven Werte für den rechten. Um die Servos anzusteuern haben wir die Library servo.h verwendet. So können wir die Pins, an denen die Servos angeschlossen sind, festlegen um später über die entsprechenden Pins, die empfangenen Werte an die Servos weiter zu geben. Unsere Quellcodedateien für den Arduino werden ebenfalls wieder über das Gitlab der Hochschule zur Verfügung gestellt.

Team[Bearbeiten]

Anhänge[Bearbeiten]

Fusion 360 Dateien: Google Drive Ordner
Quellcode (Alternativer Download): Google Drive Ordner
Werbeplakat: Plakat 01

Bilder:

Vorstellung:



Erster Testlauf:


Einzelnachweise[Bearbeiten]

[1] Sphero: Offizielle Seite, abgerufen am 23.1.2018
[2] Adobe Phonegap: Offizielle Seite, abgerufen am 5.3.2018
[3] Autodesk Fusion 360: Offizielle Seite, abgerufen am 14.3.2018
[4] GUID/UUID Generator, abgerufen am 14.03.2018