ForumsController: Eine Display-Diskussion

Diskutiere ForumsController: Eine Display-Diskussion im ForumsController Forum im Bereich Controller/Regler, Fahrerinformation & Elektronik; Nochmals der Status, jetzt zum customizeable Mainscreen. Das Konzept steht, aber ich bin noch lange nicht fertig... Der Obere Teil...
A

AndreasB242

Nochmals der Status, jetzt zum customizeable Mainscreen.

Das Konzept steht, aber ich bin noch lange nicht fertig...

Der Obere Teil (Geschwindigkeit, Akku und Icons) sind fix. Der untere Teil des Displays lässt sich frei konfigurieren.

Aktiviert wird der Modus im Menü. Dann landet man wider auf dem Mainscreen, aber es gibt so ein pinken Rahmen.

Dieser lässt sich verschieben, über die Texte oder das Diagramm.

Beim anwählen erscheint ein Menü, welches das löschen oder ersetzen des Komponenten erlaubt. Löschen funktioniert auch schon, ich habe das Diagramm und den Eintrag 2 gelöscht, siehe Bild.

Einfügen von neuen Komponenten habe ich noch nicht gemacht, dazu muss ich erst mal noch erfassen, was an Daten vom ForumsController überhaupt verfügbar ist.

Das Diagramm Zeigt den Verlauf eines Wertes. Somit sieht man z.B. den Verbrauch über die letzten paar Minuten.

Wie gesagt, noch nicht fertig, aber ich habe die Sourcen trotzdem mal auf Github gestellt:
https://github.com/andreasb242/Arduino-Pedelec-Controller/tree/master/Arduino_ILI9341_LCD

Edit: Grad noch den Tippfehler auf dem Bild gesehen... Werde ich gleich im Code noch korrigieren...
 

Anhänge

  • edit-main1.jpg
    edit-main1.jpg
    230,3 KB · Aufrufe: 409
  • edit-main2.JPG
    edit-main2.JPG
    102,1 KB · Aufrufe: 394
  • edit-main3.jpg
    edit-main3.jpg
    198,5 KB · Aufrufe: 366
C

custobike

Vor einiger Zeit habe auch ich zur Evaluierung ein Displays in 2.8" mit ILI9143 Treiber bestellt. http://www.ebay.de/itm/LCD-Touch-Pa...270114?hash=item2816816322:g:UkYAAOSwlfxXGeyJ
Gibt's auch von anderen Anbietern...
Jetzt bin ich auf diese Diskussion gestossen.
Ich habe mal die Software von AndreasB242 aufgespielt wie auf dem Bild zu sehen.
Als erstes Display hatte ich vor Jahren das Nokia5110 angebunden.
Das 2.8" ist kein Vergleich dazu. Nicht nur, dass es wesentlich größer ist,
am Nokia störte mich schon immer die schlechte Lichtverteilung durch das Backlight.
Beim 2.8" ist die Ausleuchtung sehr homogen.
Es nimmt sich 60mA bei 3.1V bis 80mA bei 3.3V.

Auf der Rückseite ist ein Pro Mini 3.3V 8Mhz aufgeklebt, da ich auch den Ansatz verfolge, mehrere Arduinos mit dedizierten Aufgaben einzusetzen.

Also, Zustimmung von meiner Seite!
 

Anhänge

  • IMGP8612.JPG
    IMGP8612.JPG
    124 KB · Aufrufe: 664
  • IMGP8614.JPG
    IMGP8614.JPG
    120,7 KB · Aufrufe: 550
Minimalist

Minimalist

Dabei seit
05.07.2012
Beiträge
618
Punkte Reaktionen
288
Details E-Antrieb
Sinus B2, HMI, 27G-Dual-Drive
Und mit dem Touchscreen kannst du sogar noch komfortabel ein Menü bedienen. :)
 
C

custobike

Touchscreen klingt gut, aber da der Verkäufer keine Daten zum Touchinterface nennt, kann ich im Moment nicht abschätzen, ob das gelingt.
 
D

daenny

Dabei seit
30.09.2015
Beiträge
46
Punkte Reaktionen
29
So, ich habe mir mal die Arbeit gemacht und das Display am FC zum Laufen bekommen :). Danke an @AndreasB242 für die gute Vorarbeit!


