Protokoll Taschenrechner selber bauen

Anwesend: Robert (Alumnus, TU Dresden), Ludwig (TU Dresden), Moses (TU Wien), Daniel(TU Wien), Georg (Hochschule München), David (Hochschule München) BuFaTa WiSe17
Leitung des AK: Robert (Alumnus, TU Dresden)

Einführung

Das Projekt wird allen Anwesenden zum Herstellen eines gemeinsamen Informationsstandes erklärt. Fragen dazu werden beantwortet. Danach werden die ToDos bearbeitet.

„Konkurrenz“:

https://www.engadget.com/2017/08/28/numworks-graphing-calculator/

http://www.librecalc.com/en/ , http://www.3ders.org/articles/20150114-french-students-create-fully-functional-and-open-source-scientific-calculator.html

noch fehlende Funktion: Besselfunktion

Aufgaben / TODOs

Open Source für TR Mathe suchen (Georg, David)

Library für Mathematik https://www.gnu.org/software/gsl/

Open Source für GUI suchen oder selbst schreiben

https://ugfx.io/

Features: https://ugfx.io/features

Unterstützte Hardware: https://ugfx.io/platforms

Wurde z.B. auch von der SHA2017 (Chaos Computer Club nahes Event) Badge verwendet: https://github.com/SHA2017-badge/ugfx (E-Paper Display)

Lizenz eher fragwürdig, da selbst geschrieben. Angeblich 100% Open Source. https://ugfx.io/license.html

Bieten auch eine Software an (ugfx-Studio), mit der man sich einfach die entsprechenden GUI Views klicken kann

TODO Evaluieren: Sinnvoll verwendbar ab welcher Displayauflösung?

Open Source für Display auf Dotmatrix suchen oder selbst schreiben

Display Controller? Falls ein zu ugfx kompatibler verwendet wird dann ist der Treiber dort schon enthalten

Mikrocontroller raussuchen

doch FPGA nehmen? → nur, wenn man einen ASIC bauen will

mal bei herkömmlichen TR gucken um MC Anforderungen „reverse zu engineeren“ ?

Tastenmultiplexing überlegen

Display raussuchen

84x48px Nokia 5110 3mA mit SPI Interface https://www.ebay.at/itm/LCD-Blau-Display-Screen-fur-Nokia-5110-LCD-Module-fur-Arduino-DIY-project-SPI-GE/182076317392 –> müsste größer sein, die höhe könnte passen, ist aber viel zu schmal (ist halt aus nem Nokia 5110 und ein Handy ist selten so breit wie ein Taschenrechner)

Casio FX 991 DE z.B. hat 192×63 Pixel

oder Display aus vorigem Protokoll mit HD44780 (4 Daten + 2 Controlpins) http://www.pollin.de/shop/dt/NTE0OTc4OTk-/Bauelemente_Bauteile/Aktive_Bauelemente/Displays/LCD_Modul_DATAVISION_DG_12232.html (ziemlich dick, aber gute Größe)

Hardware BOM

Matrix-Tastatur

Alternative http://www.ebay.at/itm/3x4-Keypad-Keyboard-Matrix-Tastatur-Modul-fur-Arduino-Atmel-AVR/172307560121

oder https://www.ebay.at/itm/Keypad-Keyboard-16-Keys-Matrix-Tastatur-Modul-fur-Arduino/401410044846

Favorit: oder https://www.ebay.at/itm/4x4-Matrix-16-Quadrat-Keypad-Keyboard-Panel-Modul-16-Buttons-Mcu-Fur-Arduino/292311637517

Akkuladeregler https://www.ebay.com/itm/2Pcs-1A-5V-TP4056-Lithium-Battery-Charging-Module-USB-Board-Electronic-Component/302255054546

Akku https://www.pollin.de/p/liion-akkuset-h11182-3-7-v-1-ah-5-stueck-271398

Hardware Mainboard Layout

Toolchain

