Doel:€250.00
Donaties:€82.50

Per saldo:€-167.50

Steun ons nu!

Laatst bijgewerkt
op 18-05-2021
Algemeen

De stichting

Recente berichten

Modelspoorbaan Fleischmann door Thai-Bundesbahn
Vandaag om 02:54:44
Van Swarzach naar Swarzburg door Thai-Bundesbahn
Vandaag om 02:50:03
Harzwald Hafen Bahn door Thai-Bundesbahn
Vandaag om 02:46:39
Mijn eerste H0-modeltreinbaan in aanbouw door Thai-Bundesbahn
Vandaag om 02:44:26
hulp gevraagd omgeving simpelveld transfer op schrift door dennie
Vandaag om 02:31:47
Brawa 2021 door Rondje_HO
Vandaag om 01:05:02
LS Models / Models World 2021 door Rondje_HO
Vandaag om 01:01:46
Onlangs gespot - gefotografeerd, de foto's door Rondje_HO
Vandaag om 00:57:40
Strooisel, hoe kun je het vastlijmen? door Dwergsein
Vandaag om 00:27:37
NS 1600-1700-1800 infodraadje. door Sander.
15 juni 2021, 23:21:38
Nederlands station (Groningen) in model. Wie heeft interesse? door MOVisser
15 juni 2021, 23:12:07
Modeltrein Express Slps II, afval container draagwagens. VAM, Essent door Bahn-AG
15 juni 2021, 23:09:45
Anicubic advies nodig door MOVisser
15 juni 2021, 23:07:53
Frans loodsje et cetera door Noordernet
15 juni 2021, 23:00:59
Welk merk rails aanschaffen? HO. door Frank 123
15 juni 2021, 22:47:51
Fotodijkje van NS1220 door NS1220
15 juni 2021, 21:54:40
NS 1600-1700-1800 fotodraadje door Jeronimos
15 juni 2021, 21:51:53
Toon hier je nieuwe (model-) spooraanwinst(en)... door Paulus
15 juni 2021, 21:42:50
De bouw van mijn modelbaan in Thailand door charp
15 juni 2021, 21:39:45
LTM-51 Garratt in messing, Spoor-0 door FritsT
15 juni 2021, 21:27:51
SGM; de laatste loodjes. Fotodraadje. door Sander.
15 juni 2021, 21:21:52
Roco sik toplicht en detaillering door Priegelman
15 juni 2021, 21:17:05
Ardennen-express 1139/1138 door de jaren heen door Eric v C
15 juni 2021, 21:11:47
Restauratie TEE-treinstel, verplaatsing naar NTM en sponsoren gezocht. door Bob R.
15 juni 2021, 21:08:30
"Litter Bin" voor Brits spoor en Britse modelspoorprojecten door Hans van de Burgt
15 juni 2021, 20:57:42
NS-stations krijgen nieuwe stem door zuylen
15 juni 2021, 20:56:18
Ontstaan van module/ diorama baan De Lagerweij door jaco1988
15 juni 2021, 20:50:56
Line-up foto's van modellen door Groefrail
15 juni 2021, 19:22:21
Update: baan in de tropen door Rolando
15 juni 2021, 19:14:43
Werkplaats - (Baanplan H0) door martijnhaman
15 juni 2021, 19:06:16
  

Auteur Topic: Mijn DCC accessoiredecoder, maar dan anders. Met MySQL, en ESP32.  (gelezen 1995 keer)

spock

  • Offline Offline
  • Berichten: 399
Het is weer lente en de nieuwe accessoire decoders van verschillende fabrikanten vliegen om je oren.
Ieder met hun eigen voor- en nadelen. Ik heb al eens eerder een servowisseldecoder gemaakt op basis van een Arduino Micro welke was interegelen met een andere arduino via de i2c bus. Leuk project maar je merkt de beperkingen van een Arduino Micro.
Ik heb een elektronica en it achtergrond, dus je wordt er dan nogal snel bijgehaald als er een probleem is op de club. Ik heb nu al aardig wat ervaringen met verschillende accessoire decoders, maar dan vaak als deze in storing staan. Dat is wel de beste manier om ze echt te leren kennen.
Wat mij nogal stoorde was het feit dat al die accessoire decoders losse eilandjes zijn. Vaak (letterlijk) zwarte doosje met weinig informatie over de status. Het gebruikersgemak viel ook nogal tegen, zonder handleiding kom je er niet uit. Je merkt dat het techniek is uit het verleden met de toenmalige beperkingen.

Stel: Je hebt niet 1 of 2 decoders maar 30, wat voor eisen zou ik dan stellen? Dat geeft namelijk een heel andere dynamiek dan 1 of 2 decoders.

Ik wilde als basis het volgende maken:
- Flexibele en modulaire DCC accessoire decoder
- Alle configuratie,functionaliteit en instellingen komen vanuit uit een centrale plek.
- De decoders halen tijdens het opstarten hun configuratie op (daardoor eenvoudig uit te wisselen bij storing).
- Nieuwe functie kunnen maken zonder de firmware te hoeven updaten.
- De in- en uitgang modules worden via i2c modules aangesloten op de processor.
- De processor heeft zelf geen ingang of uitgang aansluitingen.
- Zo min mogelijk nog onder de baan komen voor updates
- functionaliteit en stabiliteit hebben meer prioriteit dan prijs

Als volgende was de pragmatisch invulling:
- De centrale plek wordt een MySQL database
- De processor is een ESP32 geworden. Dit is een soort Arduino op steroiden met Wifi functionaliteit.
- Er is  een oledscherm aamwezig waar relevate (fout)informatie wordt getoond.
- Alle communicatie gaat via Wifi
- De wifi-instellingen kunnen ingesteld worden met een smartphone.
- Er mogen meerdere uitgangsmodules aangesloten worden. Deze worden automatisch gedetecteerd tijdens opstarten.
- Er mogen meerdere ingangsmodules aangesloten worden. Deze worden automatisch gedetecteerd tijdens opstarten.
- Er is een statemachine gemaakt die zijn stappen dynamisch uit de database haalt. (dit voorkomt veel firmware updates)
- Update van de ESP32 geschied via OTA. (=via wifi, er hoeft geen usb of serieele kabel aangesloten worden)
- Alle decoders kunnen met het starten van 1 script worden geupdate naar een nieuwe firmwareversie.
- Na het opstarten meld de decoder zich aan bij de database en geeft zijn firmware versie door.
- De functies zijn te bedienen via een eenvoudige webinterface.
- Op dit moment is er PWM uitgang en servo functionaliteit.
- PWM heeft fading functionaliteit (nee, dit is geen typo)
- Servo heeft meerdere bewegingsmethodes(inclusief stuiteren en overschieten)
- voedingspanning van servo kan worden gemeten (en worden gemeld als deze te ver zakt)
- Maximaal 127 ingangen
- Aan een knopdruk kan een functie toegewezen worden. (bv: Rood sein van een NS-sein)

Ik ben echter wel verbaast over de kracht van de ESP32. Ik weet bv niet wat het maximale aantal uitgangen is. Dit komt omdat alles zo flexibel is dat daar op dit moment weinig over te vertellen is.
Er zijn op dit moment 2 limieten.
1) Het beschikbare geheugen. Dat is met een paar eenvoudige functies van 31 naar 33% gestegen.   
2) Roundtrip tijd moet minder dan 20ms zijn. 20ms is 20000us. De roundtrip tijd is nu 90us.

Aangezien er nog geen frontend is, maakt ik de machinestates van de statemachine in Excel en klop ze dan over in de database. Lijkt omslachtig, maar toch is deze methode sneller dan programmeren in C.

Op dit moment werkt het bovenstaande softwarematig. Nog te verbeteren: Eenvoud van afregelen.
De volgende stap is het ontwikkelen van pcb's voor de decoder en verschillende uitgangsprinten.

Dit is mijn grootste embedded project geworden met vele nieuwe uitdagingen.
Het heeft meer tijd gekost dan aanvankelijk gedacht, maar ja, ik ben ook een amateurprogrammeur.

mvg spock
« Laatst bewerkt op: 22 april 2021, 19:17:46 door Bert van Gelder »

Duikeend

  • Offline Offline
  • Berichten: 1053
Re: Mijn DCC accessoiredecoder, maar dan anders
« Reactie #1 Gepost op: 13 april 2021, 21:11:38 »
klinkt erg interessant (y) helaas ontbreekt me momenteel de tijd en kennis om hier een goede bijdrage aan te kunnen leveren dan wel zelf zo iets te maken.
zelf  heb ik dit soort dingen al eens eerder geknutseld met behulp van esp8266 en gebruikte dan een online database.
er draaide dan een webserver op de esp en daar kon je dan ook de configuratie in aanpassen. heet meen ik espeasy.
werkte hetzelfde maar was wel wat minder robuust :)
maar wat jij voorstelt klinkt erg leuk en ik hoop dat je het project ook met ons wil delen  ;D

ik mis trouwens in je verhaal nog de link met baan controle software zoals itrain, koploper of andere. is dat bewust gedaan?

en je hebt het over de machinestate. wat bedoel je daar precies mee? is dat wat je in de betreffende esp schiet of de terugkoppeling.
« Laatst bewerkt op: 13 april 2021, 21:14:38 door Duikeend. Reden: aanvulling tekst »
Huidige projectje: mijn knutsels, 1500 in parts en een
hondekop

meino

  • Offline Offline
  • Berichten: 1169
Re: Mijn DCC accessoiredecoder, maar dan anders
« Reactie #2 Gepost op: 13 april 2021, 21:32:25 »
Dit interesseert mij ook wel. Alhoewel ik zelf eigenlijk reeds voorzien ben.
Maar kun je wat schema's maken. Want veel is mij nog onduidelijk, Een centrale MySql database, waar draait die op? De ESP's zijn dat de decoders (output modulen)? Of is de ESP het centrale systeem? en wat zijn dan de output- en inputsystemen bijv.

Groet Meino
A clean desk is a sign of an empty mind

Kranenberg
De CanBus komt naar Kranenberg

spock

  • Offline Offline
  • Berichten: 399
Re: Mijn DCC accessoiredecoder, maar dan anders
« Reactie #3 Gepost op: 13 april 2021, 21:57:27 »
Ik kan me voorstellen dat machinestate niets betekend.

De informatie is gelaagd opgebouwd.

In vereenvoudigde vorm:

1) Machine
2) Dienst
3) Recepten (machinestates)
4)   ---- State machine ----
4) Taken

Machine. Dat is een object wat je wilt aansturen (led, servo,sein). Hier wordt de koppeling naar DDC adres(sen) en dienst bepaald

Dienst. Definitie van een dienst en het aantal modes. Een dienst kan zijn: Aan/Uit, Knipper fading, Wissel met Servo, Wissel puls etc
Het aantal modes vor Aan Uit is 2 en bv voor NS sein is het 8.

Recepten. Voor elke modes moet er een recept aangemaakt worden. Dit recept wordt door de state machine afgehandeld.

State machine. Deze handeld de recepten af en stuurt commando's door naar de taken.

Taken: Dit zijn de basale aanstuurfuncties voor de hardware. Dit staat in de firmware, niet in de database. Dit zijn functies als dim een uitgang tot een bepaalde waarde in een bepaalde tijd. Dit loopt dan seperaat van de statemachine. Een soort minion, set and forget.


Ik heb geen besturingsprogramma benoemd omdat daar niet de uitdaging/beperking ligt. Het is een accessoire decoder die aan te sturen is via DCC. Daar kunnen alle programma's prima mee overweg. Over overweg gesproken, die dienst heb ik nog niet gemaakt ;).

mvg spock

spock

  • Offline Offline
  • Berichten: 399
Re: Mijn DCC accessoiredecoder, maar dan anders
« Reactie #4 Gepost op: 13 april 2021, 22:14:25 »
Een MySQL database kan op veel verschillende platformen draaien. Windows, Mac, Linux. Mijn MySQL database draait op een RasPi3. Of je doet effe gek en huurt een MySQL server in de cloud  :P.

Met de decoder bedoel ik de ESP32 (de hersenen).

De uitgangsmodules zijn PCA9685. Dit zijn 16 poorts PWM uitgangen met i2c bus. Dit zijn leuke ic's met interessante mogelijkheden.

mvg spock

meino

  • Offline Offline
  • Berichten: 1169
Re: Mijn DCC accessoiredecoder, maar dan anders
« Reactie #5 Gepost op: 14 april 2021, 00:09:00 »
Dag

Ik proef OO (Object Oriented). Misschien handig om wat schema's te produceren. Ik weet niet of je UML kent, maar een Class diagram en een vorm van een Activity diagram (Sequence diagram, state diagram etc) zou voor mij veel verduidelijken.

Groet Meino
A clean desk is a sign of an empty mind

Kranenberg
De CanBus komt naar Kranenberg

bask185

  • Offline Offline
  • Berichten: 1471
Re: Mijn DCC accessoiredecoder, maar dan anders
« Reactie #6 Gepost op: 14 april 2021, 10:29:32 »
Citaat
Aangezien er nog geen frontend is, maakt ik de machinestates van de statemachine in Excel en klop ze dan over in de database. Lijkt omslachtig, maar toch is deze methode sneller dan programmeren in C.
Omdat ik ooit te veel vrije tijd heb besteed aan mijn eigen software tooling heb ik 'per ongeluk' iets handigs gemaakt waar je misschien iets aan heeft. Om een arduino project op te zetten laat ik een python script een project folder aanmaken. Ik kan dan handmatig modules uitkiezen die ik dan mee kopieer en er wordt een compileerbaar project gegenereed voor je.

Een van de dingen waarmee het begonnen is, is mijn state-machine generator. Ik heb een scriptje gemaakt wat een bollendiagram om kan zetten naar een kale state-machine die je dan alleen een beetje invulling hoeft te geven.

In een simpel programma genaamd: yEd graph editor kan ik dan een bollendiagram maken.


En met script kan je er dit van maken in een paar secondes:



Het werkt nu nog met macro's maar die wil ik gaan vervangen door een meer generieke class.

Het idee is dus dat je alleen dingen hoeft in te vullen bijvoorbeeld
stateFunction( stateZ )
{
    entryState
    {
        Serial.println("entering state Z");
        someTimeT = 50 ;        // telt af naar 0
    }
    onState
    {
       
        if( !someTimeT) exitFlag = true;
    }
    exitState
    {
        Serial.println(F("time expired"));
        return true;
    }
}


// STATE MACHINE
extern bool demo()  // dit komt 1 op 1 over met het bollen diagram
{
    STATE_MACHINE_BEGIN

    State(stateX) {
        nextState( stateY, 0 ); } // je kan die 0 aanpassen om een vertraging te creeren, vollegdig optioneel

    State(stateY) {
        if( customVar == ERROR) nextState( stateZ, 0 );     // je kan hier een selectie naar welke state je wilt springen..
        else                    nextState( stateZ, 0 ); }   //  waarom en wanneer

    State(stateZ) {
        nextState( stateX, 0 ); }

    STATE_MACHINE_END
}
De functie 'demo()' roep je dan aan vanuit void loop of vanuit je eigen functies en de state machine doet dan zijn ding. Misschien dat je er iets aan heb, misschien ook niet  :P. Meer info en de scripts staan op m'n github pagina .

Dan zit er per ongeluk nog iets in waar je misschien wat aan heb. Die scripts genereren ook je IO files, waarom is dit belangrijk? Je hebt hebt het over I2C extenders met max 127 inputs. Als dit nu per toeval MCP23017 chips zijn, dan is het belangrijk. Mijn generateIO.py script genereert ook een tweetal functies genaamd mcpWrite() en mcpRead().

Ze doen hetzelfde als digitalWrite() en digitalRead() alleen dan voor al je Mcp23017 chips. Je vult dus een nummer in van 0-127 en de functies berekenen dan voor je, wat het adres is (de adressen moeten dan wel oplopend zijn, dus de eerste heeft 0x20 en de laatste heeft 0x27), ze berekenen welke port het betreft en welke pin er geset, gecleared of uitgelezen dient te worden. Ik heb de write functie zo gemaakt, dat je 1 pin tegelijk kan zetten, zonder de andere pinnen te beinvloeden.

