Ime in Priimek
mail@kjer me lahko kontaktirate
zaposlen v tej ustanovi
Moj prvi programVključili bomo prvo svetlečo diodo na digitalnem izhodu. $regfile = "m16def.dat" $crystal = 8000000 Config Portc = Output Portc = 1 End Prenos progama v mikrokrmilnik Program moramo prenesti še v miokrokrmilnik to storimo tako, da:
Prikazati se vam mora pogovorno okno, v katerem se izpisuje kako poteka programiranje mikrokrmilnika. Če se to okno ne pojavi, poizkusite rešiti težave s to stranjo.
Desetiške vrednosti v dvojiški oblikiVsi podatki v mikrokrmilniku so zapisani v digitalni obliki (v dvojiškem sistemu). Zato na izhodu Porta C vidimo številko (prikazana z "lučkami" v digitalni obliki), ki smo jo pripisali tem vratom v desetiški obliki. Te vrednosti lahko preverite tudi z računalom.
Zgornja tabela prikazuje vrednosti posameznih bitov, ki prispevajo vsoti desetiške številke, ki smo jo pripisali Portu C. Poglejmo si še en primer, če želimo, da bi na Portu C svetile le vsake druge diode [1 0 1 0 1 0 1 0] moramo naPortC postaviti številko 128+0+32+0+16+0+4+0+2+0 = 170. Kako izključiti digitalne izhode?Sedaj poizkusite programu dodati pred konec (pred ukaz End) še naslednji dve vrstici: Wait 1 Portc = 0 LED dioda na vmesnik SemaforNa vmesnik povežite svetlečo diodo, kot prikazuje sosednja slika. Sedaj poizkusite vključiti in izključiti to svetlečp diodo. Preoblikujmo program v tako obliko: Do Portc = 1 Waitms 500 Portc = 0 Waitms 500 Loop Napišite program tako, da bo lučka trikrat utripnila: Dim Utrip As Byte For Utrip = 1 To 3 Portc = 1 Waitms 500 Portc = 0 Waitms 500 Next Utrip V tem programu smo uporabili spremenljivko Utrip. Kaj so to spremenljivke si lahko pogledate na tej strani. Zapornica Smer toka skozi motor Kako deluje motor?En priključek motorja povežite z žico na baterijski priključek, ki je označen z znakom +. Drugega pa povežite z žico na priključek - na bateriji.
Če bi na tako gred motroja pritrdili kolo našega robota, bi se kolo prehitro vrtelo in zagotavljalo premalo sile vrtenja (premalo navora). Zato moramo uporabiti polžasti reduktor. Ta zmanjša hitrost vrtenja gredi in poveča silo vrtenja.
Sestavi motor in polžasto gonilo (reduktor) kot prikazujejo naslednja zaporedja slikovnih navodil.
Prestavno razmerjePolžasto gonilo in reduktor Prestavno razmerje reduktorjev nam pove, za kolikokrat smo povečali silo vrtenja (navor) pri čemer se je za isti faktor zmanjšala hitrost vrtenja gredi. Poglejmo kako je z našim reduktorjem. Reduktor je sestavljen iz štirih zobnikov, od katerega prvi zobnik tvori polžasto gonilo z gredjo motorja (slika 1) ...
Dviganje / spuščanje na časMotor priključite na C2 in C3 in preverite kako se s tem programom premika zapornica. Portc.2 = 1 Portc.3 = 0 Wait 1 Portc = 0
Dviganje spuščanje do stikalaSedaj je potrebno priključiti tipko. Tipka ima tri priključke (označeni so z 1 , 2 in 3), ki jih na vmesnik priključimo takole:
Naložiti je potrebno program, s katerim preverimo delovanje stikala. Zapornico nekoliko dvignite in preskusite, če se zapornica ustavi ob stiku s stikalom. Config Porta = Input Do Portc.2 = 1 Portc.3 = 0 Loop Until Pina.0 = 1 Portc = 0 End Program preoblikujte in dopolnite tako, da bo zapornica naredila naslednje korake : Dvig zapornice z zaznavanjem svetlobnega senzorjaV želji, da bi zapornico bolje avtomatizirali, ji bomo dodali svetlobni senzor. Ko bo avtomobil pokril svetlobni senzor ali prekinil svetlobni snop pred zapornico, se bo ta odprla. Kako deluje svetlobni senzor? TESTIRANJE SVETLOBNEGA SENZORJA? Nato lahko zamenjamo del programa, ki spremlja pritisk na tipko s programom, ki spremlja izhodni signal svetlobnega senzorja... Dviganje spuščanje s potenciometromDviganje spuščanje s servo motorjem.Priključite servo motor na izhodni priključek D4 in preskusite naslednji program. Sestavljanje mobilnega robotaZa začetek si sestavimo osnovno konstrukcijo, s katero se bomo igrali.
Krmilniški vmesnik nam omogoča, da lahko določamo izhodna stanja digitlanim izhodom. Izhodno stanje na digitalnem izhodu je lahko "1" ali pa "0". Podobno kot ima baterija "+" in "-". Če je digitalni izhod nastavljen na "1", bo na njem višja napetost kot takrat, ko bo na njem "0". Tudi na bateriji je na priključku "+" višja napetost kot na priključku "-".
Če motor priključimo med 2 DIGITALNA IZHODA bomo lahko z različnimi izhodnjimi stanji krmilili SMER VRTENJA MOTORJA.
Priključitev levega motorjaNajprej povežite LEVI MOTOR z dvema žičkama na digitalna izhoda C0 in C1, kot je to prikazano na slikah desno.'----=GLAVNI PROGRAM=-----------
Portc = 2
Wait 2 Portc = 0 Sedaj lahko preskusiš naslednji program. Robot pa se mora premakniti DESNO NAPREJ (slika 4). Če se to ne zgodi, popravi robota, ne da bi spremenil program... spomni se na prvo nalogo KAKO DELUJE MOTOR. Ko ti je uspelo premakniti robota tako, kot prikazuje slika 4, preveri, kako se vrti motor ob naslednjih nastavitvah vrat C.
Priklop DESNEGA motorja Priključitev desnega motorjaNato priključimo še DESNI MOTOR na C2 in C3, kot prikazujejo slike na desni.Sedaj lahko preizkusiš naslednji program. Robot se mora premakniti LEVO NAPREJ (slika 4). Če se to ne zgodi, popravi robota, ne da bi spremenil program... Spomni se na prvo nalogo KAKO DELUJE MOTOR.
'----=GLAVNI PROGRAM=-----------
Portc = 8
Wait 2 Portc = 0 Nastavljanje digitalnega izhodaDigitalni izhod lahko nastavimo na več različnih načinov. V desetiški obliki smo ga že spoznali:
Portc = 8
Številko 8 lahko zapišemo tudi v dvojiški obliki:
Portc = &B_0000_1000
Bit C3 lahko vključimo tudi z uporabo bitne oblike :
Portc.3 = 1.
Preizkusite vse tri možnosti krmiljenja digitalnega izhoda:
'----=GLAVNI PROGRAM=-----------
Portc = 8
'Portc = &B_0000_1000 'Portc.3 = 1 Wait 2 Portc = 0 Vožnja naprej
Tako, sedaj smo nared, da naš robotek lahko pelje naravnost za nekaj sekund. Preizkusite naslednji program in preverite, ali robotek res pelje naravnost naprej. '----=GLAVNI PROGRAM=----------- Kot ste lahko opazili, se je robotek odzval takoj, ko ste nanj presneli program ali pa ko ste vmesnik ponovno priključili na napajanje. Kaj ko bi se program začel izvajati šele takrat, ko bomo pritisnili na tipko B3?
Zapiši ta program in pošlji robota na potep.
Do
Loop Until Pinb.3 = 1 '----=GLAVNI PROGRAM=-----------
Robot = Naprej Wait 2 Robot = Ustavi Gibanje robota (naj robot zapleše)
Z nadgradnjo programa sestavite tako zaporedje ukazov, da bo vaš robot zaplesal... Naj gre nekaj sekund naprej... pomiga levo, desno, se premakne nazaj ...
... uporabite domišljijo :) ...
'----=GLAVNI PROGRAM=-----------
Robot = Naprej Wait 2 'Tu napišite svoje plesne figure... Wait 2 Robot = Ustavi End Povratno delovanje - tipkaV nadaljevanju bomo opremili robota tako, da bo lahko zaznaval ovire pred seboj.
Namestili mu bomo nek odbijač, ki bo ob stiku s predmetom, sklenil tipko. Tako bo lahko robot zaznal, da ima pred seboj nek predmet in se bo lahko ustavil.
Priključitev tipke (glej prezentacijo spodaj desno) Priklop tipke
Sedaj lahko napišemo tak program, ki bo pognal robotka naravnost naprej. Ko se bo robotek dotaknil ovire, naj se malo odmakne nazaj in ustavi.
Do
Loop Until Pinb.3 = 1 '----=GLAVNI PROGRAM=----------- Robot = Naprej If Pina.0 = 1 Then Robot = Ustavi Naslednji izziv:
Precej nerodno bi bilo, če bi morali avtomobili zaznavati predmete le z dotikom... Zato je bolje, če lahko predmete v okolici zaznavamo brez-kontaktno, na primer z infra-rdečim senzorjem razdalje.
Namestite IR senzor razdalje na sprednji del robota kot prikazuje shema na desni in ga priključite na 3-pinski priključek A4 (puščica na konektorju senzorja je priključena na GND).
Preskusite program, kjer se prižiga več lučk, čim manjša je oddaljenost od senzorja do predmeta. S tem preizkušamo delovanje senzorja. Izogib oviram
Sedaj zapišite program, kjer bo robot zaznal oviro še preden se zaleti vanjo. Program dopolnite tako, da bo robotek oviro obšel.
'----=GLAVNI PROGRAM=-----------
Robot = Naprej Do Razdalja = Getadc(4) If Razdalja > 400 Then Robot = Ustavi Exit Do End If Loop Naslednji izziv:
Dopolnite program tako, da bo robotek obšel oviro.
Senzorji SENZORJIS senzorji lahko pretvarjamo neko fizikalno količino (osvetljenost, temperaturo, vlagko ...) v neko električno količino (največkrat napetost). Dva senzorja smo že spoznali (senzor dotika in senzor razdalje), poglejmo si še nekaj senzorjev...
Sestavili bomo še svetlobni senzor, kjer bomo uporabili forotranzistor in upor, ki sta vezana zaporedno v delilnik napetosti.
Kako namestimo svetlobni senzor si oglej s pomočjo slik na desni.
Svetlobni senzor (rumena kocka s črnim pokrovčkom) eno žico vežemo na +5V (rdeče označen priključek, katerega se vidi, če snamete pokrovček) in drugo žico na A0.
Nato dodamo še upor velikosti cca. 470 kOhmov med A0 in GND.
Najprej testiramo, ali senzor deluje. To preverimo s programom.
Lučko bomo potrebovali zato, da bo naš robotek manj odvisen od okoliške svetlobe. Tako bo lahko sam osvetljeval tla pod sabo in zato bolje ločil temno in svetlo podlago.
LUČKO priključimo na C4 in GND ...Vožnja po črtiPravzaprav bo robot vozil po robu črte. Program bomo napisali tako, da bo v neskončni zanki stano preverjal izhodni signal senzorja in ustrezno odreagiral:
'----=GLAVNI PROGRAM=-----------
Portc.4 = 1 Wait 1 Do Svetloba = Getadc(0) If Svetloba < 800 Then Robot = Levo_naprej Else Robot = Desno_naprej End If Waitms 50 Loop |
Oglej si tudi naslednje povezave: eProDas-Rob1 , Digitalni izhod