IPenny

Aus HRW FabLab MediaWiki
Wechseln zu: Navigation, Suche


iPenny ist ein mobiler Münzzähler,der Menschen, die Probleme haben mit Münzgeld umzugehen, den Alltag vereinfachen soll.
Der Prototyp besteht aus einem Schiebepotentiometer, einem ESP-32, 3D gedruckten Bauteilen und der dazugehörigen iOS-App.

IPenny

IPenny Logo.png

Entwickler

Dimitrios Barkas, Michael Bella, Tim Cichon, Lukas Duhme

Projektdateien

Thingiverse

Verwendete Programmiersprache

Arduino C, Swift

Eingesetzte Software

Arduino IDE, Autodesk Fusion 360 , Cura Xcode

Eingesetzte Hardware

Ultimaker 2+

Projektidee[Bearbeiten]

iPenny Prototyp

Die Idee für iPenny ist dadurch entstanden, dass eine Bekannte unter Kleinhirnatrophie leidet, was Sie in ihrem Alltagsleben wesentlich beeinträchtigt. So kann Sie beispielsweise nicht alleine Einkaufen gehen, da Sie aufgrund ihrer Krankheit mathematisch so eingeschränkt ist, das Sie ihr Rückgeld nicht überprüfen kann. Hier ist uns die Idee gekommen, dass wir eine App programmieren und einen Mechanismus bauen, der für Sie das Kleingeld Zählen übernimmt. So kann Sie unbeschwert selbständig einkaufen gehen ohne Angst haben zu müssen, dass sie nicht das richtige Wechselgeld wieder bekommt.

Projektbeschreibung[Bearbeiten]

Plakat für das Projekt iPenny


Im Alltag sieht man immer wieder Menschen die Probleme beim Geld zählen haben, dabei kann es sich um ältere Menschen und Menschen mit Sehstörungen handeln, die Probleme haben die kleinen Münzen auseinander zu halten. Aber auch Menschen mit der fehlenden mathematischen Sicherheit schnell im Kopf das Rückgeld zu überprüfen.
Daher heißt unsere Lösung für dieses Problem iPenny, ein mobiler Münzgeld-Zähler, der den Durchmesser einer Münze misst und anhand diesem den Münzwert bestimmt. Mit Hilfe der von uns Programmierten IOS-App kann dann das Münzgeld angezeigt und gezählt werden, oder in unserem zweiten Feature geprüft werden ob das wieder bekommende Rückgeld auch dem entspricht was einem zusteht.
iPenny soll es Menschen somit ermöglichen eigenständiger und mit einem besseren Gefühl Einkaufen gehen zu können ohne die Angst haben zu müssen ,dass das Wechselgeld nicht stimmt.

Hardware[Bearbeiten]

Kostenaufstellung[Bearbeiten]

Materialliste
Beschreibung Kosten pro Stück in € Anzahl
ESP-32 7,00 1
Schiebepotentiometer F4505N Single Type 0,96 1
Feder 0.3mmx3mmx25mm 0,47 1
Schraube (Durchmesser 2mm, Kopfdurchmesser 4mm) 0,10 1
Mutter(Durchmesser 2mm) 0,10 1
Gesamtkosten: 8,63€

3D-Druck[Bearbeiten]

Wir haben uns entschieden alle unsere Konstruktionen mit dem 3D-Drucker herzustellen. Dies ermöglicht es uns die Bauteile exakt an das Schiebepotentiometer und den ESP anzupassen. Ebenfalls können wir dadurch unsere Konzepte schnell modellieren, drucken und testen und somit direkt festellen ob unsere Ursprüngliche Idee funktioniert oder nicht.


Zusammensetzen[Bearbeiten]

Nachdem alle Teile ausgedruckt wurden muss nun alles zusammen gesetzt werden. Der Hauptbestandteil der Konstruktion ist die iPenny-Box hier werden alle anderen Teile montiert. Zu aller erst wird das Dreieck auf den Schiebearm des Schiebepotentiometers gesteckt. Anschließend wird das Schiebepotentiometer in die dafür vorgesehen Vorrichtung gelegt. Das Dreick sollte sich in dem Münzschacht nun hin und her bewegen können. Wichtig ist hierbei das die schräge Seite des Dreickes dort hin zeigt wo der Schacht kleiner ist. Im nächsten Schritt wird die Feder auf die Halterungen am Dreieck und der Box befestigt. Hierfür eignet sich am Besten eine Pinzette mit der man die Feder stauchen kann und anschließend auf die Erhebungen stecken.
Im nächsten Schritt wird der Deckel befestigt. Hierfür benötigt man die Schraube. Diese muss durch die Löcher in der Box und den des Deckels durchgeführt werden und anschließend mit der Mutter fixiert werden.
Die Platte kann hinten an der Box eingeschoben werden. Hier wird die gesammt Elektronik verstaut.
Zuletzt wird noch die Schublade von vorne eingeführt.

Elektronik[Bearbeiten]

Die Elektronik von iPenny umfasst lediglich ein Schiebepotentiometer und einen ESP32. Der ESP32 erfasst die Werte des Schiebepotentionmeters und ermittelt anhand dieser die Wertigkeit der Münze. Da der ESP ebenfalls das BLE Protokoll beherrscht nutzen wir diesen für die Kommunikation mit der selbstprogrammierten App. Die gesamte Elektronik kann hinten in der Box, die durch die Schiebeplatte verschlossen wird verstaut werden.

Münzerkennung[Bearbeiten]

