čtvrtek 21. září 2017

Arduino 9, fotograf na kolejiště (LED)

Použité komponenty:
1 x Arduino Pro Mini (Nano) - Aliexpress (cca 35 CZK klon)
1 x IR (infrared) modul 
1 x odpor 680R pro LED
1 x LED dioda bílá (pro instalaci do postavičky SMD led dioda)

Program:
Stav klidu - nic se neděje
Funkce - při sepnutí opto-infra snímače proběhne cyklus zablikání led (motiv focení) - následuje blokování sepnutí (čas blokovaní lze nastavit v programu).

Instalace opto snímače lze provést do kolejového svršku mezi koleje. Opto snímač umísťujte do záběrného pole fotografa.

Instalaci do figurky doplním časem.

Funkce viz. video:

Program:
int ledPin = 8;     // výstup pro led pin 8
int irApin = 3;     // vstup pro IR pin 3
byte leds = 0;

void setup() 
{
  pinMode(ledPin, OUTPUT);
  pinMode(irApin, INPUT);  
}

void loop() 
{
  if (digitalRead(irApin) == LOW)
  {
    digitalWrite(ledPin, HIGH);
    delay(2); 
    digitalWrite(ledPin, LOW);
    delay(200); 
    digitalWrite(ledPin, HIGH);
    delay(2); 
    digitalWrite(ledPin, LOW);
    delay(50); 
    digitalWrite(ledPin, HIGH);
    delay(50); 
    digitalWrite(ledPin, LOW);
    delay(6000);        // hodnota blokování - 6000 = 6 sekund (max 20 sekund "20000")
  }
}


Arduino 8, IR spínač pro přejezdové zařízení

Použité komponenty:
1 x Arduino Pro Mini (Nano) - Aliexpress (cca 35 CZK klon)
4 x IR (infrared) modul 
1 x odpor 680R pro LED
1 x LED dioda (místo led pak spínací prvek, např. 5V relé)


Program:

Stav klidu - nic se neděje
1 funkce z leva - vlak sepne A (nic se nestane) dále sepne B (spustí se výstražníky) -> projede sledovaným úsekem a následně sepne C (nic se nestane) a sepne D (vypne výstražníky)
2 funkce z prava - vlak sepne D (nic se nestane) dále sepne C (spustí se výstražníky) -> projede sledovaným úsekem a následně sepne B (nic se nestane) a sepne A (vypne výstražníky)
3 funkce při posunu (z leva) - vlak sepne A (nic se nestane) dále sepne B (spustí se výstražníky) -> neprojede celým sledovaným úsekem a následně se vrací a sepne B (nic se nestane) a sepne A (vypne výstražníky) - totáž platí při vjezdu z pravé strany do D a C
Poznámka - vlak může zastavit i v poloze kteréhokoli čidla, v tom momentě se zaznamenává pouze poslední funkce a při sepnutí dvou čidel zároveň má přednost to čislo první sepnuté.

Z důvodu posunu jsou použita 4 čidla, která hlídá železniční přejezd v obou směrech vždy pro vjezd a tak i výjezd. Díky tomuto je možný 100% posun s automatickým ovládáním přejezdových výstražníků.

Funkce viz. video (led indikuje sepnutí přejezdového zařízení):


Program:
int ledPin = 8;
int irApin = 3;  //vypínací
int irBpin = 2;  //spínací
int irCpin = 4;  //spínací
int irDpin = 5;  //vypínací

byte leds = 0;

void setup() 
{
  pinMode(ledPin, OUTPUT);
  pinMode(irApin, INPUT);  
  pinMode(irBpin, INPUT);  
  pinMode(irCpin, INPUT);  
  pinMode(irDpin, INPUT); 
}

void loop() 
{
  if (digitalRead(irApin) == LOW)
  {
    digitalWrite(ledPin, HIGH);
  }
  if (digitalRead(irBpin) == LOW)
  {
    digitalWrite(ledPin, LOW);
  }
  if (digitalRead(irCpin) == LOW)
  { 
    digitalWrite(ledPin, HIGH);
  }  
  if (digitalRead(irDpin) == LOW)
  {
    digitalWrite(ledPin, LOW);
  }
}


úterý 19. září 2017

Arduino 7, Staniční rozhlas (zvukový modul)

Dnes si popíšeme zapojení zvukového MP3 modulu možnéh využít ke staničnímu hlášení, ozvučení scény kolejiště a nebo třeba jako jednoduchý přehrávač MP3.

Použité komponenty:
1 x Arduino Pro Mini (Nano) - Aliexpress (cca 35 CZK klon)
1 x DFPlayer MP3 (Mp3-TF-16P) - AliExpress (cca 30 CZK verze mp3-tf-16p)
10 x spínač dle vaší volby
11 x odpor 10 k pro spínač a RX
1 x microSD paměťová karta - formát FAT32
1 x repro 3 W 4 ohmy


Program:

Program verze 1.1
Stav klidu - nic nehraje
Stav sepnutí - sepnutí T1 sepne mp3 z SD karty a nechá daný zvuk celý přehrát (shodné pro další T1 až T10)
Upozornění - pokud se přehrává zvuk a zmačknete stejné, či jiné talčítko T1 až T10 spustí se nový zvuk a původní přehrávaný se přeruší.

microSD karta - do kořenového adresáře nahrajte zvuk s názvem:
1.mp3 - spouští tlačítko T1
2.mp3 - spouští tlačítko T2 
atd.....
...
... až
10.mp3 - spouští tlačítko T10

Zařízení nemusí být využíváno jako rozhlas, ale jde použít jako zvukový modul pro podkreslení krajiny kolejiště, či dalšímu nazvučení figurek, vozidel, dílen apod.

Funkce viz. video:

Program:
#include <Servo.h>
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(2, 3); // RX, TX - data mezi MPR a Arduino
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);
const int button0 = 4;     //nastavení funkčních tlačítek
const int button1 = 5;
const int button2 = 6; 
const int button3 = 7; 
const int button4 = 8; 
const int button5 = 9;   
const int button6 = 10;
const int button7 = 11;
const int button8 = 12;
const int button9 = 13;
int buttonState = 0; 
int pos = 0;
int value = 0;
       
void setup() {
  pinMode(button1, INPUT);     
 mySoftwareSerial.begin(9600);
  Serial.begin(9600);
  
  Serial.println();
  Serial.println(F("DFRobot DFPlayer Mini Demo"));
  Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));
  
  if (!myDFPlayer.begin(mySoftwareSerial)) {  //Use softwareSerial to communicate with mp3.
    Serial.println(F("Unable to begin:"));
    Serial.println(F("1.Please recheck the connection!"));
    Serial.println(F("2.Please insert the SD card!"));
    while(true);
  }
  Serial.println(F("DFPlayer Mini online."));
  
  myDFPlayer.volume(25);  //Nastavení hlasitosti minimální 0 až maximální 30
}

void loop() {
  buttonState = digitalRead(button0);   //tlačítko 0 sepne 1.mp3 atd u dalších
  if (buttonState == HIGH) {
  myDFPlayer.play(1);  //Play the 1.mp3
    delay(10);
  } else {
  }
    buttonState = digitalRead(button1);
  if (buttonState == HIGH) {
  myDFPlayer.play(2);  //Play the 2.mp3
    delay(10);
  } else {
  }
    buttonState = digitalRead(button2);
  if (buttonState == HIGH) {
  myDFPlayer.play(3);  //Play the 3.mp3
    delay(10);
  } else {
  }
    buttonState = digitalRead(button3);
  if (buttonState == HIGH) {
  myDFPlayer.play(4);  //Play the 4.mp3
    delay(10);
  } else {
  }
      buttonState = digitalRead(button4);
  if (buttonState == HIGH) {
  myDFPlayer.play(5);  //Play the 5.mp3
    delay(10);
  } else {
  }
      buttonState = digitalRead(button5);
  if (buttonState == HIGH) {
  myDFPlayer.play(6);  //Play the 6.mp3
    delay(10);
  } else {
  }
      buttonState = digitalRead(button6);
  if (buttonState == HIGH) {
  myDFPlayer.play(7);  //Play the 7.mp3
    delay(10);
  } else {
  }
      buttonState = digitalRead(button7);
  if (buttonState == HIGH) {
  myDFPlayer.play(8);  //Play the 8.mp3
    delay(10);
  } else {
  }
      buttonState = digitalRead(button8);
  if (buttonState == HIGH) {
  myDFPlayer.play(9);  //Play the 9.mp3
    delay(10);
  } else {
  }
      buttonState = digitalRead(button9);
  if (buttonState == HIGH) {
  myDFPlayer.play(10);  //Play the 10.mp3
    delay(10);
  } else {
  }
}


pondělí 11. září 2017

721. MTB - zvuk Artol - reproduktor z Aliexpressu

I do našeho vozového parku jsme zařadili jeden motorový model od firmy MTB model - tímto modelem je asi nejpovedenější model z celé produkce firmy a to 721.156-8. 
Model po nákupu měl bohužel tři mouchy: 
První mouchou je motor horší konstrukce, ale po jeho dosloužení se nechá nahradit motorem 5-ti pólovým s uhlíky. Zatím slouží originál a po jeho odchodu tuto remotorizaci provedeme.
721. foto s původním zábradlím
Druhá moucha je ve vzhledu a to zábradlí ochozu, které vlivem použití špatného plastu je poloprůhledné. Jde lehce sundat a tak nebyl problém zábradlí nastříkat bílou barvou. Třetí moucha je ve zvuku. MTB do modelu montuje kruhové reproduktory o výkonu 1,5W a po připojení dekoderu Zimo MX645P22 se bohužel linuly zvuky podobné tekoucímu vodovodu. Reproduktor jde lehce odpájet ze základní desky modelu. Dále ve spodní části rámu/nádrže jsme vybrousili minibruskou dorazy pro kruhový reproduktor, tak aby se sem vešel reproduktor Zimo 10x15. 
Ozvučnice Roco
Tyto reproduktory se však nechají sehnat na Aliexpressu za mnohonásobně nižší cenu, jelikož se jedná o reproduktory používané do mobilních telefonů a tak není potřeba za ně platit více na českém trhu. Ozvučnice jde vyrobit z jakéhokoliv plastu, tak aby objemový prostor ozvučnice byl cca 9 x 14 x 3 až 5 mm. Takto upravený model má mnohem lepší zvukové vlastnosti jak originální osazení. Já mám použitou ozvučnici z modelu Roco - 10 x 15, která se přesně vejde pod spodní víčko původního reproduktoru.
Zvukový projekt je použit Artol - je to proto, že všechny modely máme ozvučeny zvuky Jacek a tak jsem chtěl vyzkoušet i jiného výrobce zvuků. Dneska Vím, že Artol není špatný zvuk pro model za super cenu, ale pokud chcete kvalitu, vyplatí se připlatit za JBR Jacek.
Výsledek si můžete poslechnout zde: