Koračni motor + Qbasic + LPT1

poruka: 13
|
čitano: 3.790
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
neaktivan
offline
Koračni motor + Qbasic + LPT1

Pozdrav svima!

Radim završni rad na temu "Upravljanje koračnim motorom preko računala (LPT1)" , elektronički dio je uspješno izrađen, ali software me muči :D Nisam baš upoznat s QBasicom, ali u njemu bih trebao napraviti program koji će upravljati motorićem. Znači treba mi program koji će na paralelni port (out 888, x jel) slati podatke redom x=1,2,4,8 (binarno 00000001, 00000010, 00000100, 00001000...2^0, 2^1, 2^2, 2^3) pa isponova tako sve dok ne napravi koraka koliko u programu upišem (jedan podatak = jedan korak). Pronašao sam slijedeći programčić, ali ne radi nažalost :/

 

n = 0 
PRINT "Upisite broj koraka" 
INPUT a 
DO 
x = 2 ^ n 
OUT 888 , x 
n = n + 1 
IF n = 3 THEN n = 0 
a = a - 1 
LOOP UNTIL a = 0

 

Molim pomoć :D ako bi netko mogao popraviti ovaj ili napraviti novi program..Hvala unaprijed!

Poruka je uređivana zadnji put pon 22.4.2013 23:04 (ya-sam-ya).
 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Koračni motor + Qbasic + LPT1
ya-sam-ya kaže...
Molim pomoć :D ako bi netko mogao popraviti ovaj ili napraviti novi program..Hvala unaprijed!

Windowsi NT ne dozvoljavaju direktan pristup hardverskim resursima.

Fino bootaj u DOS (ili ako negdje imaš staru Win9x mašinu) i deri.

0xBADC0DE
13 godina
neaktivan
offline
Re: Koračni motor + Qbasic + LPT1

Najprije pokušaj na ekran ispisati broj koji bi išao na port.

Kojom brzinom trebaju podaci odlaziti?

 

I da, pod Windows XP i kasnijima nećeš moći iz jednostavno QBasica pristupiti na paralelni port.

Ako postoji paralelni port na PC-u, možeš pokušati pomoću Microsoft Virtual PC kreirati virtualnu mašinu sa Windowsima 95 ili 98.

 

Nisi napisao koju verziju Windowsa koristiš, pa pronađi sam verziju Virtual PC-a.

13 godina
neaktivan
offline
Re: Koračni motor + Qbasic + LPT1
rustweaver kaže...

Windowsi NT ne dozvoljavaju direktan pristup hardverskim resursima.

Fino bootaj u DOS (ili ako negdje imaš staru Win9x mašinu) i deri.

 

Ako ćemo biti picajzle, na WinXP prije SP2 to je djelomično radilo.

Radio sam svojedobno s nekakvim jednostavnim ISP programatorom koji je pričao preko paralelnog porta.

No, za to je trebalo za tu aplikaciju aktivirati "Win95 compatibility mode".

 

Da, nije bio pisan u Qbasicu, tako da autoru teme to ne može biti od nekakve koristi.

17 godina
neaktivan
offline
Koračni motor + Qbasic + LPT1

Koristim Windows 7, ali bez brige, imam pristup paralelnom portu. Vec sam kontrolirao LEDice i slicno. Samo mi treba program za stepper :) Signali bi trebali biti slani u razmaku 25 ms..otprilike

Poruka je uređivana zadnji put uto 23.4.2013 14:34 (ya-sam-ya).
 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Koračni motor + Qbasic + LPT1
ya-sam-ya kaže...

Signali bi trebali biti slani u razmaku 25 ms..otprilike

Problem je što Qbasicov timer ima granularnost od 50-60 ms što se može vidjeti iz ovog primjera:

time = TIMER

WHILE INKEY$ <> CHR$(27)
    IF TIMER - time > .01 THEN
        PRINT TIMER
        time = TIMER
    END IF
WEND

 

Ali možda je i do sistema. Probaj kod sebe pa vidi što dobiješ. Ako ti baš treba veća preciznost, onda možeš pokušati i nešto sa wait komandom.

0xBADC0DE
Poruka je uređivana zadnji put uto 23.4.2013 18:43 (rustweaver).
15 godina
neaktivan
offline
Re: Koračni motor + Qbasic + LPT1
ya-sam-ya kaže...

