» »

e. motorji kontrolirani prek COM vrata

e. motorji kontrolirani prek COM vrata

weewex ::

Torej, rad bi zvedel, kako naj kontroliram 5 elektromotrojev s c++ prek COM vrata.

V bistvu hocem narediti program v c++ s katerim bom kontroliral oz. sprozil predpostavljen templ. delovanja.

mislim nekaj takega:


stvar naj bi poganjalo 12V in ne 5V iz COM vrat.
Vezje (ce je potrebno) lahko tudi omenite.

Ce kdo ve resitev naj me doda na MSN: dj_vivanco@hotmail.com
ali pa naj poslje mail.


LP,
ViVanco
Only two things are infinite, the universe and human stupidity.
  • spremenil: weewex ()

ql000 ::

Jaz bi zadevo zvozil ATPro VCL v borland builderju --> kar se tiče najbolj izi dostopa do RS232 vrat, potem pa rabiš še H-bridge, močnostni del za drajvanje motorjev, ali pa zadevo rešiš z mosfeti.

Samo problem je v tem, da rabiš RT operacijski sistem, ker ti bo v nasprotenm primeru npr. en adobe reader sporočil, da bi rad update tebi bo pa robot tako nesramno zacukal, da boš mislil da pleše break dance :D!

Mogoče obstaja še par varijant, samo dej bolj opiši kako si si zamislil drajvanje preko COM vrat!

weewex ::

Mislil sem narediti tako, da bi poganjal zadevo, kot ce bi uporabljal stikala, kar je seveda ze narejeno.
Hotel sem, da bi COM vrata uporabil kot stikala (izhodi boolean 1,0) in seveda uporabil kar binarno kodo za smer motorckov (zaradi 10 smerereh vrtenja).
Ce bi se seveda dalo s COM vrati (nisem se izkusen na hardware-u compa) bi bilo dobro, ce pa ne, pa z LPT.
Moj cilj je seveda s cim manj komplicirano potjo kontrolirati 5 motorjev z racunalnikom.

francka45 ::

to bi moglo potem biti nekaj
takega

ql000 ::

recimo: PIC(20MHz --> 115k baudrate-a) + 3 X H-bridge (1 mostič lahko drajva 2 motorja) + 1xMAX232 kar se tiče hardware-a, potem ti pa ostane programiranje mikrokontrolerja (assembler ali C).

Če se ti ne da pa malo poglej po Conradovem katalogu.

radiator ::

A veš kaj koli o regulacijah in robotiki?
Kaj je jutri že bilo?

weewex ::

lej...
Js mislem kontrolerat prek racunalnika in NE prek IC-a!!! :\
Rad bi naredil program v C++ jeziku (Dev-CPP - program) in spreminjal polarnost na COM/LPT vratih.

milsem pa tudi v tej smeri:

naprimer sem si vzel 4 pine na COM vratih, ki naj bi jih kontroliral!
A B C D
0 0 0 1 //vrtenje prvega motorja v levo
0 0 1 0 //vrtenje prvega motorja v desno
0 0 1 1 //vrtenje drugega motorja v levo
0 1 0 0 //vrtenje drugega motorja v levo
0 1 0 1 //vrtenje trejtega motorja v levo
0 1 1 0 //vrtenje trejtega motorja v levo
0 1 1 1 //vrtenje cetrtega motorja v levo
1 0 0 0 //vrtenje cetrtega motorja v levo
1 0 0 1 //vrtenje petega motorja v levo
1 0 1 0 //vrtenje petega motorja v levo
1 0 1 1 //- razne predpostavke kombinirana vrtenja
1 1 0 0 // ...
1 1 0 1 // ...
1 1 1 0 // ...
1 1 1 1 // ...


ce je to nemogoce povejte.
se pa zgledujem po lightshowu k sm ga naredu sam je na LPT.

radiator ::

na COM imaš serijsko komunikacijo(rx in tx) in dva logična izhodna bita (DTR in RTS) vidiš tu. Tak da tak ko ti misliš nebo šlo. Nisi pa odgovoril na moje prejšnje vprašanje. Če veš kaj o robotiki in regulacijah. Če ne veš mi niti malo ni jasno kako boš preračunal robota iz zunanjih v notranje koordinate da boš lahko izvajal gibe po trajektorijah. In če ne veš regulacij potem ne vem kako boš robota nekam postavil. Za vasak motor rabiš od znotraj von gledano regulacijo momenta/toka, regulacijo hitrosti in regulacijo položaja. PS robot je nelinearen sistem tak da obilo užitkov.

