Doel:€250.00
Donaties:€128.00

Per saldo:€-122.00

Steun ons nu!

Laatst bijgewerkt
op 16-04-2024

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Kleine Baan in H0 (≤ 0.5m²) door NS264
Vandaag om 00:19:08
LS Models 2024 door Albert.H0
Vandaag om 00:17:47
h0 diorama USA “The Paintshops” door Whis
Vandaag om 00:08:34
Ronald en Wanda's "Southern Comfort" swamp layout! door class 37
Vandaag om 00:06:03
Mijn eerste H0-modeltreinbaan in aanbouw door Wim Vink
Vandaag om 00:01:40
Einde Koemo ballast ??? door Nullem
19 april 2024, 23:27:07
Nederland jaren 50 op basis van mijn roots door defender
19 april 2024, 23:05:17
Haandrecht materieel door orientexpress
19 april 2024, 23:02:39
EifelBurgenBahn door Frank 123
19 april 2024, 23:01:42
Mallnitzer Tauernbahnstrecke ÖBB N Spoor door Schachbrett
19 april 2024, 23:00:45
Keerlusmodule Digikeijs DR5013 gaat na willekeurig aantal rondes op kortsluiting door bask185
19 april 2024, 23:00:41
Traintastic - modelbaan besturingssoftware (gratis en open source) door bask185
19 april 2024, 22:27:47
Hengelo in 1981-1982, maar dan anders: Kassenberg in N door raymond erdtsieck
19 april 2024, 22:23:17
Laag-Baarlo door Benelux795
19 april 2024, 22:22:31
Een stukje Odsherreds Jernbane (OHJ) door gdh
19 april 2024, 21:51:42
US diorama in H0 door Wim Vink
19 april 2024, 21:38:59
IC-trein naar Berlijn in model, welke rijtuigen? door Michiel 80
19 april 2024, 20:49:29
Toon hier je nieuwe (model-) spooraanwinst(en)... door johanw
19 april 2024, 20:31:36
La Fabrique (1:87, 0,16m2) door tothebeach
19 april 2024, 20:02:10
Cranicher Altbahn door Arjen52
19 april 2024, 19:47:50
BMB 00-Modulebaan, BMB-Rijdagen en BMB-Deelname aan Beurzen & Evenementen door Hans van de Burgt
19 april 2024, 19:41:34
Decals voor een Roco 64892 DSG Speisewagen door grossraumwagen
19 april 2024, 19:37:41
Van Biervliet/B Models 2019, nieuws van de fabrikant door Sicco Dierdorp
19 april 2024, 18:55:04
Aachenau West door MichielB
19 april 2024, 18:48:39
Jeugdsentiment (show je oude treintjes) door thonis
19 april 2024, 18:36:00
Openen Lima Hondekop door Mispoes
19 april 2024, 17:59:32
Piko 2200 (52686)+ uhlenbrock 76420(?) door Ben
19 april 2024, 16:14:12
Onlangs gespot - gefotografeerd, de foto's door dh3201
19 april 2024, 15:30:48
ACME 2024 met NS ICNG! door Daan!
19 april 2024, 14:09:36
"Nederlandse" modellen door ArjanB
19 april 2024, 14:07:20
  

Auteur Topic: Pret met Arduino  (gelezen 53011 keer)

RudyB

  • Offline Offline
  • Berichten: 630
  • EMV
    • RudysModelRailway
Pret met Arduino 19 Railway Crossing Train Detection with Optical Sensor
« Reactie #90 Gepost op: 07 maart 2019, 11:21:29 »
Er zijn diverse methoden voor treindetectie, zoals rail stroom meting, of een magneetje onder de trein dat een reed switch triggert, of dmv een optische sensor, of nog andere, meer exotische methoden. In deze video worden twee TCRT5000 IR sensoren gebruikt, zonder special reden, alleen maar omdat ik ze had liggen en omdat ze gemakkelijk op te nemen waren in een testopstelling.

