|
Övning med
BasicX-24, sensorer och aktuatorer.
BasicX-24
är en liten microcontroller som programmeras i en
Basic-dialekt, ganska lik Visual Basic. Den är relativt
kraftfull och är mycket enkel att komma igång med,
jämfört med andra plattformar för inbyggda system.
Övningen går ut på att ni ska bekanta er med
utvecklingsmiljön och programmeringsspråket, samt få
praktisk erfarenhet av att använda några olika sensorer och
aktuatorer.
Ni behöver följande saker
(per grupp):
- En USB-till-serie kabel (+ drivrutiner på CD om ni
inte tidigare installerat dessa)
- En transformator (nätaggregat)
- En multimeter, för att mäta resistans,
spänning och ström
- Ett kit med tänger och elektronikskruvmejslar
- En lödstation
- Lödtenn
- Ett BasicX-24 chip
- En experimentplatta
- En 9-polig DSUB kontakt
- Ett par decimeter telefonsladd (4 ledare)
- Ett DC-jack, 2.1 mm, för anslutning av
spänningmatning
- 1 decimeter svart och 1 decimeter röd sladd
- 1 st ULN2003A Darlington-drivkrets
- 1 st 7805 5-volts spänningsregulator
- 1 st Crouzet GA8-6B02 halvledarrelä
- 1 st GP2D12 IR-baserad avståndssensor
- 1 bit stiftlist med 4 ben (klipp av med en
avbitartång)
- 1 st tryckknapp (röd).
- 1 st LDR-motstånd
- 1 st FSR-motstånd
- 1 st linjär skjutpotentiometer, 10k eller 100k Ohm.
- 1 st LED
- 1 passande motstånd för att begränsa
strömmen genom lysdioden, några hundra Ohm.
- 1 st fläkt, 12V
- Mjukvara, utvecklingsmiljön
för BasicX-24, V2.10.
Förberedelser
- Installera programmet med utvecklingsmiljön för
BX-24
- Koppla in en USB-till-Serie kabel och installera
drivrutiner vid behov. Kontrollera vilken serieport (Com-port) som du
fick.
- Löd ihop en sladd för seriell kommunikation
mellan BX-24 och din PC. Använd den vita telefonsladden med fyra
ledare. Sätt en stiftlist med 4 pinnar i ena änden, och en
9-polig DSUB-kontakt i andra änden. Se sid 16 i BasicX-24
hårdvarumanual för detaljer om hur sladden ska kopplas.
- Löd ihop en sladd för spänningsmatning till
BX-24. Använd ett 2.1 mm DC-jack och en bit svart (jord)
respektive röd sladd. BX-24 har en inbyggd spänningsregulator
som klarar inspänningar på mellan 5.5 och 15 Volt.
Spänningsregulatorn kan leverera 100mA, varav BX-24:an
använder ca 30mA. Behöver du mer än 70mA till dina
överiga kretsar så måste du använda en extern
spänningsregulator, t.ex. en 7805.
- Kontrollera att transformatorn har rätt
utspänning
(mellan 6 och 12 Volt) samt rätt polaritet (plus i mitten, jord
runtom). Kontrollera med multimeter om du är osäker.
- Visa för handledare innan du kopplar in allting.
Tom Igoe på NYU beskriver
tydligt hur man kan koppla in en BX-24 på en experimentplatta.
Övningar
1. Koppla in en tryckknapp och skriv ett program som visar om knappen
är intryckt eller inte på skärmen. Det kan t.ex. se ut
så här:
Option Explicit
Public Sub Main() Dim knapp as Byte
Do knapp = GetPin(12) Debug.Print CStr(knapp) Call Delay(0.5) Loop End Sub
I programmet deklareras en variabel, knapp,
av datatypen Byte. Sedan kommer en evig loop som läser av
värdet (0 eller 1) på pin 12 på BX-24. Detta
förutsätter att tryckknappen är inkopplad på just
pin 12. Det logiska värdet 0 motsvaras av att spänningen
på pin 12 är 0 Volt,. Om spänningen istället
är 5 Volt blir det logiska värdet som läses av 1.
Nästa rad, Debug.Print
CStr(knapp), gör först om värdet i variabeln
knapp till en sträng, och skriver sedan ut denna på
skärmen på din dator, under förutsättning att du
har aktiverat Monitor Port i
I/O Ports-menyn.
Tryckknappen ska kopplas in till pin 12 så att insignalen till
pin 12 antingen blir 0 eller 5 Volt. Detta gör man lättast
genom att koppla ena sidan på tryckknappen til jord och den andra
till pin 12. Dessutom måste man använda ett pull-up
motstånd. Man kan använda ett vanligt motstånd
på ca 100 kOhm och koppla in detta externt, eller så kan
man använda sig av de inbyggda pull-up motstånden. Aktivera
pull-up på pin 12 genom att välja Chip i Project-menyn i
BasicX-editorn. Kryssa för pin 12 i P-kolumnen.
2. Koppla insignalen från tryckknappen till en lysdiod, t.ex.
på pin 13. Lysdioden ska kopplas in så att den drivs
från 5 Volt, via ett strömbegränsande motstånd
(ett par hundra Ohm) och in på pin 13. Pin 13 konfigureras som en
utgång. Om utsignalen på pin 13 är 0 kommer lysdioden
att lysa, och om den är 1 kommer lysdioden att vara släckt.
Så här kan programmet se ut:
Option Explicit
Public Sub Main() Dim knapp as Byte
Do knapp = GetPin(12) Call PutPin(13,knapp) Debug.Print CStr(knapp) Call Delay(0.5) Loop End Sub
Tryckknappen kan bytas ut mot ett dörr/fönster-larm, som
egentligen är en Reed-sensor. Den sluter en elektrisk krets om en
magnet finns tillräckligt nära (någon centimeter),
annars blir det elektriskt avbrott.
3. Koppla in en resistiv ljussensor, ett LDR-motstånd. Koppla in
till pin 14 med spänningsdelning mellan LDR-motståndet och
ett fast motstånd.
Option Explicit
Public Sub Main() Dim LDR as Integer
Do LDR = GetADC(14) Debug.Print CStr(LDR) Call Delay(0.5) Loop End Sub
Programmet ovan använder den inbyggda 10-bitars A/D-omvandlaren
och skriver ut ett heltal mellan 0 (0 Volt) och 1023 (5 Volt) på
skärmen.
4. Byt ut LDR-motståndet mot andra resistiva sensorer.
Prova med en tryckkänslig sensor (FSR) och ett linjärt
skjutmostånd. Det finns även resistiva böjsensorer och
luftfuktighetssensorer att tillgå, prata med handledaren för
att prova dessa.
5. Koppla in en Sharp GP2D12 infraröd
avståndssensor. Använd GetADC(). GP2D12 drar för mycket
ström för att BX-24:an ska orka med den själv. Koppla in
en 7805 spänningsregulator för att driva GP2D12.
6. Skriv ett program som vid ett visst gränsvärde
på insignalen (som motsvaras av t.ex. hur hårt man trycker
på FSR-sensorn) tänder resp. släcker lysdioden.
7. Koppla in ett effektsteg för att styra en större
last, i det här fallet en 12V-fläkt. Använd ett ULN2803
Darlington-drivsteg. Starta resp. stanna motorn på samma
sätt som ovan (met ett gränsvärde på en sensor).
8. Löd ihop en sladd för att styra en
högspänningslast. Använd ett Crouzet GA8-6B02
halvledarrelä. Koppla in en skrivbordslampa och styr från
BX-24 på samma sätt som ovan. Handledare måste
godkänna kopplingen innan ni kopplar in den. Var noga med att
isolera alla högspänningsdelar.
9. Använd pulsbreddsmodulering (PWM) för att styra
varvtalet på fläkten och/eller ljusstyrkan på
lysdioden. Hjälp: Introduction
to PWM (Pulse Width Modulation).
10. Extra uppgifter. Koppa in ett Peltierelement (som blir varmt resp.
kallt) och styr m.h.a. pulsbreddsmodulering via en ULN2803. Styr
värme/kyla med en Sharp GP2D12.
Elektronik mm som används
under övningen:
Annan elektronik som finns
tillgänglig:
- 2-axis accelerometer from Analog Devices, AXDL202.
Datasheet. Program code etc for BX-24.
- Ultraljudsbaserad avståndsmätare (sonar)
från Polaroid, Series 6500. Datablad.
Mer
teknisk information. Programkod
m.m. för BX-24.
- Liten RFID-läsare för Hitag2-taggar (125 kHz, kan
både läsas och skrivas till) från IB Technology. Taggar
tillverkas bl.a. av Metget AB och AEG Identifikationssysteme GmbH.
- Minilarm med IR, från Clas Ohlson. Sök på
art.nr 32-1196.
- GP2Y0A02YK,
infraröd avståndsmätare från Sharp.
Fungerar i intervallet 20..150 cm. Datasheet.
- Vector 2X,
digital compass from Precision Navigation, Inc. 1 degree resolution, 2
degrees accuracy. Datasheet.
- SRF04, ultraljudsbaserad avståndsmätare (sonar)
från Devantech. Programkod
m.m. för BX-24.
- SRF08 ultraljudsbaserad avståndsmätare (sonar)
från Devantech. Nyare version som kan detektera mutilpa ekon.
I2C-kommunikation. Programkod
m.m. för BX-24.
- QProx kapacitiva
närhetssensorer.
- AddLink
868MHz transceivermodul från RF Solutions (tidigare
AdCon) med inbyggd basbandskontroller samt antenn. Max 38.4 kbps
dataöverföringshastighet, upp till 300 meter. Klarar
punkt-till-punkt förbindelser samt ad-hoc nät med upp till
128 noder. Datablad. Tech Guide. Integration manual.
- Bluetooth moduler från Free2Move.
- Smart-Its devices
developed by the Smart-Its consortium. Technical
information and pictures.
- MXR2999GL,
2-axis accelerometer with analog ratiometric output, from Memsic. Datasheet.
- SHT71,
digital sensor for relative humidity and temperature from Sensirion. Datasheet.
- Reed switches. Basic info.
Kondensatorer (capacitors). Basic info.
Mostånd (resistors). Basic info.
BX-24
App Notes from NetMedia.
Physical
Computing at ITP, New York University. A course that is very
similar to this one. Lots of relevant online resources.
P.H.
Anderson provides a large collection of source code for interfacing
the BX-24 to various ICs.
Yahoo Groups, Basic-X
24 discussion forum.
|
|