Med NXT komponenter med en mikro-Controller (3 / 6 steg)

Steg 3: Motorn



The NXT motor är en mycket trevlig del av maskinvaran och är också ganska lätt att använda. Det har en 9V DC motor med växellåda och en dubbel kodare med en upplösning på ca 1 grad.

Stift 1 och 2 är leads för DC-motor. Tillämpa en potential, och motorn visar. Switch stift och motorn vänder åt andra hållet. Det är så enkelt. Jag använder en H bro för detta.

Kodaren är nästan lika enkelt. Stift 3 är marken och stift 4 är Vcc (5V). Dessa leverera ström till kodaren. Stift 5 och Pin 6 är de två utgångarna för kodare. I fall någon är obekant med dubbel pulsgivare, är här hur de fungerar:

Bifogat till motor växellådan är någonstans en encoder hjul som har en massa radiella platser i den. Det visar med resten av växellådan. Två infraröda sensorer placeras så att den radiella slots och ekrar alternativt bryta och återställa den IR-strålen, orsakar alternerande 1 och 0 är. Så, när motorn vänder, antingen linje kommer att läsa 101010101010 med en hastighet som bestäms av graden av motorn. Detta är användbart för hastighet och översättning. Mer 1 och 0 är, ju längre du har gått. Ju snabbare det växlar, ju snabbare du kommer.
Så varför behöver vi två pulsgivare? För att bestämma riktning. Eftersom de två IR-sensorerna är förskjutna, utgång de ett mönster som är specifik för rotationsriktning. Om motorn visar ett sätt, de kommer ut (Pin 5 Pin 6) 10-11, 00, 01, upprepa. Om motorn vänder åt andra hållet, mönstret är omvänd: 11, 00, 01, 10, upprepa. Genom att titta på mönstret, kan du bestämma riktningen av rotation. Jag skulle få specifika om medurs och moturs, men det beror på hur du håller motorn och är verkligen lätt att räkna ut på din egen genom experiment.

Kodning grundläggande stämpeln för att använda kodaren:
För att bestämma hastigheten på motorn, använda jag funktionen antal. Helt enkelt räkna antalet impulser från antingen encoder stift för en viss tid och du kommer att få ett antal proportionellt mot hastigheten på motorn.

GREVE Pin5, 100, hastighet

För att vänta på ett visst antal cykler, jag använder ett PULSIN kommando inuti en for-loop. PULSIN gör BS2 vänta nästa puls från kodaren innan du fortsätter till nästa steg av slingan. Denna kod kommer vänta n pulser. Variabeln "variabel" är inte viktigt, men kan också användas för att bestämma hastigheten i teorin.

FÖR i = 1 till n
PULSIN Pin5, 1, variabel
NÄSTA

Avgörande är lite svårare. Jag har stämpeln vänta tills kodaren når ett konkret steg i cykeln som 11 genom att använda en if uttalande i en loop. När ett steg har nåtts, jag kollar för att se vilka steg kommer nästa (i detta fall, antingen 10 eller 01) med ett par av om uttalanden i en annan slinga. Beroende på vilket steg kommer nästa, kan du bestämma hur motorn vänder.

Det är också möjligt att använda denna metod att passivt mäta absolut förskjutningen av motorn. Turning en riktning kommer att lägga till förskjutningen, medan vrida åt andra hållet kommer att subtrahera. Detta sätt, om du börjar på 0, vrid motorn en viss vinkel, och vända det, bör du gå tillbaka till 0 snarare än avståndet omfattas. Denna kod kontrollerar riktning en gång per cykel och sedan lägger till eller tas bort 1 från deplacement därmed. Det fungerar vid måttliga varvtal, men inte vid höga hastigheter på grund av den stämpeln klockfrekvens.

pin5 PIN 1
pin6 PIN 0
Disp VAR ordet

loop1:
OM pin5 = 1 och pin6 = 1 då riktning ' vänta 11 encoder steg
Gå till loop1

riktning:
OM pin5 = 0 då cw ' se vilka stift går låg först att bestämma riktning
OM pin6 = 0 då ccw
Gå till riktning

CW:
Disp = disp + 1 ' i det här exemplet jag gjorde medurs positiva och moturs negativ.
FELSÖKA? disp
Gå till loop1

CCW:
Disp = disp-1
FELSÖKA? disp
Gå till loop1

Jag försökte skriva kod för att göra detta på grundval av steg för steg så att istället för att vänta 11 att komma, det skulle kontrollera riktning vid varje steg 4 gånger noggrannhet. Tyvärr, stämpeln inte kör tillräckligt snabbt för att. En snabbare mikrokontroller skulle kunna hantera den. Här är koden, men igen det fungerar bara med mycket låga hastigheter.

Första fastställs koden vilket steg kodaren börjar på och leder till subrutinen motsvarar det steget.
Deplacement börjar på 1 på grund av en inneboende fencepost fel.
Varje subrutin ser på vad föregående steg. Om det föregående steget var CCW av detta steg sedan motorn vände CW och 1 läggs. Annars CCW är standard och 1 dras. (Fencepost fel inträffar här men är inte alltför viktigt)
Nästa, subrutinen väntar nästa steg och går sedan till subrutinen motsvarar det steget.
Det fungerar bra i teorin men det finns alltför många kommandon för varje steg så BS2 inte kan hantera det tillräckligt snabbt.

en PIN 0
b PIN 1
lasta VAR lite
lastb VAR lite
Disp VAR ordet
DEP = 1

INPUT en
INPUT b

lasta = en
lastb = b

OM en = 1 då a1
OM b = 1 sedan S01
GÅ TILL S00

a1:
OM b = 1 sedan S11
GÅ TILL S10

S01:
Disp = disp-1
OM lasta = 1 och lastb = 1 då disp = disp + 2
FELSÖKA? disp
lasta = 0
lastb = 1
S01Loop:
OM en = 1 och b = 1 sedan S11
OM en = 0 och b = 0 då S00
Gå till S01Loop

S11:
Disp = disp-1
OM lasta = 1 och lastb = 0 då disp = disp + 2
FELSÖKA? disp
lasta = 1
lastb = 1
S11Loop:
OM en = 1 och b = 0 då S10
OM en = 0 och b = 1 sedan S01
Gå till S11Loop

S10:
Disp = disp-1
OM lasta = 0 AND lastb = 0 då disp = disp + 2
FELSÖKA? disp
lasta = 1
lastb = 0
S10Loop:
OM en = 1 och b = 1 sedan S11
OM en = 0 och b = 0 då S00
Gå till S10Loop

S00:
Disp = disp-1
OM lasta = 0 AND lastb = 1 då disp = disp + 2
FELSÖKA? disp
lasta = 0
lastb = 0
S00Loop:
OM en = 1 och b = 0 då S10
OM en = 0 och b = 1 sedan S01
Gå till S00Loop

Se Steg
Relaterade Ämnen

Smart buss bokningssystem med bult mikro-controller

Hej där stipendiaten uppfinnare,Jag vill dela några erfarenheter som mig och mitt lag fick samtidigt skapa ett Smart buss bokning system projekt som ledde mig att använda en Arduino och amazing bulten mikro-controller.Varför?Samtidigt reser genom en...

Komma igång med en 8051 mikro-controller

Hej allaJag älskar mikro-kontrollanter projekt. Jag använder ofta både Arduino kort och "nakna" AVR mikro-controller (ATTINY och ATMEGA enheter) för mina projekt.För min kultur, jag väljer att läsa en annan typ av mikro-styrenheter, de som baser...

Förbättra fiberoptiska display med lysdioder och mikro-controller.

Denna härliga fibre optic bonsaiträd var död, strömförsörjningen var ingen där för att vara funnit, men viktigare, motorn var död. Detta var en långsam roterande motor som inte är något som jag kan hitta en lätt ersättning för. Förbättringen var främ...

FM-radio med TEA5767 och PIC16F877A mikro-controller

TEA5767 enkel-flisa FM-stereoradio.----------------------------------------------------------------------------* Hög känslighet på grund av integrerade tystgående RF input förstärkaren* FM mixer för konvertering till om USA / Europa (87,5 MHz till 10...

Färg ljus Mixer med "Stämpel" Controller

detta Instructable lär ut hur en grundläggande inbäddad styrenhet kan programmeras att styra lysdioder (av primärfärgerna) sådan att rött, grönt och blått ljus kan blandas för att skapa ett fullt spektrum av färger. Optiska effekter som skapas på gru...

Använda en Arduino med en N64 controller

det finns tutorials ute för att använda en NES-kontrollant med en Arduino, men med mer komplicerade N64 controller och dess analog styrspak har en bestämd vädjan. Om du har en Arduino runt och vill inte köpa gör en Adaptoid, detta instructable det mö...

Arduino lins Controller - synkroniseras Zoom/fokus med Wii Classic Controller

min Lumix GH2 Micro Four Thirds kamera skjuter inte bara fantastiskt hög definitionen video, men med billiga adaptrar kan jag använda den med äldre manuella objektiv som är billig och ofta mycket hög kvalitet. Jag skjuter en hel del prestanda videor...

Kommunicera med arduino micro controller och dator via usb med en vb program

Om du är som mig och vill kunna styra dina objekt anslutna till din arduino via datorn måste du ett sätt att upprätta en anslutning och kommunicera med din arduino från datorn. Denna video och handledning visar dig hur man gör just det! Jag har tagit...

LED PWM med Smart Servo Controller

I den här demon ska jag visa dig hur du ansluter en färg LED till den smarta Servo Controller.Den smarta Servo Controller kan produktionen hög hastighet PWM signaler som är lämpliga för driva lysdioder. För hög effekt leds måste du använda transistor...

Titanium elektriska grodyngel Recumbent Full Suspension Trike med DIY Motor Controller

intervju med en kille som gjort denna trike 25 år sedan. Han fick en massa Titan super billiga på en bilskrot och lärde sig att svetsa det.Dessa är tre videor jag sköt när jag gick över till besöka honom.Ämne omfattas inkluderar:-Ackerman styrning-En...

Avstånd att hålla robot med Smart Servo Controller

Denna demo jag ska visa dig hur du använder smarta Servo Controller för att göra en robot hålla avstånd.Den använder två kontinuerlig rotation servomotorer och en distansera sensor. Den smarta Servo Controller används för att skapa en PID-Controller....

Klädde med filt Nintendo controller

Denna filt controller gjordes för användning med Makey Makey och kan användas till att spela en mängd olika spel. Du kan göra ganska mycket någon du gillar men detta prov var från den ursprungliga Nintendo Entertainment System.Material som behövs1 bi...

Spela Minecraft på mac med xbox 360 controller

HEY GUYS!Jag har spelat Minecraft på xbox 360 och på datorn. För att vara ärlig den dator versionen är mycket bättre men den xbox upplagan är sättet lättare att spela Xbox 360-versionen.Så är här lösningen.Titta på min andra Instructable kallas, hur...

Simon säger spel med unika "twister" controller

jag gjorde detta projekt för ett sista klass projekt i min crafting tekniker klass här senaste terminen. Målet med detta projekt är att göra en kontroll pad ur twister styrelsen för varje makey makey spel. Jag använde min kontroll ombord för en Simon...

Hur man skapar en Scratch spel med Makey Makey controller på en Raspberry Pi

I detta instructable du får lära dig hur man gör en enkel spelet i början på en Raspberry Pi; för att göra spelet roligare kommer du att kontrollera den med verkliga objekt (frukt och grönsaker) via en Makey Makey.Du behöver:En Raspberry Pi mini dato...

3P4W LED-klocka med temperatur Display

Detta är en enkel klocka projekt baserad på ti MSP430G2231. MSP430G2231 mikro-controller kommer ingår i $4.30 TI Launchpad kit. Projektets mål är att skapa en fungerande klocka med minimal komponenter. För att uppnå detta mål, utelämnades strömbegrän...

ESP8266-1 aktiverade RC vände Wifi bil med webbläsare kontrolleras riktning.

Projektet är tänkt för att visa förmåga av grundläggande IoT enheter. Syftet var att kontrollera rörelse i en bil via webbläsare. Jag hade några alternativ för att uppnå detta - 1) över webben, direkt styra motorn på bilen av en WiFi-modul, 2) Konfig...

Gränsyta för motorer med Arduino

Gränsyta för olika typer av motorer med en mikro-controller är bland de mest grundläggande färdigheter en maker/robotics entusiasten behov att bemästra. I detta projekt ska jag bygga upp på den tidigare projektet Smart telefon kontrollerad LED-lampor...

Digital ic testare med pic mikrokontroller

Digital IC testare med pic16f877a mikro-controllerstödjande enheter740074027404740774087432748674266...