Als we de sensors dan toch aangesloten en aan de praat hebben, maken we een treinsnelheidsmeter als klein intermezzo.


Link naar Fun with Arduino 19 Railway Crossing Train Detection with Optical Sensor


« Laatst bewerkt op: 07 maart 2019, 11:28:41 door RudyB »

Haas67

  • Offline Offline
  • Berichten: 31
Re: Pret met Arduino
« Reactie #91 Gepost op: 07 maart 2019, 13:00:19 »
Bedankt Rudy, voor de tip over de "Beam Interrupt Sensor" in deze video.  (y)
Ik heb een heel aantal tcrt5000 sensors liggen die veel te gevoelig zijn voor omgevingslicht als ze als "Reflective Sensor" gebruikt worden.
Hopelijk gaat dit beter werken.
In ieder geval weer wat leuks te doen dit weekend.  ;D


RudyB

  • Offline Offline
  • Berichten: 630
  • EMV
    • RudysModelRailway
Re: Pret met Arduino
« Reactie #92 Gepost op: 07 maart 2019, 13:25:26 »
We hebben ze op de beam interrupt manier in gebruik in een schaduwstation ... werkt prima.

Haas67

  • Offline Offline
  • Berichten: 31
Re: Pret met Arduino
« Reactie #93 Gepost op: 07 maart 2019, 14:19:00 »
Ik wil ze gaan gebruiken voor een keerlus. 2 sensoren, 2 relais en een ATTiny85.


RudyB

  • Offline Offline
  • Berichten: 630
  • EMV
    • RudysModelRailway
Pret met Arduino 20 Railway Crossing Putting it all Together
« Reactie #94 Gepost op: 10 maart 2019, 12:02:10 »

In de voorgaande drie videos hebben we de losse onderdelen bekeken: knipperlicht, servo voor de slagboom, sesnors voor treindetectie. In deze video voegen we alles samen tot een werkende bewaakte overweg. Het State Transition Diagram dient als uitgangspunt en we maken de software op basis daarvan in 5 eenvoudige stappen.


Link naar Fun with Arduino 20 Railway Crossing Putting it all Together

Railway Crossing UK version





tuurtje

  • Offline Offline
  • Berichten: 4519
Re: Pret met Arduino
« Reactie #95 Gepost op: 10 maart 2019, 13:01:59 »
Hoi Rudy,

Reuze bedankt hiervoor  (y)

Ik heb alleen nog een vraag is het mogelijk om te starten als het begin van de trein de eerste sensor passeert en de laatste wagon de tweede sensor passeert?

Groetjes

Arthur
A live performance so the whole world will see
I'm aligning the stars
Universal in art
See the god in me

RudyB

  • Offline Offline
  • Berichten: 630
  • EMV
    • RudysModelRailway
Re: Pret met Arduino
« Reactie #96 Gepost op: 10 maart 2019, 14:59:25 »
In software is alles mogelijk. De Arduino weet natuurlijk niet wat de laatste wagon is ... maar een manier om dat te checken is met een wachttijd. Bij een sensor overgang kan een timer starten ... als er tot het eind van de timer geen nieuwe verandering van de sensor was, dan was dit de laatste wagon. O.i.d ... ik moet er even over nadenken.

TEE-RAM

  • Offline Offline
  • Berichten: 222
Re: Pret met Arduino
« Reactie #97 Gepost op: 11 maart 2019, 15:29:01 »
Rudy,
Bedankt, werkt heel leuk. Ga mij verder verdiepen in arduino. (y) (y) (y)
Wim

RudyB

  • Offline Offline
  • Berichten: 630
  • EMV
    • RudysModelRailway
Pret met Arduino 22 Step Sequencer for LEDs
« Reactie #98 Gepost op: 14 maart 2019, 15:12:35 »
Een politieauto, brandweerauto of ambulance met knipperende lichten kan op een layout wat extra leven in de brouwerij geven. De uitdaging is om niet elke keer nieuwe code te hoeven schrijven als we een ander knipperpatroon willen. De uitdaging is om dezelfde software te gebruiken en alleen het aantal LEDs, het aantal stappen en het patroon van knipperen te configureren. Zou dat lukken? Ja natuurlijk lukt ons dat ...