Projektmanagement/-hosting

GitHub

Alternative könnte GitLab bei Fachschaft werden, oder: https://gitlab.com

Tests für numerische Berechungen

Finanzierung

bei ST (µController) gibts vielleicht für studentische Projekte auch irgendeine Unterstützung (ST hat sich allerdings in der Vergangenheit bei der Unterstützung der bastelnden Menschen als sehr restriktiv herausgestellt)

z.B. vielleicht mit Werbennennung auf Gehäuse

Mikrocontroller

Mindestanforderungen

Sleep Mode

I/O Interrupt muss den µC wecken können

Interupt Handler für Tasten

FPU (Single Precision reicht) –> Mit Fließkomma würde man sich unbestimmt viele Rechenoperationen für die Genauigkeit der Festkomma zu sparen

keine DSP

kein eigener Displaycontroller

wieviele Pins benötigt man? (Multiplexing?) –> wenn der Controller genügend Pins hat, spart man sich das Multiplexing. Die Frage ist nur, ob man dies auch möchte.

MHz ist nicht entscheidend, da Rechenzeit nicht entscheidend, auf Grund von PowerConsumption den µC gering takten (Vorschlag evtl.

Solarzelle wird zum Betrieb vermutlich nicht ausreichen –> Weglassen wegen Kosten?

Wiederaufladbarkeit über USB wäre gut

Grundsatzfrage: FPU als HW oder SW, da in Hardware erst ab Cortex M4?! Beispiel Software FPU Library: https://www.quinapalus.com/qfplib.html

–> Es wird sich in Richtung der STM32L Serie von SGS-Thomson orientiert, da diese im vorliegenden Anwendungsfall sehr stromsparend sind sowie den gestellten Anforderungen genügen.

Eher einen am Anfang der mehr Features hat:

Beispiel: https://www.mouser.de/Search/Refine.aspx?Keyword=STM32L4

Eventuell für später, da Stromverbrauch am geringsten –> Durchrechnen in STM32CubeMX Die STM32L0 oder die STM32F0 Serie sind zu favorisieren, da hier der Stromverbrauch am gerinsten in der Serie ist

Beispiel https://www.mouser.de/ProductDetail/STMicroelectronics/STM32F0308-DISCO/

Alternative: STM Eval Board fürn Anfang

zu groß: http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-discovery-kits/32l476gdiscovery.html

wahrscheinlicher Kandidat: http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-nucleo/nucleo-l432kc.html

Test von Software auf Eval Boards, Hardware nach und nach „Russisch“ aufbauen

OpenSource für TR-Mathe in C (C++)

Standard Funktionen wie Winkelfunktionen, Exponentialfunktion … http://www.netlib.org/fdlibm/

Numerisches Lösen von Gleichungen: http://www.ssisc.org/lis/

DFT/FFT : http://www.fftw.org/

Standard Vektor und Matrix Rechnungen. http://www.netlib.org/blas/

Link des open source TR LibreCalc (zum größten Teil Standardbibliotheken in CPP genutzt): https://github.com/LibreCalc/ti

Schwierig eine Open-Source Variante zu finden für komplexe Zahlen

⇒ https://www.gnu.org/software/libc/manual/html_node/Complex-Numbers.html

Allgemeine Übersicht: https://www.gnu.org/software/libc/manual/html_node/Arithmetic.html#Arithmetic

* Bei CPP abklären ob Compiler vorhanden ist

GCC compiliert sowohl C als auch C++ code: https://developer.arm.com/open-source/gnu-toolchain/gnu-rm

* (Pseudo)Random Number Generator: https://www.gnu.org/software/libc/manual/html_node/Pseudo_002dRandom-Numbers.html#Pseudo_002dRandom-Numbers

Ende

Beginn: 17:45 Uhr
Ende: 20:00 Uhr
Der AK ist fertig / nicht fertig / sollte auf weiteren Tagungen besprochen werden