Actionare Diorama in analogic cu Arduino

nic000

Active Member
Trenulist
26 Oct 2012
65
0
Popesti Leordeni
LOCATION
Popesti Leordeni
Desi nu am mai postat nimic in legatura cu diorama la care lucrez (CFPL), am mai lucrat putin la planurile de baza, respectiv automatizarea acesteia.

Asa ca dupa ce m-am documentat ceva timp si am asteptat comenzile cu piese din China, pot spune ca am facut progrese.

Astfel am cate ceva de aratat aici, pt ca e bine sa impartasim ce invatam.

Am ales sa folosesc cipurile ATMEGA328, care vin pe o multitudine de variante de placi (ATMEGA256, UNO, DUEMILENOVA, MINI, MICRO, samd).
Mai exact eu voi folosi o combinatie ATMEGA256 + mai multe MICRO.
Momentan nu voi intra in detalii despre Arduino, insa voi prezenta ce doresc sa fac :
1. Actionari Macaze
2. Identificarea Ocuparii liniei
3. Alimentare sina cu PWM (Pulse Width Modulated) - Control Accelerare / Franare
4. Realizare Panou Comanda
5. Control Diorama - Material rulant - Auto / Manual (Panel de comanda)
6. Control Diorama - Decoruri

Pt inceput am sa ma leg de punctul 1, respectiv actionarea macazelor.

Am folosit astfel, un PIN PWM de pe ATMEGA prin care am comunicat cu un servomotor. Aceasta varianta mi s-a parut mai buna decat altele prezentate pe forum, deoarece exista posibilitatea de a controla individual servomotoarele si a le controla foarte precis miscarea. Astfel dupa 2-3 incercari mi-am dat seama ca este necesar ca servomotorul sa se miste doar 40 de grade pt a realiza o actionare a macazului. Ceea ce este si mai dragut, este ca se poate comanda servomotorului sa efectueze miscarea in timpul pe care ni-l dorim, astfel incat sa fie cat mai aproape de miscarea din realitate. Eu am ales ca acest servomotor sa efectueze o miscare de 40 de grade din grad in grad cu un delay de 50 de milisecunde, ceea ce inseamna ca miscarea totala dureaza 2 secunde. Momentan comanda vine de la un buton, insa poate fi schimbata cu un senzor ( prezentarea, intr-un episod viitor :) ).

Va las sa vedeti ce a iesit si sa comentati pe acest subiect.

http://www.youtube.com/watch?v=58tGhXUqRkU

:D
 

sogard_2003

Well-Known Member
Trenulist
19 Ian 2016
3.608
0
Bucuresti
LOCATION
Bucuresti
Vezi ca erau niste drivere pentru servomotoare gata fabricate pe robofun.ro si le puteai conecta direct la pc fara Arduino.
 

nic000

Active Member
Trenulist
26 Oct 2012
65
0
Popesti Leordeni
LOCATION
Popesti Leordeni
Cu siguranta le puteam conecta la PC, insa pe mine ma intereseaza sa fac mai multe cu arduino, nu doar servourile. IN plus, chiar imi place sa lucrez cu Arduino :).
 

strofo

Active Member
Trenulist
29 Feb 2012
95
7
Ploiesti / Bucuresti
LOCATION
Ploiesti / Bucuresti
Am postat tot aici pentru ca ceea ce o sa va prezint se leaga de discutia de mai sus.



Acum cateva zile am sustinut o prezentare despre Arduino pentru o comunitate de programatori http://www.adces.ro despre comunicatia dintre Arduino si calculator si cum se poate comanda un motor DC. Ca si demo am adus un trenulet si am creat practic o centrala analogica comandata de un PC.

Materialul il puteti gasi (scuze ca este in engleza) alaturi de codurile sursa si prezentarea powerpoint aici: http://strofoland.com/arduino-projects/arduino-atmega328-motor-drive-adces-bucharest/

E vorba de codul pe care trebuie sa-l scrieti pe placa de Arduino: el citeste de pe seriala un caracter si modifica o variabila numita pwmValue. Atunci cand este citit caracterul mai mare ">" variabila este incrementata, iar cand apare caracterul mai mic "<" variabila este decrementata, orice alt caracter inseamna stop (pwmValue = 0). O valoare pozitiva a variabilei pwmValue va face locomotiva sa mearga inainte, in timp ce una negativa va face trenul se mearga cu spatele.

Codul de Windows este o aplicatie cu 3 butoane care atunci cand sunt apasate trimit pe seriala un caracter (mai mic, mai mare sau spatiu) catre Arduino.

Pentru miscarea efectiva a locomotivei am folosit un driver dedicat L298 legat conform imaginii de mai sus.

PS: nu stiu cum sa pun fisiere (alte decat poze) pe forum, daca doreste un admin le poate muta aici. Multumesc mult
 

sogard_2003

Well-Known Member
Trenulist
19 Ian 2016
3.608
0
Bucuresti
LOCATION
Bucuresti
Salut, frumos ar fi sa transferati prin Arduino comenzile DCC catre un circuit. Deci vorbim de un PWM ceva mai avansat decat simpla comanda a unui motor DC. Poate si un modul wireless conectat la Arduino + o aplicatie de comanda PWM poate pe telefon/tableta :D .
 

strofo

Active Member
Trenulist
29 Feb 2012
95
7
Ploiesti / Bucuresti
LOCATION
Ploiesti / Bucuresti
Buna si multumesc mult, deja am implementat partea asta (DCC si DC pe Arduino) inclusiv partea cu wireless (momentan sunt dezvoltate numai Android si Windows). Acum lucrez cu un coleg de forum pentru automatizarea unor module, insa chiar nu stiu cand vom termina sau cand vom putea face un demo perfect functional.
 

sogard_2003

Well-Known Member
Trenulist
19 Ian 2016
3.608
0
Bucuresti
LOCATION
Bucuresti
Stiu ca e greu din lipsa de timp mai ales, daca reusiti sa ne incantati ochii cu astfel de realizari si aici pe forum ar fi minunat.
Eu sunt la stadiul in care studiez Arduino ,inca nu am decis pe care sa il cumpar. Posibilitatile oferite mi se par enorme, mai ales in cazul unor diorame care functioneaza in analogic. Ma gandesc cate scenarii pot fi definite fara sa fie necesara logica facuta cu relee.

Pentru automatizari m-am jucat cu o interfata de control pentru Servo, ce mi se pare misto este faptul ca poti sa setezi porturile I/O pentru citire semnal din butoane sau potentiometre, logica o poti face pentru acele servouri , de exemplu bariere sau porti actionate de senzori.

Am folosit asta, dar poate fi utilizata si in varianta mai mare cu mai multe porturi I/O .
https://www.pololu.com/product/1350

Pentru motoare pas cu pas mi-am luat o interfata de control (driver de putere), dar mai este necesar un generator de PWM, se poate genera cu succes din interfata de servo sau din Arduino. Ideile sunt multe , in principal un MPP este bun la actionarea unei placi turnante.
http://www.schmalzhaus.com/EasyDriver/