Ik ben niet echt bekend met MySQL, maar het klinkt interessant. Een collega van me doet er wel eens dingen mee en ik ben er toch er wel van onder de indruk.
Ik heb nog wel 2 opmerkingen of eigenlijk ideeen waar je ook misschien iets aan heb. Als elke decoder WiFi heeft, wil je dan niet het aansturen en uitlezen van de decoders ook doen via WiFi? Dan maak je bijvoorbeeld een brug tussen WiFi en DCC en/of Loconet of Xpressnet. Dan hoef je geen DCC of Xpressnet/Loconet te bekabelen naar je accesoires. Alleen 12/18V, alle informatie van DCC artikelen en of terugmelders kan je dan via wifi naar je centrale node sturen die dan aan men's centrale is bekabeld. Het is slechts een idee natuurlijk, ik snap als je ontwerp al zover is dat dit out of the equation is.

Waar ik zelf ook wel een aan dacht is om een Wifi dongle te maken met ESP chip. De dongle kan je op een accesoiry prikken en dan kan je hem via Wifi configureren. Een ESP32 is een prima ding, maar je kan het als 'overkill' beschouwen gezien de simpele taken van het eind product. Voor de prijs maakt het natuurlijk niet zoveel uit, dus dan kan je natuurlijk net zo goed alsnog een esp op elke decoder zetten. Why not right?

Ik moet voor mijn elektronica project ook nog het een en ander aan printen maken met MCP23017 en met apparatuur om bijvoorbeeld magneet wissels te schakelen. Misschien dat er iets te combineren valt?

Mvg,

Bas


Hennik

  • Offline Offline
  • Berichten: 153
Re: Mijn DCC accessoiredecoder, maar dan anders
« Reactie #7 Gepost op: 14 april 2021, 14:24:08 »
Als elke decoder WiFi heeft, wil je dan niet het aansturen en uitlezen van de decoders ook doen via WiFi? Dan maak je bijvoorbeeld een brug tussen WiFi en DCC en/of Loconet of Xpressnet. Dan hoef je geen DCC of Xpressnet/Loconet te bekabelen naar je accesoires.

Als je zo begint, dan is dit denk ik ook zeer interessant: https://www.youtube.com/watch?v=e6NgUr4GQrk
Het gaat over modelbaanbesturing (sensors/throttles/panels) via het Internet Of Things (IoT)
De hier gelinkte video is een eerste uit de reeks. Inmiddels lijkt het me al een behoorlijk uitgebreid gedocumenteerd Doe Het Zelf project.

spock

  • Offline Offline
  • Berichten: 399
Re: Mijn DCC accessoiredecoder, maar dan anders
« Reactie #8 Gepost op: 14 april 2021, 22:35:38 »
Hallo Meino,

Het zijn inderdaad een stel C++ classes. Zoals al eerder genoemd ben ik een amateurprogrammeur (met een voorkeur voor C) en dit is het eerste echt serieuze sprong in C++. Leren terwijl je het doet, met het bijbehorende vallen en opstaan.
Ik heb nooit wat gedaan met UML en bijbehorende methodes, dus daar kan ik weinig in betekenen.

mvg spock

spock

  • Offline Offline
  • Berichten: 399
Re: Mijn DCC accessoiredecoder, maar dan anders
« Reactie #9 Gepost op: 14 april 2021, 23:32:16 »
Hallo Bas,

Bedankt voor je reactie. Probeer ze even stuk voor stuk af te lopen.

- Automatisch genereren van code. Van dit stukje zal ik niet gebruik maken omdat het afbreuk doet aan het basisprincipe van het ontwerp. Met het automatisch genereren gaat het weer richting los staande kastjes. Ik wil alle functionaliteit die in een dienst zit (dienst en recepten) uit de database halen. Dat werkt nu. En ik ben daar best trots op dat het nu werkt zoals het werkt.

- Input modules. Dat zijn inderdaad Mcp23017 modules. Bedankt voor het aanbod, echter de code voor het opvragen is al afgerond. Natuurlijk staat in een database tabel welke mode hij moet aanvragen bij indrukken of loslaten.