Ko maš to vse zračunano in sprogramirano potem pa rabiš PWM signale za vrtenje motorjev, ki jih pelješ na H bridg-e ( v tvojem primeru) Rabiš pa pudi meritev toka in meritev položaja (ID). Teoretično bi PWM lahko generiral z LPT-jem samo kak pa bo to delalo pa nebi vedel in jaz tudi probal nebi. Da furaš regulatorje rabiš real time okolje z interruptom tam na par 10 ali 100us Odvisno kak dobro češ met. Upam da ti nisem pokvaril dneva.

Če mene vprašaš nekaj kar se zaletav v končna stikala ni vredno imena robot!
Kaj je jutri že bilo?

ql000 ::

se pa zgledujem po lightshowu k sm ga naredu sam je na LPT


Mešaš lubenice pa ribez! Če ti ena ledica kje narobe zablinka v delčku sekunde tega sloh opazil neboš, če pa pri motorjih ne boš imel pošlihtanega vsaj jakostnega dela potem si oplel! PWM signal se da narest, da šiba čez porte samo kaj ko ne bo konsistence, saj se bo dogakalo to kar sem ti že zgoraj napisal; premaknil boš miško, en adobe bo hotel update, antivirus v ozadju, al nimaš šans, da generiraš vlak pulzov, ki bi kolikor toliko delal daljše časovno obdobje! Za to idejo ki jo imaš ti ti je edina varianta real time OS --> QNX ali še bolje RTL (Real time Linux). Kar se tiše RTL lahko že kako klasično distribucijo predelaš, običajno se dobi module za kernel, ki ti potem naredijo kao RT OS.

Veliko sreče, pa ne prehitro vrečt puške v koruzo!

ql000 ::

Ja pa še nekaj: COM vrata ti ne dajo +5V ampak +/- 13V

zlabo ::

Ja se strinjam da to ne bo šlo kar tako. Jaz bi to naredil na COM vrata + mikrokontroler + koračni motorji.
če pa želiš ostati na navadnih DC motorjih pa mikrokontroler z PWM regulacijo

KLIK tole se ti splača naštudirat
in pa TOLE

Zgodovina sprememb…

  • spremenil: zlabo ()

weewex ::

A fak... :'(

sm najdu sliko na netu tukaj
Ce je res tok zakompliciran glede portov je pa res Q___ .

upam da vam link vse pove

radiator ::

Ja pa še nekaj: COM vrata ti ne dajo +5V ampak +/- 13V


rx in tx je +-13V
Ostali pini so 5V logika.

Saj ni tak problem glede portov problem je v tem da PC in OS, ki povečini na njih tečejo niso mišljeni za kaj takšnega. Zadevo je treba samo pravilno razdelit med tisto kaj lahko dela PC in tisto kaj bo laufalu zunaj PC-ja
Kaj je jutri že bilo?

ql000 ::

@DJ_ViVanco: loti se tega pa se boš res velik naučil!8-)

weewex ::

Am, ja...
Js nej bi se program naredu v c++ k nej bi kontroliral te DC motorje.

Ce je LPT kej lazje upravlat kokr COM, bi sou rajs na LPT. Itak so sam naslovi za kontrolerat.
Aja se to, (ze stvar programja) ke nej dobim ksno knjizico za vhod/izhod portov. Razn ce ksn pozna sintakse za naslove.

Zelo vam bom hvalezen za odgovore.

LP,
ViVanco

Zgodovina sprememb…

  • spremenil: weewex ()

radiator ::

Saj vem da sem tečen ali ...
Kak boš pa vedel če se ti motor vrti? Kje je mehanizem? ..?


Prej enkrat zgoraj si rekel da si prižigal neke lučke preko LPT-ja potem pa vzami tisto knjižnjico ali pa:
asm
{
out x,y
}
Samo to ne dela pod vsemi okolji. Drugače pa najdeš na netu LPT knjižnjice samo boš rabil nekaj res hitrega tak da najboljše da sam narediš.
Kaj je jutri že bilo?


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Tezava s tranzistorjem

Oddelek: Elektrotehnika in elektronika
221894 (1586) Pyr0Beast
»

Projekt - Wifi Robot

Oddelek: Elektrotehnika in elektronika
142043 (1735) kihc
»

Krmilje za koračne motorje.

Oddelek: Elektrotehnika in elektronika
85922 (5680) mjakop
»

Remote control za "autek" na daljinsko

Oddelek: Elektrotehnika in elektronika
62152 (1711) madboy
»

termometer za PC

Oddelek: Elektrotehnika in elektronika
81957 (1680) snow

Več podobnih tem