Um die Münzen voneinander zu unterscheiden haben wir uns darauf geeinigt den Durchmesser der Münzen als Anhaltspunkt dafür zu nehmen um welche Wertigkeit es sich handelt. Hierfür benötigen wir einen Sensor der Längen messen kann und genau ist, da sich beispielsweise einige Münzen nur um 1 mm unterscheiden. Da der ESP32 mit einem Analog-Digital-Wandler mit 4096 Werten ausgestatet ist entschieden wir uns dafür ein Schiebepotentiometer zu nutzen. Uns war es also möglich durch den erhaltenen Wert des Schiebepotentiometers die Münzen eindeutig zu identifizieren. Das Schiebepotentiometer braucht eine Stromversorgung vom ESP32 und wird an PIN 34 des ESP32 angeschlossen.

Software[Bearbeiten]

iPenny im Homebildschirm


Sowohl für die Oberfläche als auch für den Code wurde das Entwicklungs-Tool Xcode verwendet. Dieses Tool bietet die Möglichkeit Programme für alle Geräte von Apple zu entwickeln. Die Programmiersprache die hierbei verwendet wurde ist Swift.



App-Entwicklung[Bearbeiten]

Das Hauptmenü von iPenny

Beschreibung & Ablauf[Bearbeiten]

Beim starten der App versucht diese sich mit dem verbauten Microcontroller zu verbinden. Hierfür sucht der Bluetooth Manager nach Peripherie-Geräten die einen Service mit einer vorbestimmmten Signatur bereitstellen. Wenn ein Peripherie-Gerät gefunden wurde, wird eine Verbindung aufgebaut und wenn diese erfolgreich war wird diese mittels eines Labels am unteren Ende des Bildschirmes angezeigt.

Der nächste Schritt war dann die Kommunikation der App mit dem Microcontroller. Hierzu haben wir uns für eine Verbindung mittels Bluetooth Low Energy (BLE) entschieden. Für den Umgang mit BLE benötigt man Zugriff auf Xcode Core, eine Ansammlung von notwendigen Bibliotheken und Tools. Um eine Verbindung mit dem richtigen Gerät per BLE herzutstellen, müssen beide Geräte diese Kommunikationsmethode beherrschen. Nachdem eine Verbidung zwischen App und Microcontroller hergestellt ist können die Daten des Microcontroller an das Handy geschickt und ausgewertet werden. Ausgehend von der Größe des Durchmessers der Münze entscheidet der Microcontroller welche Information er per Bluetooth an das Handy schickt. Nachdem dann die Wertigkeit einer Münze bestimmt ist, wird diese in einem Zähler auf der App realisiert.


Storyboard-Design[Bearbeiten]

Storyboard von iPenny

Die Grundlage biete eine Single-View App mit einem Haupt-Navigations-Controller der uns erlaubt zwischen mehreren Ansichten der App zu gelangen. Durch das klicken auf einen Button wird der View-Controller einer anderen Seite aufgerufen und man bekommt die gewünschte Seite zu sehen. Der Navigations-Controller ist dabei verantwortlich die Ansichten zu verwalten. Der gesamte Quellcode ist zu finden unter dem folgenden Link.

BLE-Verbindung[Bearbeiten]

Die Bluetooth-Low-Energy-Verbindung wurde mit Hilfe der CoreBluetooth-Bibiliothek realisiert. Die Verbindung basiert letztendlich auf der Kommunikation zwischen einem Central-Device und einem Peripheral-Device. Das Central-Device ist bei unserem Projekt die App. Der ESP32 ist das Peripheral-Device. Bei dem BLE Protokoll wird mit Characteristics und Services gearbeitet. Ein Device besitzt ein Service dieser wiederum besitzt Characteristics, die Values enthalten. In unserem Fall besitzt der ESP32 nur einen Service mit einer Characteristic, da wir nur einen Wert an die iOS App schicken muss. Die App sucht beim Starten gezielt nach einem Service der unsere Characteristic besitzt, wenn er sie findet verbindet er sich mit ihr.

Mikrocontroller-Programmierung[Bearbeiten]

Zur Entwicklung der Mikrocontroler-Software wurde die ArduinoIDE in Verbindung mit der ESP32 Dev board Erweiterung verwendet.

ESP-32[Bearbeiten]

Im Programm für den ESP32 wurden die benötigten BLE Characteristics und Services gesetzt. Die BLE Schnittstelle dient dazu die erkannte Münze an die iOS-App zu übertragen. Die Münzerkennung selber funktioniert über die Änderung des gemessenen Widerstandswertes des verbauten Potentiometers. Liegt die Änderung des Potentiometer wertes innerhalb eines Abtastzyklus oberhalb eines bestimmten Schwellwertes, gilt eine Münze als erkannt. Anschließend wird der Maximalwert, der beim durchschieben der Münze erreicht wird, ermittelt. Mit Hilfe des Ermittelten Maximalwertes wird nun die Wertigkeit der Münze ermittelt und das Ergebniss über die BLE-Schnittstelle an die iOS-App gesendet.

Weitere Entwicklung[Bearbeiten]

Im Rahmen des Modul Eingebettete System, sollte ein funktionierende Prototyp entwickelt werden. Dies haben wir geschafft. Allerdings ist der Prototyp noch Ausbaufähig. Der ESP32 wurde von uns zu Demonstrationszwecken ausschließlich mit einem Rechner betrieben. Für eine mobile Nutzung ist eine Powerbank notwendig. Ebenfalls ist die Haptik noch nicht optimiert. Die Vorrichtung zum durchschieben muss exakt auf der Münze liegen. Um dies zu umgehen könnten wir an die Vorrichtung eine kleine Kuhle konstruieren, die sich auf die Münze legt und diese somit durch schiebt.