MDI/Interaktionsdesign
Interaktionsdesign - Ubiquitous Computing

 
 
program | kurser | studenter | lärare
 
 
 
 


Ö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:

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.




©2003 idc