UNIVERSELE REGELAAR

... waarmee andere componenten van het elektronische systeem
afgeregeld, bestuurd, nagekeken, ... kunnen worden

Dit regelkastje kent intussen al verschillende versies. De oudste versie had een erg eenvoudige tekst-display en bood niet zoveel mogelijkheden. Een tweede versie had een uitgebreidere tekst-display en gaf meer mogelijkheden om parameters op een handige manier te lezen en aan te passen. De derde (definitieve?) versie wordt voorzien van een grafisch kleurenscherm met touch-screen, geheugenkaartje om grotere hoeveelheden data te beheren, ...
Onnodig te vermelden dat latere versies ook intern best wat complexer werden...


DERDE VERSIE: GRAFISCH TOUCH-SCREEN

Met dit project ging ik in 2015 aan de slag. Het concept is veel complexer dan dat van de eerdere regelaars. De aanzet was de aanschaf van een 240x320 pixels grafisch kleuren-touch-screen waar ook nog eens een SD-kaartlezertje mee verbonden was. Door het touchscreen is het niet langer meer nodig om vele knopjes te voorzien: Eén draaiknop (rotary encoder) is voldoende om snel de één of andere numerieke waarde in te stellen, al de rest (menu's en submenu's kunnen via "knopjes" op het scherm bepaald worden. Enkel de noodknop is nog een "fysieke" knop.
Oplaadbaadbare batterijen zorgen er verder voor dat het toestel ook te gebruiken is om "losse" printjes aan te sluiten en deze in te stellen of te controleren, en er dus niet per sé een 5 Volt-voeding voorhanden hoeft te zijn.
Onnodig te zeggen dat opzoekwerk, ontwerp, bouw, programmeren, testen en ontstoren veel tijd vroeg, en bijlange niet probleemloos was ...

... en een eerste filmpje

... en een tweede filmpje

Intern vraagt het natuurlijk heel wat reken-power, en daarom koos ik ervoor om 4 relatief grote microcontrollers (AtMega644PA) samen te laten werken:

  1. Master: Coördineert de communicatie tussen de chips, en communiceert met het aangesloten project. Hij verzendt, ontvangt en vertaalt dus vooral boodschappen, delegeert, houdt zich bezig met de logica om de gebruiker vlot te kunnen laten werken en controleert of alle interne componenten hun werk goed doen.
  2. SD-Controller: Houdt zich bezig met alle data die moeten opgeslagen of gelezen worden van of naar het SD-kaartje. Dit kunnen bestanden zijn die nodig zijn voor de interne werking (programma-code, afbeeldingen, lettertypes, ...) en logboek-bestanden, maar ook instellingen die worden gebruikt door een extern toestel, of zelfs instellingen die de hele treinbaan (of domotica of ...) beïnvloeden. Deze bestanden kunnen door het gebruik van (meerdere) SD-kaartjes op een gewone PC voorbereid of gelezen worden
  3. G-LCD: Deze microcontroller stuurt gegevens naar het scherm, gaande van basiselementen (punten, lijnen, vlakken, tekst, ...) tot meer complexe figuren (afbeeldingen, prefab-knopjes, lijsten, ...) en krijgt dus vooral instructies en gegevens van de Master, om die te verwerken tot mooie en gebruiksvriendelijke gegevens op het scherm.
  4. Manusje: ... heeft deze naam niet zomaar: Hij interpreteert signalen van het touch-screen en van de draaiknop, doet wat andere "kleinigheidjes", én hij houdt zich bezig met het energiebeheer: Achtergrondverlichting van het scherm aansturen (en dimmen bij batterijvoeding), de status van de batterij nagaan en deze opladen, deze en andere gegevens uitwisselen met de Master, ...

De mogelijkheden van dit toestel:

  • Met verschillende soorten externe toestellen communiceren om deze te configureren, aan te sturen, hun werking na te gaan, ...
  • Interne controle en afregeling op diverse manieren
  • Grote hoeveelheden data bijhouden (logboek) of versturen naar externe toestellen, data is te beheren op een extern computersysteem
  • Autonome werking dankzij oplaadbare batterijen en standaard oplader
  • Gebruiksvriendelijke omgeving en snelle navigatie tussen vele menu-mogelijkheden

De beperkingen (en de redenen om een stapje verder te gaan)

  • Geen idee ... laat ik maar al eerst proberen of ik dit ding wel gebouwd en werkend krijg ...
     

TWEEDE VERSIE: GROOT TEKST-DISPLAY

Blijkbaar had ik nog een tussenin-prototype - getuige het toestelletje onderaan de eerste foto hierboven. Zelfde soort display, maar wat meer knopjes en ook wat leds om een status aan te geven. Dit was duidelijk een experiment onderweg naar een toestel dat niet alleen helpt bij het afregelen van bvb servo's, maar ook een hulpje kon zijn bij het controleren van data - nuttig tijdens foutopsporingen bij het programmeerwerk met microcontrollers.
Het leidde in elk geval tot een "echt" tweede toestel, Ditmaal met een display van 4x20 karakters, 4 knopjes waarvan de functie op het scherm (onderste lijn) werd aangeduid, 4 knopjes-met-led die de "modus" van het toestel weergeven (zelftest, regelen toestel, data tonen en "nog iets") De twee laatste modi werden in de praktijk nauwelijks geïmplementeerd vanuit de aangesloten toestellen, en de eerste werd eigenlijk alleen gebruikt tijdens de ontwikkeling van het toestel.
Een nieuwe uitdaging was het gebruik van zogeheten "rotary encoders" - een héél handige manier om in te stellen waarden snel en/of precies aan te passen. Een laatste soort knop was de noodknop - die wordt doorgelust naar andere noodknoppen en wordt beheerd door de noodcentrale

De mogelijkheden van dit toestel:

  • Uiteraard die van het eerste:
    • In en uit menu's navigeren
    • Data lezen, veranderen en opslaan
    • Automatische herkenning van het aangesloten toestel
  • Snellere navigatie en waarden vlot in te stellen door de draaiknoppen
  • een rij knopjes waarvan de functie instelbaar is, en op het display te zien is
  • Meer informatie in beeld door het grotere display
  • Meer uitgebreide zelf-test en snel kunnen omschakelen tussen diverse modi
  • Zwaardere microcontroller (AtMega1284P), en dus een meer mogelijkheden
  • Ingebouwde noodknop - om tijdens configuratie snel te kunnen onderbreken of terug opstarten

De beperkingen (en de redenen om een stapje verder te gaan)

  • Menu's niet voldoende intuïtief
  • Veel knopjes - die dus mechanisch kunnen haperen
  • Steeds een externe voeding nodig

EERSTE VERSIE: KLEIN TEKST-DISPLAY

Dit toestelletje was als eerste stap in het gebruik van een dot-matrix display zeker interessant, en het heeft me geholpen om het afregelen van de sturing van servomotoren voor wissels te leren opzetten en gebruiken. Ook het aanmaken van een matrix voor drukknopjes en die gebruiken om binnen menu's te navigeren en om waarden in te stellen was een uitdaging die ik met dit toestelletje heb gehaald.
Met dit kastje kon ik niettemin via RS232 met een aangesloten toestel communiceren, data op het scherm tonen, ... maar het was vooral een zelfstudie-object. De derde foto toont duidelijk dat dit een prototype was: Heel wat bedrading werd in de loop van de ontwikkeling herlegd ...

De mogelijkheden van dit toestel:

  • In en uit menu's navigeren
  • Data lezen, veranderen en opslaan
  • Automatische herkenning van het aangesloten toestel

De beperkingen (en de redenen om een stapje verder te gaan)

  • Klein tekstveld (2 rijen van 16 karakters)
  • Veel knopjes - dus mechanisch wat moeilijk om te maken - en F2 / F3 werden in de praktijk nooit gebruikt
  • Kleine microcontroller - een AtMega16 (met 16Kb Flash) was toch wat magertjes om veel intelligentie in te bouwen

©2015 Gerolf Peeters - aangepast op 04.06.2015 Zie ook: overzicht