Koristim Windows 7, ali bez brige, imam pristup paralelnom portu. Vec sam kontrolirao LEDice i slicno. Samo mi treba program za stepper :) Signali bi trebali biti slani u razmaku 25 ms..otprilike

Da bi imao direktan pristup LPT portu na Windows 7 treba ti potpisani InpOut driver uz .dll sa eksportiranim funkcijama. Ako si uspio isprintati tekst na LPT to nije direktan pristup jer OS upravlja portom.

Na Windowsu XP postoji UserPort driver koji ti daje direktan pristup. UserPort ne radi na novijim sustavima.

 

Provjeri sa profesorom da li motor isključivo radi preko PRINT komande. Ako radi super, a ako ti treba direktan pristup onda odi na XP+UserPort ili Live DOS.

Avatar sadrži sliku igre koju trenutno prolazim.
Poruka je uređivana zadnji put uto 23.4.2013 18:57 (Alkaline).
17 godina
neaktivan
offline
Re: Koračni motor + Qbasic + LPT1
Alkaline kaže...
ya-sam-ya kaže...

Koristim Windows 7, ali bez brige, imam pristup paralelnom portu. Vec sam kontrolirao LEDice i slicno. Samo mi treba program za stepper :) Signali bi trebali biti slani u razmaku 25 ms..otprilike

Da bi imao direktan pristup LPT portu na Windows 7 treba ti potpisani InpOut driver uz .dll sa eksportiranim funkcijama. Ako si uspio isprintati tekst na LPT to nije direktan pristup jer OS upravlja portom.

Na Windowsu XP postoji UserPort driver koji ti daje direktan pristup. UserPort ne radi na novijim sustavima.

 

Provjeri sa profesorom da li motor isključivo radi preko PRINT komande. Ako radi super, a ako ti treba direktan pristup onda odi na XP+UserPort ili Live DOS.

Nisam siguran u terminologiju, ali imam pristup, i motorić radi preko softwarea koji sam skinuo, ali ne mogu to koristiti za završni rad. I pristup sam dobio upravo  programom koji navodiš, Userportom.

@rustweaver Hvala, pokušat ću nešto s tim kodom..iii kako funkcionira ta Wait naredba?

Poruka je uređivana zadnji put uto 23.4.2013 19:30 (ya-sam-ya).
15 godina
neaktivan
offline
Re: Koračni motor + Qbasic + LPT1

Wait pauzira izvršavanje programa dok ne primiš određeni signal kroz neki port. Dakle mogao bi izvesti nekakvu dvosmjernu komunikaciju između vanjskog skopovlja i tvog programa.

 

program motoru: izvrši toliki i toliki pomak

program se pauzira (wait komanda čeka signal izvana)

 

motor izvrši pomak i šalje signal programu: obavljeno

wait naredba u programu prima signal i nastavlja izvršavanje programa

 

Malo sam to previše laički objasnio, ali to je ideja iza wait komande.

0xBADC0DE
17 godina
neaktivan
offline
Koračni motor + Qbasic + LPT1

n = 0 
 INPUT "Upisite broj koraka" ;a
INPUT "unesite trajanje impulsa u milisekundama"; m
FOR i = 1 TO a
  FOR n = 0 TO 3 
   x = 2 ^ n 
   OUT 888 , x 
   SLEEP m
  Next n
Next i

 

probao sam ovaj program, ali imam problema s njim..radi četiri puta više koraka nego je upisano i sleep je u sekundama..kad upisem npr 0.05 nista se ne događa dok ne stisnem enter (napravi se 1 korak)..ima li rjesenja za to? :D

 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Koračni motor + Qbasic + LPT1

sleep radi samo sa sekundama. I to cijelim brojevima. Za to nema rješenja, moraš tražiti negdje dalje...

0xBADC0DE
17 godina
neaktivan
offline
Koračni motor + Qbasic + LPT1
aha..a kako bi gore navedeni programcic izgledao sa wait ili timer umjesto sleep
 
0 0 hvala 0
16 godina
neaktivan
offline
Koračni motor + Qbasic + LPT1

A kada nađeš nešto da ga pomakneš u razlici manjoj od sekunde onda gledaj da je i sam motor to u mogučnosti klik nabavi motor sa mikrostepom ili bar half-step jer ovaj koji sad imaš je puni korak od 1.8 stupnjeva ili 200 stepova za cjeli krug.

http://www.youtube.com/glodalica
Moj PC  
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice