====== Protokoll Wiss. TR Selbst Bauen 81. BuFaTa in München 2017 ====== 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 31x96 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