Link naar Fun with Arduino 22 Step Sequencer for LEDs


« Laatst bewerkt op: 14 maart 2019, 15:17:55 door RudyB »

bask185

  • Offline Offline
  • Berichten: 4051
Re: Pret met Arduino
« Reactie #99 Gepost op: 14 maart 2019, 15:34:05 »
byte sequencer[NUM_LEDS][NUM_STEPS] = {
  1,1,1,1,0,0,0,0,   // LED 1
  1,1,0,0,1,1,0,0,   // LED 2
  1,0,1,0,1,0,1,0 }
vraagje, moeten hier geen extra accolades om de regels heen?
zoals:

byte sequencer[NUM_LEDS][NUM_STEPS] = {
  {1,1,1,1,0,0,0,0},   // LED 1
  {1,1,0,0,1,1,0,0},   // LED 2
  {1,0,1,0,1,0,1,0} }

Ander vraagje. Hoewel op dit niveau nog niet echt significant, je gebruikt tamelijk veel geheugen voor je arrays.
Om een factor 8 geheugen te besparen kan je je arrays veranderen in bijvoorbeeld unsigned int of long zoals:
unsigned long sequence1 = 0b10010001000110001001000100011000

In je loopje kan je dan met >> en & operators hetzelfde effect bereiken.

for(n=0;n<32;n++) {
  byte bitje = (sequence1 >> j) & 1; // heb dit ff uit mn pols geschud.

  digitalWrite(ledPin,bitje);
}
Bij de eerst iteratie is n 0 en dan pak je alleen het achterste bit, bit0. De volgende iteratie worden alle bits met 1 opgeschroven naar rechts en dan wordt er alleen naar dat bitje gekeken.

Het is ook niet al te ingewikkeld voor onze eindgebruiker.

Het verschil in geheugen voor deze 32 bits bedraagt 28 bytes.

also. Omdat jij je arrays meteen initialiseert is het onnodig om de groottes mee te geven.
Bij "byte sequencer[NUM_LEDS][NUM_STEPS] = {"
zijn NUM_LEDS en NUM_STEPS optioneel.

P.S. ik weet niet of er bij de initialisatie van 'bitje' nog een cast naar byte nodig is. Zou zomaar eens kunnen dat de compiler gaat klagen, maar dat weet ik zo niet.
« Laatst bewerkt op: 14 maart 2019, 15:38:15 door bask185 »
Train-Science.com
Train-Science github
It ain't rocket science ;-)

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Pret met Arduino
« Reactie #100 Gepost op: 15 maart 2019, 09:23:43 »
@bask185, voor de compiler maakt het niet zo uit, voor overzicht is extra haken wel aan te raden.

En inderdaad, een bool als byte opslaan is erg hongerig. Nu reserveert de AVR compiler voor een bool ook een heel word (aka, een byte) maar het is in ieder geval type safe en goed gebruik om altijd het kleinst mogelijke te gebruiken.

Dus jij ook ;) En als je de hoeveelheid bit-foo wilt verminderen kan je ook bitRead() gebruiken (ook al doet die hetzelfde :D)

Ik snap alleen wel dat je niet gelijk aan de bit-foo wilt beginnen maar het dan als bool array definiëren is wel het minimale.

also. Omdat jij je arrays meteen initialiseert is het onnodig om de groottes mee te geven.
Bij "byte sequencer[NUM_LEDS][NUM_STEPS] = {"
zijn NUM_LEDS en NUM_STEPS optioneel.
Niet correct ;) Als je dat probeert krijg je:
declaration of 'test' as multidimensional array must have bounds for all dimensions except the first
P.S. ik weet niet of er bij de initialisatie van 'bitje' nog een cast naar byte nodig is. Zou zomaar eens kunnen dat de compiler gaat klagen, maar dat weet ik zo niet.
Nee, gaat impliciet :)