Ik heb nog wel 2 opmerkingen of eigenlijk ideeen waar je ook misschien iets aan heb. Als elke decoder WiFi heeft, wil je dan niet het aansturen en uitlezen van de decoders ook doen via WiFi? Dan maak je bijvoorbeeld een brug tussen WiFi en DCC en/of Loconet of Xpressnet. Dan hoef je geen DCC of Xpressnet/Loconet te bekabelen naar je accesoires. Alleen 12/18V, alle informatie van DCC artikelen en of terugmelders kan je dan via wifi naar je centrale node sturen die dan aan men's centrale is bekabeld. Het is slechts een idee natuurlijk, ik snap als je ontwerp al zover is dat dit out of the equation is.

Dat is misschien wel een optie. Maar ik kan me tijd maar 1 keer spenderen. Ik wil eigenlijk als eerste de hardware definitief  maken en PCB's maken (PCB's). De functionaliteit van input en output is strikt gescheiden, dat maakt het dan ook eenvoudig om er een extra inputfunctionaliteit bij te maken. Er zijn al 3 soorten input's: DCC, webinterface en de inputknoppen, dus een 4e is ook geen probleem. Het ontwerp is niet de beperking, die is modulair en gelaagd opgebouwd. Ik weet echter nog niet hoe stabiel Wifi is bij continue gebruik icm ESP32 in vergelijking met DCC. Laten we het maar op houden dat Rome ook niet in 1 dag gebouwd is  :) .

Laten we een keer overleggen of we samen wat hardware kunnen maken (ik denk eraan om wat met KiCad te proberen)

mvg spock

PS: zit jij bij de BMB groep van Leen?

meino

  • Offline Offline
  • Berichten: 1169
Re: Mijn DCC accessoiredecoder, maar dan anders
« Reactie #10 Gepost op: 14 april 2021, 23:52:56 »
Het zijn inderdaad een stel C++ classes. Zoals al eerder genoemd ben ik een amateurprogrammeur (met een voorkeur voor C) en dit is het eerste echt serieuze sprong in C++. Leren terwijl je het doet, met het bijbehorende vallen en opstaan.
Ik heb nooit wat gedaan met UML en bijbehorende methodes, dus daar kan ik weinig in betekenen.

Dat geeft niet, maar het zou prettig geweest zijn. Niet dat ik zelf veel gebruik maak van UML, meestal na afloop voor documentatie doeleinden.
Overigens denk ik dat je dat amateur wel weg mag laten. Iemand die een MySql database optuigt en daar in een data schema definieert en de data koppelt aan de Klassen die op een ESP uitgerold zijn, is wat mij betreft dat stadium al voorbij. Overigens dit deel is ook precies waar ik de meeste interesse in heb. Misschien wat code voorbeelden?

Groet Meino
A clean desk is a sign of an empty mind

Kranenberg
De CanBus komt naar Kranenberg

bask185

  • Offline Offline
  • Berichten: 1471
Re: Mijn DCC accessoiredecoder, maar dan anders
« Reactie #11 Gepost op: 15 april 2021, 13:09:24 »
Citaat
Maar ik kan me tijd maar 1 keer spenderen.
Mijn enige spijt in het leven, ik kan er slechts zoveel in doen  ;D

Ik heb een vraag en ik hoop dat ik geen ramen insla er mee.
Je gebruikt het woord input maar je zegt ook DCC
Citaat
Input modules
DCC is output only. Ik begrijp dat je MCP23017 als output modules moeten fungeren om wissels te kunnen schakelen

Ik heb al het een ander bedacht over het aansturen van wissels. Daar worden meerdere manieren voor gebruikt:
- dubbele spoel die geen eindafschakelingen hebben
- dubbele spoel die wel eindafschakeling hebben
- motor aandrijving die met ompoling werkt. (volgens mij die conrad wisselaandrijvingen)
- servo motor


Ik dacht er aan om zelf een MCP23017 pcb te maken met 16 mosfets er op waarmee je door middel van pulsen dus 8 wissels kan schakelen.

Om de wissels met eindafschakeling wilde ik een PCB maken met 16 DPDT relais er op. Je kan dan met elke output een DPDT relais schakelen waarbij een van de 2 spoelen continu naar massa wordt getrokken. Je zou hier ook andere magneet artikelen kunnen schakelen zoals een ontkoppelaar ofzo.

En met een kleine variatie kan je hetzelfde doen maar dan met ompoling.

Voor servo's gebruiken we natuurlijk de PCA9685  (y).

Ik heb tot op heden deze versie

Dat rechter ding wordt dan mijn node en die andere 2 zijn mcp printen. Deze specifiek zijn bedoeld om direct leds maar ook schakelaars op aan te sluiten. Daarvoor hebben ze een 330 ohm sil weerstand.

Aanvullend wil ik dus voor mezelf ook versies maken met stroomdetectie voor terugmelding, een versie voor LDR terugmelding en de bovengenoemde mosfet en relais versies voor wissels en relais ed.

Ik heb ook ooit met idee gespeeld om een basis print te maken en aanvullende printen die je als shield er op kon prikken. Dat zou een beetje ruimte besparen maar het zou ook weer duurder worden.

keuzes keuzes keuzes...

Citaat
Laten we een keer overleggen of we samen wat hardware kunnen maken (ik denk eraan om wat met KiCad te proberen)
vind ik prima  (y). Heb je zelf al ideeen over de uitwerking?

Mvg,

Bas

spock

  • Offline Offline
  • Berichten: 399
Re: Mijn DCC accessoiredecoder, maar dan anders
« Reactie #12 Gepost op: 15 april 2021, 23:17:04 »
Hoi Bas,


Je gebruikt het woord input maar je zegt ook DCCDCC is output only. Ik begrijp dat je MCP23017 als output modules moeten fungeren om wissels te kunnen schakelen

DCC is uni-directioneel(even railcom buiten beschouwing). Bij een centrale is dan een DCC een output en voor een accessoiredecoder is DCC een input signaal.

Ik gebruik de MCP23017 alleen voor de knoppen ingangen. De uitgangen zijn allemaal de PCA9685 modules. Die zijn zo verdraaid handig, veelzijdig en spotgoedkoop dat ik me niet meer druk ga maken over MCP23017 als uitgang.

Ik ben vandaag bezig geweest met een onverwachte eigenschap van het ESP32 board, deze wil niet booten met 5 Volt voedingspanning (en via de USB).  Voor nood nu even een attiny ernaast gezet om het booten te regelen, maar dat had een ketting reactie tot gevolg. Atmel Studio updaten, AtmelIce updaten, Import van Arduino project crashed af, daarna een simpel Atmel Studio project aangemaakt. Eindelijk weer uitgevogeld hoe je de attiny maoest programmeren. Daarna de soldeerbout ter hand genomen om alles aan te sluiten en te modificeren. De TTGO boot nu correct maar de dag is weer voorbij.

Vwb die conrad-dingen. Ik heb er ergens nog 1 liggen, eens kijken of ik hem kan vinden. Er staat me nog iets van bij dat er een dc motor in zit die zichzelf mechanisch uitschakeld. Ik weet niet meer of je hem moet ompolen. Ik vond het intern allemaal fragiel.

Ik wil dit weekend er eens rustig over nadenken wat voor hardware eigenschappen ik wil. Ik kom er binnenkort op terug.
Bedank voor het geven van de verschillende opties.

mvg spock






bask185

  • Offline Offline
  • Berichten: 1471
Re: Mijn DCC accessoiredecoder, maar dan anders
« Reactie #13 Gepost op: 16 april 2021, 09:34:33 »
Citaat
Ik gebruik de MCP23017 alleen voor de knoppen ingangen.
Ah. dat was me niet duidelijk.

Wat ik me nu afvraag, waar gebruik je de knoppen precies voor? Als ik het goed snap, wil je ze gebruiken om direct wissels te schakelen (in schakelpaneel vorm) die aan dezelfde I2C bus liggen waarbij de processor voor je regelt welke wissel er bij welke knop geschakeld moet worden? En dat de je wissels dan ook nog eens met DCC kan aansturen?

Citaat
De uitgangen zijn allemaal de PCA9685 modules. Die zijn zo verdraaid handig, veelzijdig en spotgoedkoop...
Dat is zeker waar. Buiten servo's om, zou je ook nog dimbare ledjes kunnen maken en je kan de pinnen ook als een niet-pwm pin inzitten.

Ik neem aan je die breakout boards gebruikt met die 16 rood/geel/zwarte servo connectors? Die heb ik zelf ook, geweldige dingen. Ik zou zelf voor jouw toepassing voor deze dingen (en dit komt zojuist tijdens het tikken in me op) shields maken die je op deze connectors kan prikken. Of eigenlijk eerder een base waar je de pca in kan prikken daar de baseboard groter zal zijn in formaat. Dan kan je dit breakout board, wat is toegewijd aan servo motors, omtoveren tot een board voor relais/magneetwissels/ledstrips ofwel al het andere.

Je kan natuurlijk een PCB ontwerpen waar de pca chip los op zit, maar dan moet je SMD gaan solderen. Keuzes, Keuzes, Keuzes.

Ik weet niet wat de outputs aan mA's kunnen leveren maar je kan voor de grap eens proberen, of je zo'n relais direct kan aansturen:

Het is gewoon een 5V relais met een optocoupler of tor er tussen.

Als dat werkt dan kan je ook deze hele relaiskaart gebruiken om dus 16 magneet wissels aan te sturen (wel met eindafschakeling)


En met dupont kabels prik je hem zo aan de Pca waarbij je niet eens hoeft te solderen   ;D

Just my two sixteen cents  ;).

Mvg,

Bas

spock

  • Offline Offline
  • Berichten: 399
Re: Mijn DCC accessoiredecoder, maar dan anders
« Reactie #14 Gepost op: 21 april 2021, 21:57:15 »
Wat ik me nu afvraag, waar gebruik je de knoppen precies voor? Als ik het goed snap, wil je ze gebruiken om direct wissels te schakelen (in schakelpaneel vorm) die aan dezelfde I2C bus liggen waarbij de processor voor je regelt welke wissel er bij welke knop geschakeld moet worden? En dat de je wissels dan ook nog eens met DCC kan aansturen?

De decoder is primair een DCC accessoire decoder en kan uitgebreid worden met knoppen waarmee je een bepaalde mode kun aanvragen. Dit staat gedefinieerd in de database (dit begint een standaard zin te worden).
De mcp23017 zit opdezelfde bus als de PCA's. Aangezien de MCP wordt uitgelezen op interrupt basis en dat de i2c bus op 800kHz loopt is daar geen slangehals.

Ik neem aan je die breakout boards gebruikt met die 16 rood/geel/zwarte servo connectors? Die heb ik zelf ook, geweldige dingen. Ik zou zelf voor jouw toepassing voor deze dingen (en dit komt zojuist tijdens het tikken in me op) shields maken die je op deze connectors kan prikken. Of eigenlijk eerder een base waar je de pca in kan prikken daar de baseboard groter zal zijn in formaat. Dan kan je dit breakout board, wat is toegewijd aan servo motors, omtoveren tot een board voor relais/magneetwissels/ledstrips ofwel al het andere.
Je kan natuurlijk een PCB ontwerpen waar de pca chip los op zit, maar dan moet je SMD gaan solderen. Keuzes, Keuzes, Keuzes.
En met dupont kabels prik je hem zo aan de Pca waarbij je niet eens hoeft te solderen   ;D

Dat zijn inderdaad de keuzes waar ik nog geen ei over heb gelegd. (Ik heb echter een wantrouwen voor de 1x1 dupont connectors.Handig voor prototyping, maar voor definitief, dank je wel)

De getoonde relais en zijn aan te sturen met een PCA. Elektrisch gezien is een optocoupler gewoon een led. En die andere is een transistor die aangestuurd wordt via een 1k5 weerstand, ook geen probleem.
Enigste waar je op moet letten is dat je een positief aktief relais schild kiest. De PCA zet standaard zijn uitgangen laag als deze opstart.

mvg spock