Ívafin raftækni

From Fab Lab Wiki - by NMÍ Kvikan
Revision as of 17:41, 15 June 2009 by Spm (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Îvafin raftækni (e embedded electronics).

Inngangur að ívafinni raftækni

Þetta er inngangur að ívafinni raftækni ætluð fólki sem er komið með smá bakgrunn í rafmagnsfræi og rafeindatækni. Það er gert ráð fyrir að þú vitir hvað rafmagn er og að þú hafir snert rafíhluti einhverntíman. Allt annað reynum við að útskýra eins og hægt er. Það er farið yfir mjög margt í þessu, þessu, þannig að þú skalt gefa þér góðan tíma! Hér er ætlunin að láta bókmenntaða rafmagnsverkfræðinema og aðra sem hafa fræðilegar undirstöður en enga verklega kunnáttu til að leggja frá sér blýantinn og vasareikninn og stinga díóðu í samband. Mundu: ef það kemur reykur, þá veistu hvað á ekki að gera næst.

Í þessari kennslu verður stuðist við ATmega168 en hægt er að nota ATmega8 og ATmega88 án breytinga.

Hvað er örstýring?

Kannski veistu hvað OR-hlið er. OR-hlið er rökhlið sem hefur tvö inntök og stýrir einu úttaki - það er kveikt á úttakinu EF að það er kveikt á einhverju inntaki, en ANNARS ekki. Þú hefur kannski unnið með þessa tegund hliða, eða kannski DIP-kubb með fjórum OR-hliðum innbyggðum í hann. Svona DIP kubbar þurftu einn pinna þar sem rafmagn fór inn (kallaður VCC) og einn pinna sem tengdist í jörð (GND). Rafmagnið flæddi um kubbinn og lét hann starfa.

Örstýringar eru í rauninni sama hugmyndin. Þú ert með einhvern fjölda inntaka þar sem rafstraumur er "lesinn", og það einhvern fjölda úttaka þar sem rafstraumur er "skrifaður". Það sem gerir örstýringar ólíkar öðrum svona IC kubbum er að þær keyra kóða: vélamál, nánar tiltekið. Til dæmis gætirðu verið að lesa á pinnum A og B, og stýrt pinna C. Til að herma eftir OR hliði:

if (A == 1 || B == 1) {
       C = 1; 
} else { 
       C = 0;
{

Þetta er C kóði! Þú getur forritað hverslags forrit, vistþýtt þau, hlaðið þau yfir á kubbinn, keyrt kubbinn upp, og þá keyrir forritið. Mjög einfalt! Örstýringar eru notaðar í öllum raftækjunum sem þér finnst svo sjálfsagðar, svo sem örbylgjuofninum, sjónvarpsfjarstýringunni, músinni, prentaranum. Það eru meira en 150 örstýringar í nýjum bílum. Það er einn sem bíður eftir að þú ýtir bremsunni niður (BREMSUR == 1) og að hjólin læsist (HJOLLAEST == 1). Þegar þetta tvennt gerist sleppir örstýringin bremsunum, og þá ertu kominn með ABS bremsur (spólvörn).

Í gamla daga voru örstýringar bara forritanlegar einu sinni. Þú bjóst til forritið, prufukeyrðir það á kubbnum, og ef kubburinn virkaði ekki þá var hann ónýtur - þá henti maður honum og prófaði aftur. Nú eru flestar örstýringar með flash minni, sem þýðir að það má skrifa og endurskrifa minnið mörg þúsund sinnum áður en að kubburinn verður ónýtur. Oftast nær skemmir maður örstýringuna fyrir slysni löngu áður en að minnið skemmist.

Örstýringar eru ólíkar venjulegum borðtölvum. Slíkar tölvur þurfa hellings afl og fullt af íhlutum til að þær virki. Þær eru heillengi að fara í gang og þær hitna svakalega. Örstýringar kveikja á sér og byrja að vinna á nokkrum millisekúndum og ef þær eru nógu heitar til að þú finnir fyrir því er eitthvað alvarlegt að og þú hefur sennilega skemmt stýringuna. Og já, vel á minnst - örstýringar kosta sirka 300 kall.

Snúum okkur aftur að dæminu með OR-hliðið. Það voru fjölmargir pinnar á honum, og allir voru þeir annaðhvort inntök eða úttök fyrir hin ýmsu OR hlið í pakkningunni (fjögur hlið í einni pakkningu = 8 inntök, 4 úttök, og svo VCC/GND pinnar). 14 pinnar! Í örstýringum eru flestir pinnar GPIO pinnar - general purpose input/output. Þessir GPIO pinnar geta verið bæði inntök og úttök. Mjög töff. Hvern inntakspinna má lesa og vinna með. Dæmi:

if (PORTC.2 == 1)
       gera eitthvað

Hver úttakspinni getur verið ýmist "í gangi" (hátt eða 1) eða "slökkt" (lágt eða 0). Dæmi:

while(1) {
       RB3 = 1;
       delay_ms(1000);
       RB3 = 0;
       delay_ms(1000);
}

Giskaðu hvað þessi kóði gerir? Hann kveikir á pinna, bíður í sekúndu, slekkur á honum, bíður í sekúndu. Þetta er Hello World örstýringinna. Þetta virðist einfallt, en þegar þú ert búinn að eyða fimm klukkutímum í að rífa úr þér hárið vegna þess að þú færð ekkert til að virka getur það að sjá díóðu blikka í fyrsta skiptið verið alveg frábær tilfinning.

Hverskonar örstýringar eru til og hvernig læt ég þá blikka?

Hér er smá samantekt á mismunandi gerðum örstýringa:

  • PIC - Þetta eru klassísku örstýringarnar frá Microchip. Mjög einfaldir og sannreyndir, en þá skortir marga eiginleika sem aðrir framleiðendur eru að nota. Sumir standa og falla með PIC, aðrir vilja fá fleiri eiginleika.
  • AVR - Þetta eru aðal keppniautar PIC. Framleiddir af norska fyrirtækinu Atmel. Þeir geta allt sem PIC geta, en líka margt annað, og eru yfirleitt ódýrari í þokkabót.
  • MSP - Örstýringar frá Texas Instruments. Ekki jafn kraftmiklir og AVR eða PIC, en henta rosalega vel í hluti sem þurfa að nota lítið afl. Meira um þetta síðar, en ímyndaðu þér að keyra tölvu á einni AA rafhlöðu í fimm ár. Þetta er raunhæft með stýringum sem hafa nanóampera orkuneyslu.
  • ARM - Mjög ungir örgjörvar sem eru ótrúlega öflugir og ótrúlega ódýrir, en þeir eru tiltölulega flóknir samanborið við aðrar örstýringar.
  • 8051 - Þessi örstýring hafði ákveðin greini heillengi: þetta var örstýringin. Intel framleiddi þá á níunda áratugnum, og hann er enn notaður til kennslu. Þetta er mjög gamaldags tækni, en þær eru ennþá þróaðar og hafa núna flash minni og ýmislegt í þeim dúr. Þetta var örstýringin í gömlu Nintendo tölvunum.
  • 68HC08/11 - Önnur algeng örstýring, þessi er frá Motorola. Rosalega vinsæl hér áður fyrr og enn kennd í háskólum.

Það er hægt að finna mjög nákvæmar upplýsingar um allar þessar örstýringar á netinu, en hér verður stuðist við ATmega168. Hvers vegna?

  • 20 MIPs (milljónir aðgerða á sekúndu), sem er nóg til að gera mjög öfluga hluti.
  • Mjög ódýrir.
  • Eru með innbyggða drivera fyrir flest - UART, SPI, I2C, ADC, innbyggður kristall, PWM...
  • 16 KB af forritanlegu minni sem er nóg fyrir flest byrjandaverkefni

Það kostar þig sennilega um 5000 krónur að koma þér af stað í að vinna með örstýringar, plús verkfærin og allt það.

Hvernig byrjarðu?

Allar örstýringar þurfa rafmagn. Það eru tveir pinnar á einföldum örstýringum fyrir rafmagn: VCC og GND. En hvað er VCC? VCC er merkingin fyrir pósitífa spennu. Kvíddu engu, eftir að hafa séð "VCC" nokkrum sinnum fer þér að finnast það venjulegt. GND þýðir Ground, eða jörð. Rafspenna þarf alltaf einhverja leið til að flæða aftur í jörðina.

Það eru til þúsundir tegunda örstýringa, en nánast allar nota 5V spennu. 3.3V er líka algengt en þú getur fundið 2.8V og 1.8V VCC á sumum undarlegari örstýringum. Í bili skaltu bara hugsa um 5V og jörð.

Athugið: Ef þú snýrð tengingunni við þannig að VCC fer í GND og öfugt munu slæmir hlutir gerast. Gættu þess að snúa tengingunni alltaf rétt. Ef þú snýrð þessu öfugt mun ekkert springa, en það er mögulegt að það komi smá reykur, það er líklegt að örstýringin hitni alveg svakalega, og það er nær óhjákvæmilegt að hún skemmist. Þetta mun sennilega koma fyrir þig einhverntíman, en gerðu þitt besta.

En hvar finnurðu 5 volt? Raflagnir í húsinu þínu nota 220V AC. AC er riðstraumur, sem þýðir að straumurinn sveiflast, en það er ekki gott fyrir örstýringar, sem þurfa jafnstraum (DC). Þannig að þú þarft að breyta 220V AC yfir í 5V DC.