Timo
Verzonden vanaf mijn desktop met Firefox

bask185

  • Offline Offline
  • Berichten: 4051
Re: Pret met Arduino
« Reactie #101 Gepost op: 15 maart 2019, 13:59:40 »
hmm nooit geweten dat je bij multidimensionele arrays geen extra haakjes hoef te zetten  ???, dat vind je echt terug in elke tutorial. Dat verklaart meteen wel waarom je dan wel de groottes moet opgeven :)

Train-Science.com
Train-Science github
It ain't rocket science ;-)

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Pret met Arduino
« Reactie #102 Gepost op: 20 maart 2019, 21:55:25 »
Dat komt omdat het voor de definitie van een array niet echt uit maakt, alleen voor de grote ervan.

byte a[][2] = {{1, 2}, {3, 4}, {5, 6}};
//of
byte b[] = {1, 2, 3, 4, 5, 6};
Zal naar exact hetzelfde compilen, namelijk 4 opvolgende geheugenadressen gevuld met 1, 2, 3 en 4. Vandaar ook dar je in C/C++ zonder waarschuwing buiten een array kunt lezen/schrijven.

Voor het lezen doet de compiler eigenlijk weer hetzelfde. Je kunt 'b' ook benaderen als
b[2];Omdat je altijd terug kunt naar een dimensie omdat het nu eenmaal zo in het geheugen staat.

Ook kun je 'a' als parameter gebruiken voor een functie als:
void foo(byte bar[2][3]){
  bar[1][0]; //geeft 3
}
foo(a);
Voor de compiler is zowel a als b simpelweg een pointer naar een byte. Deze pointer wordt opgehoogd met het product van de grote zoals aangegeven bij definitie. Wat dus in geval van een functie niet dezelfde definitie hoeft te zijn.

Dus je mag ook een functie maken als
void foobar(byte *p)
//en dan
foobar(a);
//of
foobar(b);


Timo
Verzonden vanaf mijn desktop met Firefox

RudyB

  • Offline Offline
  • Berichten: 630
  • EMV
    • RudysModelRailway
Pret met Arduino 23 Neopixel Addressable LEDs, WS2812, struct{...}
« Reactie #103 Gepost op: 21 maart 2019, 14:49:44 »
Neopixels zijn adresseerbare LEDs met een ingebouwd IC dat zorgt voor datacommunicatie over slechts 1(!) draad en voor de pulsbreedtemodulatie  van de RGB(+W) LEDs. Deze data lijn is verbonden met een Arduino output. Zo kunnen we de kleur en de helderheid van elke individuele LED besturen. Met super simpele bedrading kunnen we zo bijvoorbeeld meerdere huisjes in een dorpje voorzien van verlichting, ieder met zijn eigen kleur en helderheid en timing ... net als in het echt.

De video miste tijdelijk in de blog post ... dat is nu hersteld.


Link naar Fun with Arduino 23 Neopixel Addressable LED, WS2812, struct{...}


« Laatst bewerkt op: 21 maart 2019, 21:14:18 door RudyB »

RudyB

  • Offline Offline
  • Berichten: 630
  • EMV
    • RudysModelRailway
Pret met Arduino 24 Neopixel Sequencer with Flexible Timing and Colors
« Reactie #104 Gepost op: 29 maart 2019, 11:59:38 »

In de vorige video hebben we een step sequencer gemaakt voor adresseerbare LEDs (Neopixel). Het mooie van die sequencer is dat de stappen op een visuele manier kunnen worden opgegeven via een reeks enen en nullen: 1,1,1,1,0,0,0,0,1,1,0,0,1,1,0,0. Het nadeel van die werkwijze is dat de kleur per LED vast staat en dat de intervaltijd vast staat. De sequencer in deze video heeft volledige flexibiliteit, elke stap heeft zijn eigen timing en LED kleur.


Link naar Fun with Arduino 24 Neopixel Sequencer with Flexible Timing and Colors