Doel:€250.00
Donaties:€50.00

Per saldo:€-200.00

Steun ons nu!

Laatst bijgewerkt
op 03-01-2024

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

De (3d) knutsels van Ronald. door MaraNCS
Vandaag om 12:26:42
Doornvliet door raymond erdtsieck
Vandaag om 12:23:03
U-vorm beperkte ruimte (H0 C-rails) door eitreb
Vandaag om 12:06:06
Piko NS 2015 stroomafname probleem door meino
Vandaag om 12:03:59
Leids spoor (voorheen Blauwpoortsbrug) door gdh
Vandaag om 11:55:50
7 april De Karel on tour door NL-modelspoor
Vandaag om 11:51:04
NS Tals wagons (kalktrein) door Arjan6511
Vandaag om 11:41:59
Punt- en hartstukken door Klaas Zondervan
Vandaag om 11:41:44
Ombouw/Pimpen Bolle neuzen door bollen neus
Vandaag om 11:19:47
Beekdaelen in H0 door VulcanRaven
Vandaag om 11:00:45
Stroomdetectie bij goederenwagens door henk
Vandaag om 10:32:03
MARDEC, de Multifunctionele ARduino dcc DECoder. door NTeering
Vandaag om 10:23:47
welk jaar ging Marklin OVP voor wagons van blauw naar wit door Railman
Vandaag om 10:06:39
nieuw te leggen sporen passend maken door Jelmer
Vandaag om 10:05:07
MSV Post B, even voorstellen... door Rsd1000
Vandaag om 10:01:44
30 maart Modelspoorbeurs Houten & HCC Kennisdag door Jelmer
Vandaag om 09:52:49
FFA koelwagen door martijnhaman
Vandaag om 09:46:10
Mijn eerste H0-modeltreinbaan in aanbouw door DJV
Vandaag om 09:42:59
US diorama in H0 door Wim Vink
Vandaag om 09:24:22
Zoekfunctie ? door henk
Vandaag om 09:18:44
Bouw van materieel 40 treinstellen door Pauldg
Vandaag om 07:52:09
NS 8400 van Werps door MathynK
Vandaag om 07:05:15
Onlangs gespot - gefotografeerd, de foto's door GerardvV
28 maart 2024, 23:37:18
Al mijn goede ideeën... door bask185
28 maart 2024, 23:12:12
Gebruik je Arduino zonder te "programmeren" ;) door bask185
28 maart 2024, 22:51:58
21 april Het stoomgenootschap door bloemenvelden door Seinhuis
28 maart 2024, 22:46:29
Raadplaatje door Magic
28 maart 2024, 22:23:21
LokSound 4 decoders, files verbeteren (voor Roco b.v. TEE RAm, NS2400, etc) door Biesje
28 maart 2024, 22:06:44
Geluid NS Mat'46 vs NS Mat'54 door Rob Bennis
28 maart 2024, 21:54:12
Engelse wagon uit 1930 opgegraven in Antwerpen door willem2
28 maart 2024, 21:52:45
  

Auteur Topic: Arduino LocoNet OPC_GPON & OPC_GPOFF Master Switch  (gelezen 3357 keer)

Curious T!mo

  • Offline Offline
  • Berichten: 26
Arduino LocoNet OPC_GPON & OPC_GPOFF Master Switch
« Gepost op: 01 januari 2016, 12:32:59 »
Hallo Allemaal,

Ik heb een Intellibox Classic die prima werkt. Wat me altijd heeft tegengevallen aan de IB is het gammele gevoel van de druktoetsen.
Heb het gevoel dat kapotte druktoetsen op den duur ook de reden zullen zijn dat de IB aan vervanging toe is. Dus ik probeer er zo zuinig mogelijk mee te zijn.

Op zich rijd ik veelal met RocRail en raak de IB bijna niet aan. De toetsen die ik het meeste gebruik zijn die van de baanspanning. Rood en Groen rechts boven, onder het logo.

Het kastje wat ik in die topic voorstel is hieruit voortgekomen:
- Ik vond het kasje bij toeval in een kringloopwinkel
- Ik wil de toetsen op de IB zoveel mogelijk sparen
- De IB staat vaak aan de andere kant van de tafel als ik deze toetsen nodig heb. Dit kastje kan ik verplaatsen zolang de kabel maar lang genoeg is.


Dit is het kastje zoals ik hem vond bij de kringloopwinkel


Ik gebruik ditmaal LocoNet volgens de GCA standaard die Peter Giling voor Modelspoor Groep Venlo heeft ontworpen.


De Arduino Pro Mini is dan ook verbonden met LocoNet volgens het schema van zijn CGA50.


2 Ledjes toegevoegd.


En klaar om een stukje software te schrijven en programmeren.


Arduino zit vastgeklemd, maar wat hot-melt voor de zekerheid.


En het eindresultaat.

<a href="https://www.youtube.com/v/MSf_h1CQlCY" target="_blank" class="new_win">https://www.youtube.com/v/MSf_h1CQlCY</a>
Filmpje is altijd leuk natuurlijk.

Ik heb een kant en klaar kastje gebruikt met 2 knoppen, maar dit kan natuurlijk ook met knoppen die je ergens inbouwt.

Code staat op mijn Github

Groeten,

Timo

Curious T!mo

  • Offline Offline
  • Berichten: 26
Re: Arduino LocoNet OPC_GPON & OPC_GPOFF Master Switch
« Reactie #1 Gepost op: 01 januari 2016, 16:03:05 »
Heb een filmpje op youtube gezet waarin ik globaal uitleg wat de sketch of code doet.

<a href="https://www.youtube.com/v/F3nhEnnBl_w" target="_blank" class="new_win">https://www.youtube.com/v/F3nhEnnBl_w</a>

bleh

  • Offline Offline
  • Berichten: 26
  • Spoor N - DB - TP IV
Re: Arduino LocoNet OPC_GPON &amp; OPC_GPOFF Master Switch
« Reactie #2 Gepost op: 01 januari 2016, 17:24:38 »
Goed werk! Heb er zelf geen toepassing voor, maar ik kan zo'n creatieve oplossing wel waarderen.

Verstuurd vanaf mijn MotoG3 met Tapatalk

Met vriendelijke groet,

Christiaan

Fritsprt

  • Offline Offline
  • Berichten: 2617
Re: Arduino LocoNet OPC_GPON & OPC_GPOFF Master Switch
« Reactie #3 Gepost op: 01 januari 2016, 21:59:55 »
Hallo Timo,

Prachtige combinatie van zowel techniek als creativiteit en mijn complimenten voor je zeer duidelijke uitleg. Ik zag ook je andere draadje over Arduino en Loconet en heb mij gelijk op beide geabonneerd. Ik zie dat je pas vier reacties hier hebt geplaatst maar wat mij betreft komen er nog velen.  (y) (y) (y)

gr. Frits

p.s. Er is nog een Timo op het forum en die is ook erg goed in o.a. Arduino. Zal wel in de naam zitten  ;D
Groet Frits

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Arduino LocoNet OPC_GPON & OPC_GPOFF Master Switch
« Reactie #4 Gepost op: 02 januari 2016, 23:08:56 »
Hoi Timo (wat raar om met je eigen naam te beginnen  ::))

Ik ben de andere Timo die Frits noemde. Erg leuk project! Zeker omdat kastjes als die je in de kringloop hebt gevonden in China best te vinden zijn  ;D

Ook complimenten voor het gebruik van een Pro Mini, GitHub en comments! Hier gaat het nog wel eens mis mee.

Maar zoals altijd even de code doorgekeken en toch een kritische blik erover. Vat dit niet persoonlijk op, je hetb is super leuks gemaakt. Maar alleen als andere commentaar leveren kunnen we samen iets verbeteren  ;)

Allereerste gebruik je een library voor de LocoNet. Niets mis mee. Maar je vermeld nergens waar je de library kunt vinden. Zeker als deze niet meegeleverd wordt op je GitHub page zou het handig zijn deze in de readme en in de sketch te vermelden. Zeker omdat de library de (onhandig) generieke naam LocoNet heeft... (Generieke namen worden afgeraden... De naam die je zelf dus aan het project gegeven hebt is dus ook niet echt bijster duidelijk. Ah, wacht. Het project had niet zoals ik had verwacht zijn eigen Git gekregen maar is onderdeel van meer.)

De defines voor de buttons en ledjes kan je beter vervangen door const byte. Het gebruik van define voor pin definities wordt door Arduino (en volgens mij avr-gcc ook) afgeraden. Zolang de pre-compiler er niets mee moet is het niet nodig define te gebruiken.

Vervolgens definieer je een aantal variabele voor een state. Waarom gebruik je hier dan een int voor? Ook hier had een bool prima voldaan ;)

Vervolgens heb je de welbekende millis() bug in je code geschreven door longs te gebruiken ipv unsigned long. Zoals overal vermeld is dat wel een werkelijk belangrijk verschil ;)

En waarom doe je helemaal de moeite om de button state als global op te slaan en gebruik je hem alleen na
if (readingRed != lastButtonStateRed) {
Op deze manier (ook te zien in je filmpje) reageert de knop pas als je deze weer los hebt gelaten. Zelf ben ik enorm voorstander om voor zoiets wat je vaak gebruikt maar best een zooitje kan worden door de wirwar aan variabele enzo om gebruik te maken van een library.

Ik heb een fork gemaakt en zal je zo een pull request geven met alle genoemde punten :)

Nogmaals, het is geen slecht bedoelde kritiek! Alleen met commentaar van anderen kunnen we een programma verbeteren.


Timo
Verzonden vanaf mijn desktop met Firefox

Curious T!mo

  • Offline Offline
  • Berichten: 26
Re: Arduino LocoNet OPC_GPON & OPC_GPOFF Master Switch
« Reactie #5 Gepost op: 03 januari 2016, 13:48:47 »
Hallo Timo (inderdaad lolz),

Bedankt voor de fork en pull. heb net even ge-upload en getest en werkt super  (y).

De code is vooral gebaseerd op andere stukjes code die ik her en der vandaan heb. Daarom is het niet altijd helemaal logisch opgebouwd. Een echte programmeur zal het vaak in minder code doen en vooral minder geheugen gebruiken.

Alleen ben ik geen programmeur. Ooit begonnen met PIC micro-controllers via http://www.picbasic.nl/ en toen de Arduino uitkwam ben ik overgestapt en nooit meer omgekeken. Dus het is voor mij een hobby. Heb het zelf uit moeten vinden en moeten leren mbv een hele hoop google en trial en error.

Dat is dus ook de reden voor het gebruik van if (readingRed != lastButtonStateRed) {.
Is gewoon geknipt en geplakt uit de debounce example van Arduino.

Verder is de code geschreven in begin 2015. Heb pas onlangs de github gevuld. Tegenwoordig let ik beter op met variabele. Het formaat van een integer kan per soort microprocessor nog wel eens variëren. 2 bytes op een atmega, maar 4 op een due. Op een ESP8266 weet ik het niet eens uit mijn hoofd, zou ik eens sizeof moeten doen.

Wat ik tegenwoordig steeds meer probeer te doen is het gebruik van uint8_t en uint16_t enz.

Nogmaals bedankt voor de fork en pull. Wordt zeer gewaardeerd.

Groeten,

Timo

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Arduino LocoNet OPC_GPON & OPC_GPOFF Master Switch
« Reactie #6 Gepost op: 03 januari 2016, 15:27:06 »
Hoi Timo,

Goed om te horen dat het werkt. Kon het zelf niet testen omdat ik de LocoNet library niet heb en niet zo 123 weet waar ik die haal/wat de juiste is.

Ik ben ook self-taught wat betreft programmeren. Zelf ben ik ooit begonnen met PIC C waarmee iets meer kan dan met PIC Basic. De overstap op Arduino was dan ook niet zo lastig. De overstap kwam eigenlijk vooral doordat een Ardruino (vooral de Pro Mini) gewoon zo goedkoop is geworden dat ik er niet meer tegenaan kan solderen. Zo heb ik nog wel PIC's liggen en gebruik ik ze nog wel eens maar eigenlijk vooral de kleine omdat het dan zo lekker simpel blijft. Zie bijvoorbeeld de KaKu Extend (website waar ik eigenlijk vaker project verslagen op zou moeten zetten...).

Voor buttons vind ik het altijd nog super raar eigenlijk dat Arduino daar niet ook gewoon een standaard library voor mee levert. Voor één button is het allemaal nog wel duidelijk en makkelijk in code te doen maar voor meer wordt het al snel een chaos. Een library (en hoeft nog niet eens object based te zijn, heb voor PIC C de Bounce2 gepoort naar puur C (zou ik ook eens op GitHub moeten zetten... Mmm,, maar op diot moment niet de PIC C omgeving draaien...) kan de boel dan zo veel netter maken.

Het is waar dat een int wat kant verschillen ja. Maar meestal is het niet zo heel erg met programmeren omdat je code toch redelijk specifiek geschreven is. Dat een int 4 bytes is op een Due komt overigens dat het een 32-bit micro is. Voor een Due is een int dus gewoon één register terwijl een int (van 2 byte) op een Uno/Pro Mini/Nano/Mega al gedoe is met twee registers (8-bit micro's). Zal dus op de ESP waarschijnlijk ook 4 byte zijn omdat ook dat een 32-bit micro is. Eigenlijk hoe krachtiger de hardware hoe minder nauw je hoeft te letten op je variabele type :p Kijk maar naar de PC waar bij in PHP eigenlijk alleen een variabel bestaat waar je alles in kunt stoppen :p Maar op een Uno is zowel snelheid als geheugen beperkt.


Timo
Verzonden vanaf mijn desktop met Firefox

Curious T!mo

  • Offline Offline
  • Berichten: 26
Re: Arduino LocoNet OPC_GPON & OPC_GPOFF Master Switch
« Reactie #7 Gepost op: 03 januari 2016, 16:09:46 »
Hey Timo,

Die site ken ik. Ik stam eigenlijk uit de domotica wereld. Dus vandaar. Het meeste van mijn domotica doe ik tegenwoordig in node.js . Dus javascript voor de backend en javascript/html5/css3 voor de frontend.

Een aantal van mijn arduinos worden binnenkort vervangen voor de ESP8266, die heeft wifi onboard. Dus ik moet beter op variabelen letten.

Maar het is een leuke hobby en je leert iedere keer weer wat. En je blijft veranderen en upgraden.

De loconet en DCC library kun je vinden op https://github.com/mrrwa
In deze library wordt voor DDC pin 3 gebruikt voor een DCC ACK. Ik neem aan voor het programmeren. Kan er alleen zo snel geen schema bij vinden. Misschien heb je er wat aan.

Ik heb mijn meest gebruikte libraries op mijn github staan. Op deze manier kan ik ook alles syncen op mijn macbook, imac en werkstation op het werk.

Groeten,

Timo
« Laatst bewerkt op: 03 januari 2016, 16:16:36 door Merdeka »

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Arduino LocoNet OPC_GPON & OPC_GPOFF Master Switch
« Reactie #8 Gepost op: 03 januari 2016, 17:16:25 »
Zelf had ik ook graag wat meer gedaan met domotica. Die KaKu was even snel voor bij mijn vriendin. Verder nooit echt verder mee gegaan, altijd al genoeg projecten liggen... Voordeel aan de ESP8266 is dat er al een vorm van beveiliging over de verbinding draait. Alleen is Wifi dan weer niet zo energie zuinig :/

Nog bedankt voor de link, MRRWA ken ik inderdaad van de NmraDcc. Zelf moet ik eignelijk weer verder met adServo alleen zo weinig tijd. (Iets zorgt er voor dat er soms DCC pakketen gemist worden :/ ) En nu me vriendin hier op me studenten kamer is ligt me bureau ook weer te vol om MRdirect en de logic analyzer aan te slingeren...

Ah, ja, syncen met GitHub kan natuurlijk ook :p Zelf draait me PC een FTPS verbinding zodat ik altijd overal bij kan. En voor me Laptop ben ik nu STACK aan het inrichten :)



Timo
Verzonden vanaf mijn desktop met Firefox