|
Svet elektronike Revija za prave elektronike
|
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Tor Maj 17, 2011 9:18 pm Naslov sporočila: |
|
|
Ta timer prekinitvena rutina je narejena za tri servo motorje
Vsakokrat, ko se timer števec izteče, se starta prekinirvena rutina, ne da bi v glavnem programu kaj na to pazil, no prvič ga je le potrebno startati.
Potem pa šteje vsak klic. Uporablja spremenljivko I torej je v glavnem programu ne smeš uporabljati.
Vsakokrat porine i za ena naprej:
Koda: | Incr I : If I = 16 Then I = 1 | do 16, potem pa znova.
Ko je startana ra rutina in je i = 1 ( Case 1) tedaj naloži v timer števec vsebino, ki določa, kako dolg naj bi bil inpulz, in hkrati starta inpulz za servo 1:
Koda: | Case 1 : Load Timer0 , Tmrrl(i)
Set Portd.7 |
Ko je drugič startana, je i = 2 in pri Case 2 resetira pin inpulza 1 - inpulz je bil pravilno dolg, glede na spremenljivko, ki določa položaj servota 1. in takoj nato naloži v števec timerja vsebino spremenljivke, ki določa položaj servota dva in starta servo 2:
Koda: | Case 2 : Load Timer0 , Tmrrl(i)
Set Portd.6 : Reset Portd.7 |
In tako dalje še za servo 3, potem pa od i = 4 do 15 samo polne timer števec, da prrebridi čas, ko bo potrebno ponovno generirati inpulz 1.
No in resetira inpulz servota 3. A to ima smisel samo pri i = 4, takrat je potreben, a kasneje ne dela ta reset nobene škode.
Koda: | Timer0_isr:
' Timer prekinitvena rutina se proži na osnovi Load timer ukaza,
' ki je odvisen od dolžine inpulza, ki ga generiramo.
' Izhodni inpulz generiramo samo, če ni vhodnih inpuzov.
' Če so vnodni inpulzi, tedaj jih verno prenašamo naprej na izhodne
' Če vhodni inpulzov ni 300 msec tedaj se izteče števec ii in to pomeni
' da spet preidemo na programsko generiranje inpulzov.
' števec ii, če preteče do 0, potemni, da ni sprejema in gremo
' na generiranje svojih servoinpulzov
Select Case I
Case 1 : Load Timer0 , Tmrrl(i)
Set Portd.7
Case 2 : Load Timer0 , Tmrrl(i)
Set Portd.6 : Reset Portd.7
Case 3 : Load Timer0 , Tmrrl(i)
Set Portd.5 : Reset Portd.6
Case Else : Load Timer0 , 54
Reset Portd.5
End Select
Incr I : If I = 16 Then I = 1
Return |
_________________ Sliši se paradoksalno, a je vendarle res:
Nekateri ljudje imajo vedno vse prav. No, včasih. |
|
Nazaj na vrh |
|
|
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Sre Maj 18, 2011 9:38 am Naslov sporočila: |
|
|
Vzpodbudil si me, da sem si ogledal Conradovo ponudbo robota RP6 in me mika, da bi ga kupil. No 150E je precej.
Kako si ti zadovoljen z njim? Je vredno tega denarja? Si lahko zadevo ogledam pri tebi? _________________ Sliši se paradoksalno, a je vendarle res:
Nekateri ljudje imajo vedno vse prav. No, včasih. |
|
Nazaj na vrh |
|
|
iskra Profesionalec
Pridružen/-a: Tor Jan 2004 16:29 Prispevkov: 254 Kraj: Sežana
|
Objavljeno: Sre Maj 18, 2011 1:22 pm Naslov sporočila: |
|
|
marc je napisal/a: | Hi,
hvala obema.
Hja,
nekaj je delovalo dokler nisem uničil servota.Zdej se kar vrti kot navaden DC motor.Grem jutr po novega.
Glede programa mi pa dela težave,ker še ne poznam osnov ukaza timer in kako deluje...,grem še naprej razgibavat sive celice in raziskovati ukaze.
LPM | Škoda ker si tako daleč : bi ti jaz enega dal (ta pravega-) |
|
Nazaj na vrh |
|
|
marc Profesionalec
Pridružen/-a: Ned Maj 2009 10:08 Prispevkov: 243 Kraj: Polzela
|
Objavljeno: Sre Maj 18, 2011 4:14 pm Naslov sporočila: |
|
|
vilko je napisal/a: | Vzpodbudil si me, da sem si ogledal Conradovo ponudbo robota RP6 in me mika, da bi ga kupil. No 150E je precej.
Kako si ti zadovoljen z njim? Je vredno tega denarja? Si lahko zadevo ogledam pri tebi? |
Če to misliš name je odgovor takle.
Nisem kupil komplet RP6 robotski voziček ampak samo podvozje,ki ga najdeš tule:
http://www.prohobi.net/si/index.php?meni=2&zgm=1
in je tudi nekaj ceneje.
Na začetku sem mislil tudi kupiti cel komplet ampak sem hitro spoznal da ni to kar iščem.Odločil sem se samo za podvozje ostalo pa lahko sam naredim.Stem ko bom naredil osnovni TIV in nadgradnjo se bom veliko naučil zraven kar mi bo veliko koristilo.Najboljše pri tem je to da si narediš po lastnih željah in zahtevnosti,saj to je čar vsega .
Glede tankovskega podvozja sem zelo zadovolen je zelo masiven.Stene ima 2.20 mm debeline in je konstruiran tako da je zelo ojačan.Navdušen sem glede pogona ki je zelo močan "vse ruži pred sabo ".Na zobniku ima tudi luknjo za rotacijski enekoder.Lahko pa tudi prilepiš nalepko (skalo-črno,belo).Js bom uporabil TCST 1103 za branje.Ima tudi možnost uporabe vseh štiri motorjev.
Evo par fotografij:
P.S.,če še vztrajaš da bi si zadevo ogledal ni nobene panike.
LPM
Nazadnje urejal/a marc Sre Maj 18, 2011 4:30 pm; skupaj popravljeno 1 krat |
|
Nazaj na vrh |
|
|
marc Profesionalec
Pridružen/-a: Ned Maj 2009 10:08 Prispevkov: 243 Kraj: Polzela
|
Objavljeno: Sre Maj 18, 2011 4:19 pm Naslov sporočila: |
|
|
iskra je napisal/a: |
Škoda ker si tako daleč : bi ti jaz enega dal (ta pravega-) |
Ni panike,če se bomo kdaj dobili in pokramljali.boš imel takrat priliko .
Danes sem si pa kupil zalogo štiri komade.
Tistega ki imaš ti "tepravega" se lahko vrti 360 stopinj?
LPM |
|
Nazaj na vrh |
|
|
marc Profesionalec
Pridružen/-a: Ned Maj 2009 10:08 Prispevkov: 243 Kraj: Polzela
|
Objavljeno: Sre Maj 18, 2011 4:28 pm Naslov sporočila: |
|
|
Vilko,
hvala za obrazložitev.
Nekaj sem že zakapiral in nekaj pogruntal.Tako,sedaj imam servote in grem preizkušat program in ga malo spreminjat.
Mi še lahko na hitro samo tole poveš.
Koda: | Const Timer0reload = 4
Config Timer0 = Timer , Prescale = 256 'tukaj določiš ali je timer counter ali timer in določiš sistemsko uro -prescale- ?
Load Timer0 , Timer0reload
On Ovf0 Timer0_isr
Enable Ovf0
Start Timer0 'zaženeš timer |
Hvala.
LPM |
|
Nazaj na vrh |
|
|
marc Profesionalec
Pridružen/-a: Ned Maj 2009 10:08 Prispevkov: 243 Kraj: Polzela
|
Objavljeno: Sre Maj 18, 2011 6:05 pm Naslov sporočila: |
|
|
Hi,
zdej sem ugotovil zakaj mi včeraj ni servo delal tako kot bi mogel.program je napisan za vse tri servote.Js sem imel priključenega samo enega in ga je "heblal" se tja...sploh nisem vedel kaj se dogaja.Prele sem priključil tri servote gor in zadeva deluje prečudovito!
Ugotovil sem kje ima pozicije 0°=22,90°=60 in 180°=90.
Hitrost vrtenja dolačam uspešno,tako da sem ful vesel.Ampak hočem vseeno razumeti 100% kako deluje program.
Sem že sproboval samo mi ni ratalo istočasno poganjat servote,je kakšen poseben ukaz?
LPM
P.S.
zelenci pač |
|
Nazaj na vrh |
|
|
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Sre Maj 18, 2011 9:19 pm Naslov sporočila: |
|
|
Hvala Marc za fotografije tankovskega podvozja. Se pravi, da si vse ostalo štrikal sam! Čestitam! Daleč si priplaval in še veliko časa je pred tabo in boš še daleč prišel!
Kar se tiče timer prekinitvnega podprograma, vem malo, a dovolj, da ga lahko uporabljam. Običajno ga uporabljam za merjenje časa. Toliko vem, da timer šteje cikle mikroprocesorjevega oscilatorja, in je torej odvisen od frekvence kristala. To je kot nek števec kilometrov v avtomobilu, in ko gre števec preko nule, se glavni program prekine, vsi njegovi registri se spravijo, in se starta prekinitveni podprogram, ki naredi svoje, pred vsem pa na novo nastavi števec, (Load Timer) in s tem določi časovni interval do sledeče prekinitve. Koliko mora biti parameter v load timer ukazu, oibčajno ne grem računat, ker je za to narejen program AVRTimer.exe, ki ga poženem na PC-u in mi odpre okno, vanj vpišem osnovne podatke, frekvenco kristala in željeni interval, in on mi generira kodo, ki jo kar kopiram v moj bascom program. Program ti prilagam.
Ne, forum manager ne dovoli attachmenta, pošlji mi email naslov pod zasebno in poslal ti bom program.
No, pri konkretnem primeru sem generiral kodo za interval, ki je potreben za generiranje inpulza da bo servo na sredini. Potem pa sem spreminjal parameter ukaza load timer, da sem dobil obe mejni vrednosti dolžine inpulza. Seveda sem si pomagal z osciloskopom PoScope.
Na primeru krmilim vsak servo posebej. Seveda lahko krmiliš več servotv hkrati, le bolj zapleteno je, ker jih moraš krmiliti v isti programski zanki. Za primer je bilo enostavneje narediti tri for - next zanke.
recimo tako:
Koda: | For Tmrrl(1) = 88 To 44 Step - 1
tmrrl(2) = tmrrl(1) ' tako bosta se oba obračala hkrati
Waitms 10
Next |
_________________ Sliši se paradoksalno, a je vendarle res:
Nekateri ljudje imajo vedno vse prav. No, včasih. |
|
Nazaj na vrh |
|
|
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Sre Maj 18, 2011 9:32 pm Naslov sporočila: AVR timer.exe |
|
|
Timer.exe dobiš tudi na Dobson web strani
http://www.planet-ian.com/start_e.htm
==> Software tools ==> AVR Timer 1.25 _________________ Sliši se paradoksalno, a je vendarle res:
Nekateri ljudje imajo vedno vse prav. No, včasih. |
|
Nazaj na vrh |
|
|
marc Profesionalec
Pridružen/-a: Ned Maj 2009 10:08 Prispevkov: 243 Kraj: Polzela
|
Objavljeno: Sre Maj 18, 2011 10:20 pm Naslov sporočila: |
|
|
hi,
Hvala za vzpodbudne besede in tudi za pomoč.
Imam program in se grem špilat.Nekaj nosilnih delov za robotsko roko imam končane.ko bo narejena bom prilepil fotke na forum.je kar zamudna zadeva.
LPM |
|
Nazaj na vrh |
|
|
iskra Profesionalec
Pridružen/-a: Tor Jan 2004 16:29 Prispevkov: 254 Kraj: Sežana
|
Objavljeno: Čet Maj 19, 2011 9:45 am Naslov sporočila: |
|
|
marc je napisal/a: | iskra je napisal/a: |
Škoda ker si tako daleč : bi ti jaz enega dal (ta pravega-) |
Ni panike,če se bomo kdaj dobili in pokramljali.boš imel takrat priliko .
Danes sem si pa kupil zalogo štiri komade.
Tistega ki imaš ti "tepravega" se lahko vrti 360 stopinj?
LPM |
Napravljen je za vzdolžni premik (recimo rezkarja.. le da je pomik le 15 mm) Vozi pa lahko kilogram , pa še vzmet ima za balansiranje . Seveda pa ga lahko predelaš za kaj drugega. |
|
Nazaj na vrh |
|
|
marc Profesionalec
Pridružen/-a: Ned Maj 2009 10:08 Prispevkov: 243 Kraj: Polzela
|
Objavljeno: Čet Maj 19, 2011 8:32 pm Naslov sporočila: |
|
|
Hi nekaj me zanima.Sem že iskal po netu in nisem našel.Našel sem kako narediti navaden DC motor z reduktorjem to kar js rabim pa ne.
Slika:
Rdeča barva kaže premik kot ga imam zdaj.Želel bi imeti tako kot kaže modra barva.Ali ve kdo kako se to naredi.Kolikor vem ima notri potenciometer?Bi šel gledati ampak nočem razdirati delujočega servota.Uničenega sem stran vrgel.
Kot je razvidno iz posnetka je mogoče:
http://www.youtube.com/watch?v=TAt4dBYcdYw&feature=related
LPM |
|
Nazaj na vrh |
|
|
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Čet Maj 19, 2011 9:16 pm Naslov sporočila: |
|
|
Modelarski servomotorji imajo običajno ročico nasajeno na os in prtrjeno z malim vijačkom. Odvi vijaček, snemi ročico, prestavi jo za 90 stopinj in nasadi nazaj na os.
Skoraj neverjetno se mi zdi, da tega nisi opazil. _________________ Sliši se paradoksalno, a je vendarle res:
Nekateri ljudje imajo vedno vse prav. No, včasih. |
|
Nazaj na vrh |
|
|
marc Profesionalec
Pridružen/-a: Ned Maj 2009 10:08 Prispevkov: 243 Kraj: Polzela
|
Objavljeno: Čet Maj 19, 2011 9:39 pm Naslov sporočila: |
|
|
,nevem kje sem imel pamet.Brez besed.
LPM |
|
Nazaj na vrh |
|
|
marc Profesionalec
Pridružen/-a: Ned Maj 2009 10:08 Prispevkov: 243 Kraj: Polzela
|
Objavljeno: Sob Maj 21, 2011 6:56 pm Naslov sporočila: |
|
|
Hi,
nekaj za poskušino .
Upam da mi rata roko dokončati do konca drugega tedna.Celotnega robota pa okoli 14 dni.Prvo nalogo bo imel postavlanje domin.
LPM |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu You cannot attach files in this forum You cannot download files in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|