TL;DR:
Ich finde, dass es echt super aussieht! Und das meiste funktioniert gut.
Ein Video vom Display ist hier:
https://www.dropbox.com/s/o81ibg4oab30zgj/2016-07-29 19.21.39.mov?dl=0

Der Code ist in meinem Fork auf Github:
https://github.com/daenny/Arduino-Pedelec-Controller


Ausführliche Beschreibung:
Das Display ist in der direkten Sonne nicht immer gut lesbar, aber im Dunkeln macht es echt was her :) Ich habe mir das kleinere Display gekauft mit 2.2", aber der Code sollte ohne Probleme auf dem größeren laufen.

Ich habe ein Case 3D gedruckt, das ist noch nicht ganz optimal (wir haben den 3D Drucker neu, da sind die richtigen Einstellungen noch nicht ganz gefunden) und anscheinend habe ich mich um 1mm vermessen an der linken Seite, sodass es etwas vom Display verdeckt ;).

Ich benutze keinen "echten" FC, sondern einen Teensy, an dem ich das Display direkt angeschlossen habe (via Hardware SPI) und in meiner Throttle sind die 3 Taster eingebaut (siehe hier https://www.pedelecforum.de/forum/index.php?threads/forumscontroller-lite-mit-vesc.38710/)

Der Anschluss des Displays ist ähnlich wie hier:
https://www.pjrc.com/store/display_ili9341.html
Ich habe Reset auf Pin 10, CableSelect ist auf Ground kurzgeschlossen, MISO ist bei mir nicht angeschlossen, sodass ich 6 Kabel in total benoetige: MOSI (11), RESET (10), LED und VCC beide direkt auf 3.3V, SCK (13), DC(9) und Ground. Reset auf 3.3V ging bei mir nicht, wobei es eigentlich gehen sollte. So könnte man evtl noch ein Kabel einsparen.

Ich habe einen GSM Middrive Motor von Woosh ohne integrierten Controller, mit einem VESC als Motorsteuerung, via UART am Teensy angeschlossen. Außerdem sind das Dual PAS, Speed-Reedswitch, 3 Taster, Brake-reedswitch, Throttle und Display am Teensy angeschlossen. Die 5V out vom VESC beliefern den Teensy, PAS und Throttle. 3.3V vom Teensy geht zum Display.

Neues im Vergleich zum originalem Display Code:
- Da ich den Teensy benutze, habe ich dafuer die optimierte Library eingebunden (https://github.com/PaulStoffregen/ILI9341_t3)
- (Fast) alle Daten werden korrekt am Display angezeigt und live geupdated (Reichweite und Zeit habe ich noch nicht implementiert)
- Neues icon für PAS (in)aktiv, und Profil 1/2
- In den "TextComponents" wird die Genauigkeit angegeben, sodass man die Nachkommastellen richtig anzeigen kann.
- Im Menu kann man jetzt zyklisch durchgehen, d.h. wenn man ganz oben ist und nach oben geht, springt man ganz nach unten und umgekehrt.
- Das Diagramm funktioniert live, es zeigt mit 1Hz einen Verlauf eines bestimmten Wertes an. Falls zwischendurch Updates des Wertes kommen wird der durchschnitt berechnet. Es skaliert automatisch auf den maximalen Wert in der Liste.
Kurzes Video hier: https://www.dropbox.com/s/swfj2f695oipzj4/2016-07-29 20.38.35.mov?dl=0
- Man kann einfach "Views" definieren, also einfach eine Liste von Komponenten die angezeigt werden soll. Und was im Diagramm angezeigt werden soll. Im Moment habe ich "Trip view", "Power view" und der "Random rest"
- Das Nothilfe-Menu funktioniert, Profil switch, Licht, Bluetooth, an/aus, etc, geht via Display.

Änderungen am FC code (fürs Display):
- Theoretisch sollte man das Display auch relativ einfach über ein Serial Protokoll mit einem Extra Arduino betreiben können. Ich habe probiert das Display komplett "encapsulated" zu lassen. Sodass man alles was ich jetzt mit Funktionen aufrufen mache, auch per UART machen können sollte.

Änderungen am FC code (Unwichtig fürs Display):
- Der VESC liefert über UART die Stromspannung, Batterieamps, Motoramps, Motor RPM, VESC PCB Temperatur, VESC Mosfet Temperatur
- Der FC/Teensy schickt an den VESC die gewünschten Motoramps via UART, anstelle des PWM / Volt signals
- Ich benutze die Teensy Encoder Library für das PAS (dual quadrature PAS, im Motor integriert), dadurch habe ich 96 Ticks per Umdrehung (2 Hall Sensoren, 24 Magnete), ich habe jetzt auch eine "Minimum Ticks before start" Variable, da es sonst zu sensibel anspringt.
- Da der Teensy auf 96 MHz läuft habe ich den "slow loop" auf 10Hz anstelle der 1Hz laufen. Damit wird das Display auch mit 10Hz geupdated.

Noch ToDo:
- Bessere Case drucken, die ist schon designed, wer will, kann gerne die STL oder Inventor files haben.
- Eine "TimeComponent" programmieren, die die Zeit vernünftig anzeigen kann, für Uhrzeit und Fahrzeit
- Der Teensy hat eine integrierte RTC, dafür muss ich nur noch den Code in den FC integrieren
- Kabel und Code aufräumen ;)

Ich habe keine Ahnung ob der Arduino Mega das Display auch neben dem ganzen FC Code schafft, ich denke aber, dass es gehen sollte. Alle FCs die auf dem Nano basieren, haben auf jeden Fall zu wenig Speicherplatz.
Wie aber schon gesagt, der Aufwand dass alles via UART mit einem extra Arduino am Display zum Laufen zu bekommen, sollte gehen.

Display am Lenker mit Throttle:
2016-07-29 20.35.56.jpg

Display:
2016-07-29 20.38.01.jpg

Teensy Board: (JST stecker: rechts -> 3xTaster, Brake und Throttle, JST unten links -> Display, links mittig: PAS + Speed sensor, links oben -> VESC UART, 5V in)
2016-07-29 20.36.50.jpg

Teensy + VESC Paket:
2016-07-29 20.37.05.jpg

PS: Programmiert habe ich das ganze in CLion mit CMakeLists (https://github.com/drichelson/teensy-cmake), also wird es in der Arduino IDE wahrscheinlich nicht direkt funktionieren.
 
Zuletzt bearbeitet:
P

parasole

Dabei seit
24.03.2017
Beiträge
4
Punkte Reaktionen
0
Vor einiger Zeit habe auch ich zur Evaluierung ein Displays in 2.8" mit ILI9143 Treiber bestellt. ..........................................
Ich habe mal die Software von AndreasB242 aufgespielt wie auf dem Bild zu sehen.

Also, Zustimmung von meiner Seite!
Hi, sorry for writing in English, German is only with google translate assist...
Have one question regarding this disply, after all I could not find/understand what type I should select on controller side?
If judging by config file from AndreasB242, it is defined as NOKIA_4PIN, is that correct?
#define DISPLAY_TYPE DISPLAY_TYPE_NOKIA_4PIN // Set your display type here. CHANGES ONLY HERE!<-----------------------------
 
D

daenny

Dabei seit
30.09.2015
Beiträge
46
Punkte Reaktionen
29
If you use my code, I set it up such that you should set:

#define DISPLAY_TYPE DISPLAY_TYPE_ILI22
 
P

parasole

Dabei seit
24.03.2017
Beiträge
4
Punkte Reaktionen
0
If you use my code, I set it up such that you should set:

#define DISPLAY_TYPE DISPLAY_TYPE_ILI22
Thanks Daenny, it is clear with your build, however I am looking to other alternative too thus my question is for AndreasB242 and custobike, as of my understanding they use the dysplay with a dedicated board whcih is attached to FC by serial interface. This variant looks to be interesting from the moment I may use display processor for taking care about any input signals (brake for example) close to handle bar and to be sent down to FC which will be close to motor and VESC controller and in its turn will take care for local signals like hall and pas sensors....
I will try to build your variant too but on STM32F103, however having two separate CPUs is an apealing solution...
 
Zuletzt bearbeitet:
D

daenny

Dabei seit
30.09.2015
Beiträge
46
Punkte Reaktionen
29
Ah ok. As far as I know, what they are showing is only a proof of concept. It was indeed the idea to have the Arduino micro talk to the ForumsController via UART, which has its advantages and disadvantages. But from what I understood they never completed the project. In my version the display code is still mostly encapsulated, so it should not be too hard to pull it out completely and design a simple communication protocol. But it would mean to rewrite some of the "logic" of the ForumsController software.
If you are experienced with the STM32 programming, it might be worth looking into running the Pedelec Software directly on the VESC. It has two input Pins free, i.e. for PAS and speed, and plenty of processing power (it's and F4), so you could connect the rest (Brake, buttons) to the "Display controller" and talk to the VESC via UART. I thought about that at first, but using the Teensy meant less code rework for me ;).
 
P

parasole

Dabei seit
24.03.2017
Beiträge
4
Punkte Reaktionen
0
Thanks for explanations Daenny, that makes sense and explains why I could not find the communication part between FC and display in AndreasB242 code.
Regarding PAS in VESC, I had this idea too (looks a much more elegant solution) and going to try it may be during next winter, however it will take more time and effort which I am not willing to spend right now, same considerations as yours with Teensy... then just to use two nano's or your variant (with minimum effort for porting to stm32f103 as it is arduino compatible too) as a quick solution seems reasonable, I want it asap, the spring is here and I am not ready yet with my bike :)

Btw, what is your toolchain for Teensy?
 
D

daenny

Dabei seit
30.09.2015
Beiträge
46
Punkte Reaktionen
29
Btw, what is your toolchain for Teensy?
I am using cmake:
https://github.com/drichelson/teensy-cmake

And the upload via tyqt:
https://github.com/Koromix/tytools

And I programmed everything in CLion from JetBrains on Mac and Linux. But qtcreator, eclipse or normal commandline editors (vi, emacs) should also work. I never tested Windows though, and I did need to adjust a few paths a couple of times depending on the Arduino SDK versions, see for instance here:
https://github.com/daenny/Arduino-P...b/master/cmake/teensy-arm.toolchain.cmake#L33

When using the Arduino IDE, I think you would need to have all code in a single directory and you need rename the main.cpp to .ino, but I hate the Arduino IDE...
 
P

parasole

Dabei seit
24.03.2017
Beiträge
4
Punkte Reaktionen
0
Thanks Daenny, did not know about CLion, looks to be nice however quite expencive IDE.
I am using Eclipse based IDE, for my hobby porpose is more then enough :)
 
S

steinbock

Dabei seit
06.04.2012
Beiträge
358
Punkte Reaktionen
88
Ort
Tübingen
Details E-Antrieb
elfkw HR mit CST + Forumscontroller + VESC 6.41
Eine Aufteilung des ForumsControllers in Motor- und Display-Controller wäre in der Tat fein.
Das würde den Kabelsalat am Fahrrad reduzieren. Bremsschalter, Display, Speedsensor und Taster wären am Lenker angeschlossen. Zum ForumsController gehen dann nur noch vier dünne Kabel: Plus, Masse und zwei Kommunikationsleitungen.

Die Frage ist, welche Form der Kommunikation man für die Datenübertragung nimmt. Sicher vor Störungen sind nur differenzielle Übertragungen wie RS485 oder CAN. Auf hackaday.com gab es einen schönen Artikel wie man einen I2C-Bus um differentielle Übertragung erweitert:
http://hackaday.com/2017/03/31/an-introduction-to-differential-i²c/
(in den verlinkten Artikeln sind auch I2C Grundlagen wie "clock strechting" erklärt, lohnt sich zu lesen)

Die schönste Lösung wäre ein CAN-Bus, dieser bringt Fehlerbehandlung und Absicherung der Datenübertragung von Haus aus mit. Fast jedes moderne Kfz setzt das ein. Oder die Bosch eBikes ;)
Offene Motorcontroller wie der VESC bieten auch CAN. Ich habe mir jetzt ein 300 Seiten starkes CAN-Grundlagenbuch besorgt. Ist wohl was für die Badewanne...

Weiterer Vorteil von CAN: Man könnte später einfach ein Datenlogger-Modul für den Forumscontroller bauen und das später am PC auswerten. Beim VESC-Controller gibt es sogar ein "VideoOverlay"-Logger:
http://vedder.se/2014/11/open-source-esc-video-logging-on-electric-longboard/

Für den Start des Projekts ist es jedoch einfacher auf das bestehende serielle Protokoll für die Kingmeter/BMS Displays aufzubauen.
 
D

daenny

Dabei seit
30.09.2015
Beiträge
46
Punkte Reaktionen
29
Das würde den Kabelsalat am Fahrrad reduzieren. Bremsschalter, Display, Speedsensor und Taster wären am Lenker angeschlossen. Zum ForumsController gehen dann nur noch vier dünne Kabel: Plus, Masse und zwei Kommunikationsleitungen.
Ich hatte mir so etwas auch mal überlegt, aber dann einfachhaltshalber alles auf einem Teensy gemacht. Die Frage ist dann, wo kommen PAS und Speedsensor hin? Ich finde vom "Kabelsalat" her macht es in den meisten eBikes Sinn, die direkt am Controller zu haben, da der meistens in Hinterrad- bzw Tretlager-nähe ist. Implementationsmäßig macht das eventuell auch Sinn, sodass der Display Controller quasi nur ein "extra" wäre. Minimalistisch braucht man nur PAS und Speed um das e-bike legal zu haben, Throttle, Display und Taster sind dann eher "comfort". Bremsen cut-off ist das einzige was je nach Motor eventuell kritisch sein könnte.
Mit den verschiedenen Kommunikationsmöglichkeiten kenne ich mich gar nicht aus. Ein serielles Protokoll sollte für die meisten Fälle ausreichen oder nicht?
 
S

steinbock

Dabei seit
06.04.2012
Beiträge
358
Punkte Reaktionen
88
Ort
Tübingen
Details E-Antrieb
elfkw HR mit CST + Forumscontroller + VESC 6.41
Mit den verschiedenen Kommunikationsmöglichkeiten kenne ich mich gar nicht aus. Ein serielles Protokoll sollte für die meisten Fälle ausreichen oder nicht?
in dem hackaday Link ist gut erklärt, warum ein differentielles Übertragungssignal deutlich besser ist.
Siehe die Grafik im Kapitel "What’s so Schnazzy about Differential Signals?".

Speedsensor könnte man vorne oder hinten anschließen, PAS eher hinten am ForumsController.
Oder mit auf den Bus klemmen, dann würde man am PAS-Sensor nur einen kleinen Controller benötigen,
der auch das Bus-Signal spricht.
 
S

sMax

Nokia-Display-Gehäuse
Zum Nokia-Display:
Da ein Kollege gute Erfahrungen mit Shapeways (3D-Druck) gemacht hat, habe ich dort kurzerhand mal einen Gehäuseprototypen fürs Nokia-Display bestellt. 2 Taster, Kabelbinderbefestigung am Lenker.
Anhang anzeigen 21743Anhang anzeigen 21744

Hey Jenkie, wäre es möglich das CAD-Modell deines Nokia Gehäuses (evtl. als STEP-Datei) auch öffentlich zu machen? Ich wollte es noch leicht verändern und dann selber nochmal drucken. So könnte ich mir das Nachkonstruieren sparen :) Wäre super!
Gruß Max
 
J

jenkie

Dabei seit
28.06.2011
Beiträge
1.774
Punkte Reaktionen
430
Details E-Antrieb
elfkw HR + Forumscontroller
Ich schicke dir die Step-Datei. Wenn du Änderungen machst die auch andere spannend finden, stell sie mir bitte zur Verfügung :)
 
K

kaadesign

Hey Jenkie, wäre es möglich das CAD-Modell deines Nokia Gehäuses (evtl. als STEP-Datei) auch öffentlich zu machen? Ich wollte es noch leicht verändern und dann selber nochmal drucken. So könnte ich mir das Nachkonstruieren sparen :) Wäre super!
Gruß Max

Hab's an anderer Stelle schon erwähnt:
Falls Prototypen in rein Weiss Nylon gedruckt werden sollen, dann kann man gut bei "Meltwerk" drucken lassen. 20-40% günstiger bei gleicher Qualität.

Btw.:
Das Sinternylon wird von Shapeways als NICHT wasserdicht definiert. ( Dementsprechend bei Meltwerk das gleiche ). Müsste mit Lack od. dergleichen versiegelt werden.
 
J

jenkie

Dabei seit
28.06.2011
Beiträge
1.774
Punkte Reaktionen
430
Details E-Antrieb
elfkw HR + Forumscontroller
Meltwerk kannte ich noch nicht, probiere ich für die nächste Charge mal aus.
 
F

FlorianS

Dabei seit
07.02.2019
Beiträge
50
Punkte Reaktionen
2
Hat jemand aktuell ein Bafang Display am FC am laufen und kann Genaueres zur Pin Belegung sagen?
 
Thema:

ForumsController: Eine Display-Diskussion

Oben