SLUTRAPPORT MÄTNING AV ACCELERATION HOS BILBANEBIL Per-Emil Eliasson, Claes Fälth, Manne Gustafson, Andreas Gustafsson 6 juni 2003
INNEHÅLL Industriprojekt ISY Innehåll 1 Inledning 2 2 Design av delsystem 3 2.1 Scenario från mätning till MatLab................. 3 2.2 Accelerometer............................. 3 2.3 Allmänt om BASIC STAMP..................... 4 2.3.1 Mikrokontrollerns uppgift i bilen.............. 5 2.3.2 Mikrokontrollerns uppgift på mottagarsidan....... 6 2.4 Radiolänk............................... 6 2.5 Kommunikation med datorn.................... 8 3 Implementering 8 3.1 Hårdvara................................ 8 3.1.1 Bilen.............................. 8 3.1.2 Mottagarenhet........................ 11 3.2 Programbeskrivning......................... 11 4 Felkällor 14 4.1 Accelerometer............................. 14 4.2 Kommunikation............................ 14 4.3 Databehandling............................ 15 5 Budget 15 6 Tidrapport 15 A Bilagor 17 A.1 MATLAB-kod.............................. 17 A.1.1 make_getaccelerationtime.m................ 17 A.1.2 getacceleration.m...................... 17 A.2 C-kod (getacceleration.c)...................... 17 A.3 Basic Stamp-kod............................ 19 A.3.1 sandare.bs2.......................... 19 A.3.2 mottagare.bs2......................... 20 sida 1
1 INLEDNING Industriprojekt ISY 1 Inledning Detta dokument avser att i detalj beskriva hur vi löser uppgiften med att mäta acceleration hos en bilbanebil. Uppgiften utgör ett projekt i kursen Industriprojekt. Projektet genomförs på Fordonssystem, Institutionen för systemteknik på Linköpings universitet, där en bilbana med nödvändiga tillbehör finns att tillgå. Förutom denna rapport finns även en användarhandledning att tillgå där instruktioner för att använda utrustningen är beskrivna. sida 2
2 DESIGN AV DELSYSTEM Industriprojekt ISY 2 Design av delsystem I detta avsnitt beskrivs de olika delsystem som krävs för att mäta och överföra information om bilens acceleration till datorn. Först beskrivs ett scenario där man kan följa hur de olika systemen interagerar vid en typisk mätning. Varje delsystem beskrivs sedan var för sig. 2.1 Scenario från mätning till MatLab Nedan beskrivs alla steg från det att en acceleration påverkar accelerometern till det att mätvärdet fås in i MatLab. Se även figur 1. De olika stegen beskrivs mer detaljerat i respektive delar senare i rapporten. 1. Accelerometern registrerar en acceleration och skickar ut en pulsbreddsmodulerad signal som anger hur stor accelerationen är. 2. Signalen läses av i en Basic Stamp II (BS2). Bredden på pulsen översätts till ett binärt tal (12 bitar) som sedan skickas seriellt till en sändare. Informationen skickas i två byte, á åtta bitar. 3. Sändaren tar emot datan och skickar denna radiomodulerad till en mottagare, vilken i sin tur skickar den mottagna signalen seriellt till en BS2. Informationen läggs ut parallellt på pinnar från BS2. 4. Mätkortet i datorn (NI PCI-6602) läser in de parallella bitarna och kan sedan översätta dessa till ett absolut värde på accelerationen. Genom att anropa en dll-fil ifrån MATLAB kan sedan detta värde användas vid reglering etc. 2.2 Accelerometer Tabell 1: Grunddata för accelerometern Storlek Stöttålighet Upplösning Mätområde Vikt Spänning Ström Temperaturområde Cykeltid ca 11x10x2 mm 50000g 0,2mg / Hz (bandbredd) +/- 2g låg 3,0-5,25 V 2,5 3,9 ma vid 5,0 V 0-70 C 0,01 s Vi har valt att mäta accelerationen med hjälp av en accelerometer av märket Memsic (MXD2125GW). I tabell 1 ges väsentlig grunddata, för ytterligare information se datablad i bilaga. sida 3
2 DESIGN AV DELSYSTEM Industriprojekt ISY Figur 1: Översiktisschema för accelarationsmätning. Utsignalen är digital och pulsbreddsmodulerad. En puls med halva cykelns längd motsvarar accelerationen 0g, en puls med hela cykelns längd motsvarar 2g. Skalan är därtill linjär inom mätområdet. Cykellängden är 0,01 sekunder, vilket betyder att accelerationen 0g motsvarar pulslängden 0,005 sekunder. Vidare är komponenten stöttålig (50000g), vilket underlättar hanteringen, och mätområdet passar vårt syfte väl. Effektförbrukningen är relativt låg (max 19,5 mw ), varför det är möjligt att driva komponenten direkt från BSII-kretsen. Även detta underlättar vid implementationen. Här bör påpekas att det finns accelerometrar på marknaden som har ställbar cykeltid, vilket skulle kunna vara en fördel. De accelerometrar med denna egenskap vi hittat har dock avsevärt lägre stöttålighet. Detta anser vi olämpligt då bilarna ofta kör av och utsätts för omild hantering som kan ge upphov till mycket kraftiga accelerationer. Vi har därför anpassat resten av designen så att en cykeltid på 0,01 sekunder kan användas. Upplösningen beror på hur snabbt accelerationen som mäts varierar, se tabell 1. Hur mycket detta påverkar noggrannheten är svårt att uppskatta, då accelerationens bandbredd är svåråtkomlig. Ett försök har dock gjorts, se avsnitt 4 om feluppskattning. 2.3 Allmänt om BASIC STAMP I bilen samt på mottagarsidan sitter en modul kallad Basic Stamp tillverkad av företaget Parallax Inc. Basic Stamp är en mikrokontroller som är designad för att användas i en rad olika tillämpningar. Basic Stamp består av ett Basic Interpretor chip, ett minne i form av ett EEPROM, en 5-volts regulator och 16 sida 4
2 DESIGN AV DELSYSTEM Industriprojekt ISY I/O pinnar som programmeras enligt önskemål. I mikrokontrollern finns ett antal inbyggda kommandon för matematiska operationer samt operationer för I/O pinnarna. Mikrokontrollern programmeras med en förenklad variant av BASIC kallad PBASIC. PBASIC är utvecklat av Parallax och innehåller många traditionella BASIC kommandon men också helt unika kommandon avsedda för Basic Stamp. Programmeringen av mikrokontrollern sker med hjälp av BASIC Stamp Editor som finns tillgänglig både för Windows och DOS. Genom att placera Basic Stamp på ett s.k. Carrier board försett med en DB9 kontakt överförs sedan programmet via datorns serieport till EEPROM:et. Brädan innehåller förutom DB9 porten och sockel för BS2-IC även en resetknapp och en kontakt för ett 9-volts batteri. I vårt fall använder vi den medföljande Basic Stamp II Carrier board vid programmering av mikrokontrollern. Pga utrymmesskäl i bilen, och av andra praktiska skäl på mottagarsidan, använder vi oss av rena monteringskort som vi förser med sockel för BS2-IC samt kontakt för spänningsmatning. 2.3.1 Mikrokontrollerns uppgift i bilen Mikrokontrollerns uppgift i bilen är att ta emot signalen från accelerometern och omvandla denna till en binär signal som är väl anpassad för den aktuella sändaren. Signalen från accelerometern utgörs enligt ovanstående beskrivning av en pulsbreddsmodulerad signal beroende av uppmätt acceleration. Denna signal appliceras på en utav mikrokontrollerns I/O-pinnar som definierats som ingång. Mikrokontrollern har ett antal inbyggda kommandon för operationer på I/O-pinnarna. I detta fall använder vi PULSIN. PULSIN tar följande tre argument som definierar funktionen: Pin Variabel (0-15) som specificerar vilken I/O-pinne som skall användas. Denna sätts automatiskt till ingång. State Variabel (0-1) som anger om signalen som ska mätas är hög (1) eller låg (0). Variable Variabel där den uppmätta tiden lagras. PULSIN fungerar som ett stoppur som triggar på signalens inledande flank. Tiden mäts i enheter av 2ms. BS2 läser av porten med PULSIN som samtidigt omvandlar och lagrar den uppmätta tidssignalen som ett 16 bitar långt digitalt ord. För accelerometerns utsignal gäller T2 = 0.01 [s] = 5 000 [2ms]. Eftersom vi ska mäta accelerationer i området ca ±1g kommer den av PULSIN lagrade variabeln vara av storleksordningen 1250 [2ms] - 3750 [2ms]. Kommunikationen mellan BS2 och sändaren sker seriellt med hjälp av kommandot SEROUT. SEROUT tar följande argument: Pin Samma som för PULSIN ovan. sida 5
2 DESIGN AV DELSYSTEM Industriprojekt ISY Baudmode Variabel som definierar seriell timing och konfiguration. I vårt fall använder vi baudmode 16780 vilket ger en överföringshastighet på 2400bps utan paritetsbit. Outputdata Data som skall skickas i form av variabler eller konstanter. Här anges också hur SEROUT ska formatera utgående data. SEROUT skickar alla 16 bitar grupperade i 2 bytes. När värdet har skickats till sändaren återgår BS2 till att trigga på ny signal från accelerometern. Utöver datahanteringen låter vi även BS2 ombesörja matningsspänningen till lysdioden på biltaket. 2.3.2 Mikrokontrollerns uppgift på mottagarsidan I den stationära mottagarlådan sitter dels radiomottagaren och dels en BS2. BS2:s huvudsakliga uppgift är att omvandla den från radiomottagaren erhållna seriella signalen till en parallell signal. Signalen tas emot av BS2 med kommandot SERIN. SERIN har i vårt fall samma argument som SEROUT bortsett från att Outputdata istället är den variabeln där man önskar lagra mottagen data. Den parallella signalen skickas sedan ut till PC:ns mätkort, DAQ 6602. Före PC:n läser av mätkortet måste denna kontrollera att en viss kontrollbit är hög. Detta för att förhindra att datorn läser av mätkortet samtidigt som BS2 uppdaterar mätningen. När BS2 har lagt ut nya mätningen återgår BS2 till att trigga på ny signal från radiomottagaren. 2.4 Radiolänk Den uppmätta pulsbredden skickas seriellt från Basic Stamp II till en sändare. Datan skickas sedan via radio till en mottagare. Radiomoduleringen sker i komponenterna, vilket gör att vi slipper skriva egna protokoll för överföringen mellan sändare och mottagare. På grund av bristande information i datablad hos tillverkare (RFDigital) så finns det vissa frågetecken vad gäller sändningshastighet etc. för radiolänkarna (RF Digital, RFD27995/RFD27996 - se figur 2). Dock är dessa anpassade för att användas med Basic Stamp, vilket gör att vi gärna vill använda dem trots den bristande informationen. Efter att ha testsänt med länken kan vi konstatera att överföringshastigheten är till belåtenhet. Vi klarar av att mäta accelerometervärdet och överföra detsamma med en frekvens av 50 Hz. Sändaren/mottagaren kan skicka/ta emot data med 2400 baud. Eftersom varje mätvärde innehåller 12 bitar behövs det två 8-bitars ord för att överföra datan. Dessa två ord skickas i ett sträck, med hjälp av BS2:s kommando SEROUT. En schematisk bild över mätnings- och sändningsförloppet kan ses i figur 3. sida 6
2 DESIGN AV DELSYSTEM Industriprojekt ISY Figur 2: Sändare och mottagare av typ RFD27995/ RFD27996. Höjd för sändaren är c:a 5 cm utan antenn. Figur 3: Tidsschema för mätning och sändning av data. Siffror anger ungefärlig tid i millisekunder för varje aktivitet. sida 7
3 IMPLEMENTERING Industriprojekt ISY 2.5 Kommunikation med datorn För att göra beräkningar och presentera uppmätta data använder vi en PC. Data tas in i PC:n med befintligt mätkort, DAQ 6602 från National instruments. Detta kommunicerar med programmet MATLAB, i vilket accelerationsvärdena kan fås genom att anropa funktionen getacceleration. Värdena kan sedan användas kontinuerligt för integrering till aktuell hastighet hos bilen eller annan önskad beräkning eller reglering. En felkontroll av accelerationsvärdena görs också och en flagga sätts om erhållet accelerationsvärde är orimligt. Det är sedan upp till användaren hur felhantering ska ske. Program för att styra datahanteringen på mätkortet utvecklas i programpaketet LabWindows/CVI och skrivs i C-kod. Koden kompileras sedan till en.dll-fil som kan köras i MATLAB. För att åstadkomma kompatibiliteten med MATLAB används MATLAB-toolboxen, DataAcquisition Toolbox 1.0 från MathWorks Inc. I denna finns en funktion, mexfunction, vilken man sätter som huvudfunktion i C-koden och vid kompilering är det sedan denna funktion som gör kopplingen till MATLAB. För att enkelt kunna ändra i C-koden och kompilera om, skapas en make-fil som anropas från MATLAB. Program som skapas för datahantering och körning av bilbana med accelerationsmätning kallas get_acceleration respektive manuell (se programbeskrivning, avsnitt 3.2). Mätkortet har 32 digitala in- och utgångar och data kommer tas emot parallellt på 15 av dessa. På mätkortet finns också åtta stycken räknare vilka delar pinnar på kortet med de digitala in- och utgångarna. Räknarna används för styrning av bilbanan. Ingångarna för datamottagning måste därför väljas så att det inte blir någon konflikt. Eftersom vi väljer att utföra parallelliseringen av data utanför datorn behöver inte vi inte blockera processorn så mycket. Dessutom slipper vi de tajmingproblem som skulle uppkomma vid seriell kommunikation, eftersom all dataöverföring sker asynkront. I LabWindows/CVI finns färdiga funktioner (bl a Dig_In_Prt) för att läsa av kortets ingångar. Hur detta används beskrivs närmare i programbeskrivningen (avsnitt 3.2) och i kodbilaga. 3 Implementering Efter att i avsnitt 2 ha beskrivit hur systemet är tänkt att fungera, kommer detta avsnitt beskriva hur det praktiska arbetet är genomfört. 3.1 Hårdvara 3.1.1 Bilen Elektroniken i bilen är implementerad enligt designen i avsnitt 2. Bilens elektronik får sin matningsspänning från en spänningsregulator (7805), vilken i sin tur matas från ett 9-voltsbatteri. Spänningsregulatorn kan ta emot spänning på max 35 Volt och levererar 5 Volt. Regulatorn kan driva max 1,5 Ampere. På sida 8
3 IMPLEMENTERING Industriprojekt ISY Figur 4: Bilbanebil, extrautrustad med accelerometer och radiosändare. bilens baksida finns en strömbrytare för spänningsmatning till elektroniken. Då strömbrytaren är i läge på lyser lysdioden på bilens tak och elektroniken är inkopplad. Vid batteribyte behöver bilens kaross avlägsnas. Kretsschema och fotografi på bilens elektronik kan ses i figur 5 och 6. Tabell 2: Beskrivning av bilens hårdvarudelar. Numrering ses i figur 6 Nummer Funktion 1 Radiosändare 2 9-volts batteri 3 Elmotor 4 Basic Stamp II 5 Diod och motstånd 6 Spänningsregulator 7 Accelerometer Vid behov kan kretskortet tas ur bilen. För att göra detta behöver först Basic Stamp II lyftas ur. Sedan lossas de muttrar som fixerar kretskortet. En viss försiktighet bör iakttagas vid hantering av elektroniken, då den är känslig för statisk elektricitet. Obs! Då accelerometern inte sitter helt horisontellt i sin kapsel bör intrimning av densamma ske då accelerometen kan ha rubbats ur sitt läge (t ex vid kraftiga kollisioner). sida 9
3 IMPLEMENTERING Industriprojekt ISY Figur 5: Kretsschema för bilens elektronik Figur 6: Bilens innanmäte. Siffrorna anger delar som beskrivs i tabell 2 sida 10
3 IMPLEMENTERING Industriprojekt ISY 3.1.2 Mottagarenhet Elektroniken för mottagaren finns inbyggt i en box. Så fort boxen är ansluten till spänningsmatningen lyser dioden på boxens tak och enheten är redo att ta emot data. Även i denna enhet finns en spänningsregulator av typ 7805 inbyggd, vilket gör att matningsspänningen kan variera upp till 35 Volt. Till skillnad från bilen så är mottagarenheten alltid på då den är strömförsörjd. En bild på den öppna mottagarboxen finns i figur 8 och kretsschema för densamma i figur 7. Figur 7: Kretsschema för mottagerens elektronik Från mottagerenheten går det en parallellkabel med 15 ledningar till mätkortets (DAQ 6602) konnektorblock. I dessa ledningar skickas mätvärden ut ifrån mottagerenheten till mätkortet. Konnektorblocket kan ses figur 9 och kablarna kan identifieras med hjälp av tabell 3. 3.2 Programbeskrivning I systemet skrivs mjukvara i både c-kod, som kommunicerar med mätkortet, och MATLAB-kod. C-koden kompileras till en dll-fil genom att anropa filen make_getaccelerationtime.m ifrån MATLAB-prompten. Funktionen getaccelerationtime kan sedan anropas för att få pulsbredden för accelerometervärdet. I MATLAB har funktionen getacceleration implementerats, vilken översätter pulsbredden till ett absolut värde på accelerationen. En översikt av de olika filerna och deras syfte ses i tabell 4. sida 11
3 IMPLEMENTERING Industriprojekt ISY Figur 8: Under huven på mottagarenheten. 1 Basic Stamp II, 2 Spänningsregulator, 3 Radiomottagare. Tabell 3: Koppling mellan Basic Stamp II i mottagerenheten och mätkortet. BS2-port Linje-nr. på DAQ-6602 Kabelfärg 0 54 Gul 1 21 Grå+Svart 2 23 Grå 3 57 Blå+Vit 4 58 Blå+Svart 5 60 Blå 6 61 Rosa+Svart 7 28 Rosa 8 29 Lila+Svart 9 63 Lila 10 64 Röd+Vit 11 31 Röd+Svart 12 32 Röd 13 66 Gul+Svart 14 67 Brun sida 12
3 IMPLEMENTERING Industriprojekt ISY Figur 9: Anslutning av ledningar från mottagerenheten till konnektorblocket för mätkortet. Tabell 4: Översikt av kod-filer. För mer information se fullständig kod i bilagor Namn getaccelerationtime.c Syfte Läsa av mätkortets port och översätta de binära bitarna till ett heltal som anger pulsbredden hos accelerometern. make_getaccelerationtime.m Kompilerar getaccelerationtime.c och genererar en dll-fil, som kan anropas ifrån MATLAB. getacceleration.m Funktion i MATLAB som översätter pulsbredden till ett absolut accelerationsvärde. sida 13
4 FELKÄLLOR Industriprojekt ISY 4 Felkällor I detta avsnitt avser vi att redogöra för de fel som vi funnit påverkar mätvärdet. De olika delsystemen accelerometer, kommunikation och databehandling behandlas i nämnd ordning. 4.1 Accelerometer Den felkälla vi funnit vara av störst betydelse för det slutgiltiga mätvärdet är vibrationer som uppkommer vid drift på grund av motorn. Dessa detekteras av accelerometern och ger därför utslag i mätvärdet. Vi har inte lyckats identifiera någon metod att eliminera detta fel. Förslagsvis filtreras värdena för att få bort det mesta av detta fel. Bilens färdriktning θ Accelerometerns mätriktning Figur 10: Felvridning av accelerometer. Accelerometern mäter i fel riktning jämfört med bilens färdriktning. Vidare har accelerometerns montering stor betydelse för noggrannheten. Om accelerometern monteras snett detekteras inte den verkliga accelerationen i bilens färdriktning, utan en funktion av denna som är beroende av den vinkeln mellan accelerometerns detektionsriktning och bilens färdriktning. Sambandet illustreras i figur 10. Notera att felmontering kan ske både i höjd- och sidled. Ytterligare ett fel som påverkar mätvärdet via accelerometern är banans lutning. Detta fel ger samma utslag som felmontering i höjdled. Detta bör också tas i beaktning vid kalibrering av accelerometerns nollnivå. Andra tänkbara fel i samband med själva mätningen är accelerometerns temperaturkänslighet, denna är dock liten i förhållande till övriga faktorer. Inte heller tyder någonting på att strömförsörjningen från skenan eller fälten från motorn påverkar accelerometern. 4.2 Kommunikation Kommunikationen sker uteslutande digitalt, varför störningskänsligheten i detta delsystem är god. Vi har inte sett några tecken på att de accelerationsvärsida 14
6 TIDRAPPORT Industriprojekt ISY den som skickas från accelerometern skulle ha ändrats på vägen. Däremot sker överföringen förstås med ett givet antal bitar, vilket ger en minsta möjliga upplösning på de accelerationer som kan detekteras. Våra mätningar visar dock att upplösningsfelet är försumbart i förhållande till de fel som skakning och felmontering ger upphov till. Vad användaren dock bör ha ta i beaktande är att det tar en viss tid för accelerationsvärdet att överföras från mätpunkten till datorn. Vid vissa tillfälle har störningar i radiolänken observerats. Det yttrar sig som orimligt höga eller låga värde på accelerationen. Vad detta beror på vet vi inte, men det skulle kunna vara andra radiovågor som stör. 4.3 Databehandling I databehandlingsdelen används talformat som gör att ingen upplösning tappas i detta steg. Även här kan dock en viss tidsfördröjning finnas. Denna är dock svår att uppskatta och är beroende av i vilket operativsystem som koden körs och vilka program som samtidigt körs på systemet. 5 Budget Projektet innebär en del utgifter. Vilka delar som inhandlats och hur mycket de har kostat kan ses i tabell 5. Förutom komponentkostnader tillkommer frakt för radiolänken från USA, till en kostnad av c:a 700:-. Tabell 5: Ungefärliga kostnader för hårdvara. Komponent Kostnad (kr) Basic Stamp II & Carrier Board 1200 Basic Stamp II 500 Radiomottagare 530 Radiosändare 350 Accelerometer 300 Mottagarlåda 100 Kablage etc. 300 Totalt c:a 3300 6 Tidrapport Omfattningen på projektkursen inom vilken uppgiften utfördes är på 5 poäng/person. Detta stämmer ganska bra med den faktiska tid som lagts ned på projektet. Vi uppskattar att vi i snitt arbetet en dag i veckan per person i c:a 20 veckor, vilket skulle göra just 5 poäng/person. sida 15
6 TIDRAPPORT Industriprojekt ISY De två stora poster som tagit mest tid är undersökning och implementation. Att undersöka vilka komponenter som finns att tillgå och vilka som passar vår uppgift bäst är ett stort jobb, men eftersom som detta gjordes grundligt gick det desto snabbare att designa och implementera systemet. Själva byggandet (lödning etc.) tog också förhållandevis lång tid. sida 16
A BILAGOR Industriprojekt ISY A Bilagor A.1 MATLAB-kod A.1.1 make_getaccelerationtime.m % ================================================ % Filnamn : m a k e _ g e t A c c e l e r a t i o n T i m e.m % % M a k e f i l e f o r g e t A c c e l e r a t i o n T i m e. c % % Anropas i f r a n MatLab prompten och g e n e r e r a r % g e t A c c e l e r a t i o n T i m e. d l l som sedan kan a n r o p a s % i f r a n MatLab f o r a t t f a a k t u e l l p u l s b r e d d f o r % a c c e l e r o m e t e r n i b i l e n. % ================================================ mex g c IC :\ Program\N a t i o n a l getaccelerationtime. c Instruments\ NI DAQ\Include mex g getaccelerationtime. obj C:\ Program\N a t i o n a l Instruments\ NI DAQ\Lib\nidaq32b. l i b A.1.2 getacceleration.m % ================================================ % Filnamn : g e t A c c e l e r a t i o n.m % % Omvandlar p u l s b r e d d t i l l ä a c c e l e r o m e t e r v r d e % % Anropas i f r a n MatLab prompten och r e t u r n e r a r d e t a k t u e l l a % a c c e l e r a t i o n s v a r d e t ( i [ g ] ) och en f l a g g a, f l a g, som ar % hog ( = 1 ) da a c c e l e r a t i o n s v a r d e t ar o r i m l i g t % ( p u l s b r e d d o v e r 5 0 0 0 e l l e r mindreä n 0 ). % % Bor a n r o p a s med h o g s t 5 0 Hz e f t e r s o m d e t ar med den f r e k v e n s som % ä a c c e l e r a t i o n s v r d e t f r a n b i l e n u p p d a t e r a s. % % ================================================ function [ accvalue, flag ] = g e t A c c e l e r a t i o n k =2/1160; % For omrakning t i l l [ g ] m=1 k 3 0 8 0 ; % " f l a g = 0 ; time = double ( getaccelerationtime ) ; i f time > 5 0 0 0 or time < 0 flag = 1 ; end accvalue = ( k time+m) ; A.2 C-kod (getacceleration.c) sida 17
A BILAGOR Industriprojekt ISY / ================================================================= Filnamn : g e t A c c e l e r a t i o n T i m e. c R e t u r n e r a r a k t u e l l t ä a c c e l e r a t i o n s v r d e hos b i l e n. Vardet u p p d a t e r a s med 5 0 Hz. Anropas v i a MatLab med a c c t i d = g e t A c c e l e r a t i o n T i m e ; dar a c c t i d m o t s v a r a r a c c e l e r o m e t e r n s p u l s b r e d d. Detta v a r d e o v e r s a t t s t i l l a b s o l u t a c c e l e r a t i o n i MatLab s e MatLab kod f o r g e t A c c e l e r a t i o n.m f o r mer i n f o. Koden kan k o m p i l e r a s med kommandot m a k e _ g e t A c c e l e r a t i o n T i m e i MatLab ================================================================= / # include "mex. h" # include " nidaqex. h" # include " math. h" short utsign [ 3 2 ] ; i 3 2 b u f f e r ; i n t b i n t e s t [ 3 2 ] ; i n t datain_bin [ 1 5 ] ; i 3 2 datain_dec ; / / K o n v e r t e r a r h e l t a l t i l l b i n a r t t a l void dec2bin ( i n t value, i n t binary [ 3 2 ] ) { i n t i = 0 ; while ( value! = 0 & & i < 3 2 ) { binary [ i ] = value % 2 ; value = value / 2 ; i = i + 1 ; } i f ( i = = 0 ) i = 1 ; } / / K o n v e r t e r a r b i n a r t t a l t i l l h e l t a l i 3 2 bin2dec ( i n t binary [ 1 5 ] ) { i n t val = 1, i =0; i 3 2 value = 0 ; } while ( i < 1 5 ) { value + = val binary [ i ] ; val = val 2 ; i = i + 1 ; } return value ; void mexfunction ( i n t nlhs, mxarray plhs [ ], i n t nrhs, const mxarray prhs [ ] ) { i 1 6 i S t a t u s = 0 ; sida 18
A BILAGOR Industriprojekt ISY i 1 6 idevice = 1 ; i 1 6 i P o r t = 0 ; u32 check = 0 ; plhs [ 0 ] = mxcreatedoublematrix ( 1, 1,mxREAL ) ; / / Vanta åp t i l l a t e l s e f o r a t t l a s a f r a n BS2 while ( check = = 0 ) { i S t a t u s = DIG_In_Line ( idevice, 0, 3 0, & check ) ; } / / Las h e l a 32 b i t a r s p o r t e n i S t a t u s = DIG_In_Prt ( idevice, iport, & b u f f e r ) ; / / K o n v e r t e r a v a r d e t f r a n 32 b i t a r s p o r t e n f r a n h e l t a l t i l l b i n a r t. dec2bin ( buffer, b i n t e s t ) ; / / P l o c k a ut de i n t r e s s a n t a b i t a r n a datain_bin [ 0 ] = b i n t e s t [ 1 3 ] ; datain_bin [ 1 ] = b i n t e s t [ 1 4 ] ; datain_bin [ 2 ] = b i n t e s t [ 1 6 ] ; datain_bin [ 3 ] = b i n t e s t [ 1 7 ] ; datain_bin [ 4 ] = b i n t e s t [ 1 8 ] ; datain_bin [ 5 ] = b i n t e s t [ 2 1 ] ; datain_bin [ 6 ] = b i n t e s t [ 2 2 ] ; datain_bin [ 7 ] = b i n t e s t [ 2 3 ] ; datain_bin [ 8 ] = b i n t e s t [ 2 4 ] ; datain_bin [ 9 ] = b i n t e s t [ 2 5 ] ; datain_bin [ 1 0 ] = b i n t e s t [ 2 6 ] ; datain_bin [ 1 1 ] = b i n t e s t [ 2 7 ] ; datain_bin [ 1 2 ] = b i n t e s t [ 2 8 ] ; datain_bin [ 1 3 ] = b i n t e s t [ 2 9 ] ; datain_bin [ 1 4 ] = 0 ; / / K o n v e r t e r a de b i n a r a b i t a r n a t i l l h e l t a l datain_dec = ( i 3 2 ) bin2dec ( datain_bin ) ; } / / R e t u r n e r a v a r d e t ( h e l t a l ) mxgetpr ( plhs [ 0 ] ) = datain_dec ; A.3 Basic Stamp-kod A.3.1 sandare.bs2 {$STAMP BS2} ================================================== Filnamn: sandare.bs2 Tar emot pulsbreddsmodulerad mätning ifrån accelerometern och skickar datan till sändaren. sida 19
A BILAGOR Industriprojekt ISY ================================================== yraw VAR Word Jorda accelerometer LOW 8 Driv sändare HIGH 15 LOW 13 Driv diod HIGH 11 LOW 12 Loop: Läs från accelerometer PULSIN 9, 1, yraw Skicka till sändare SEROUT 14, 16780, [yraw.highbyte,yraw.lowbyte] Loopa om och om igen... GOTO Loop A.3.2 mottagare.bs2 {$STAMP BS2} STAMP directive (specifies a BS2) ================================================== Tar emot data från mottagare och skickar ut den parallell till Ni-kortet ================================================== Datain VAR WORD Sätt in- och utportar DIRS = %0111111111111111 Loop: Läs in data från mottagaren sida 20
A BILAGOR Industriprojekt ISY SERIN 15, 16780, [Datain.HIGHBYTE,Datain.LOWBYTE] Meddela datorn att den inte får läsa Low 14 Lägg ut data parallellt OUTL = Datain.LOWBYTE OUTH = Datain.HIGHBYTE Datorn får läsa igen... HIGH 14 GOTO Loop sida 21
599 Menlo Drive, Suite 100 Rocklin, California 95765, USA Office: (916) 624-8333 Fax: (916) 624-8003 General: info@parallaxinc.com Technical: support@parallaxinc.com Web Site: www.parallaxinc.com Educational: www.stampsinclass.com Memsic 2125 Accelerometer Demo Kit (#28017) Tilt and Rotation Measurement Introduction The Memsic 2125 is a low cost, dual-axis thermal accelerometer capable of measuring dynamic acceleration (vibration) and static acceleration (gravity) with a range of ±2 g. For integration into existing applications, the Memsic 2125 is electrically compatible with other popular accelerometers. What kind of things can be done with the Memsic 2125? While there are many possibilities, heres a small list of ideas that can be realized with a Memsic 2125 and the Parallax BASIC Stamp: Dual-axis tilt sensing for autonomous robotics applications (BOE-Bot, Toddler, SumoBot) Single-axis rotational position sensing Movement/Lack-of-movement sensing for alarm systems Packing List Verify that your Memsic 2125 Demo Kit is complete in accordance with the list below: Parallax Memsic 2125 Demo PCB (uses Memsic MXD2125GL) Documentation Note: Demonstration software files may be downloaded from www.parallax.com. Features Measure 0 to ±2 g on either axis; less than 1 mg resolution Fully temperature compensated over 0 to 70 C range Simple, pulse output of g-force for X and Y axis direct connection to BASIC Stamp Analog output of temperature (TOut pin) Low current operation: less than 4 ma at 5 vdc Connections Connecting the Memsic 2125 to the BASIC Stamp is a straightforward operation, requiring just two IO pins. If single-axis tilt of less than 60 degrees is your requirement, only one output from the Memsic 2125 need be connected. See Figure 1 for connection details. Parallax, Inc. Memsic 2125 Accelerometer Demo Kit (#28017) 01/2003 1
Figure 1. Essential Memsic 2125 Connections How It Works Internally, the Memsic 2125 contains a small heater. This heater warms a "bubble" of air within the device. When gravitational forces act on this bubble it moves. This movement is detected by very sensitive thermopiles (temperature sensors) and the onboard electronics convert the bubble position [relative to g-forces] into pulse outputs for the X and Y axis. The pulse outputs from the Memsic 2125 are set to a 50% duty cycle at 0 g. The duty cycle changes in proportion to acceleration and can be directly measured by the BASIC Stamp. Figure 2 shows the duty cycle output from the Memsic 2125 and the formula for calculating g force. Figure 2. Memsic 2125 Pulse Output A(g) = ((T1 / T2) 0.5) / 12.5% The T2 duration is calibrated to 10 milliseconds at 25 C (room temperature). Knowing this, we can convert the formula to the following BASIC Stamp routine: Read_X_Force: PULSIN Xin, HiPulse, xraw xgforce = ((xraw / 5) - 500) * 8 RETURN The T1 duration (Memsic output) is placed in xraw, then divided by five because the BASIC Stamp PULSOUT function returns two-microsecond units. Since the result of this division is in microseconds, we multiply 0.5 by 1000 to get 500. Finally, one divided 0.125 (12.5%) is eight, hence the final multiplication. The result is a signed value representing g-force in milli-gs (1/1000th g). Parallax, Inc. Memsic 2125 Accelerometer Demo Kit (#28017) 01/2003 2
Experiments Experiment 1: Dual-Axis Tilt Measurement This experiment reads both axis values and displays the results in the DEBUG window. Calculations for g-force measurement and conversion to tilt were taken directly from Memsic documentation. Since the BASIC Stamp does not have an Arcsine function, it must be derived. Code for Arccosine and Arcsine are provided courtesy Tracy Allen, Ph.D. Note: This program is written using PBASIC 2.5 syntax and requires the Version 2.0 compiler or later to run. ========================================================================= File... MEMSIC2125-Dual.BS2 Purpose... Memsic 2125 Accelerometer Dual-Axis Demo Author... Parallax E-mail... support@parallax.com Started... Updated... 15 JAN 2003 {$STAMP BS2} {$PBASIC 2.5} ========================================================================= Program Description Read the pulse outputs from a Memsic 2125 accelerometer and converts to G-force and tilt angle. g = ((t1 / 10 ms) - 0.5) / 12.5% Tilt = ARCSIN(g) Refer to Memsic documentation (AN-00MX-007.PDF) for details on g-to-tilt conversion and considerations. www.memsic.com I/O Definitions Xin PIN 8 X input from Memsic 2125 Yin PIN 9 Y input from Memsic 2125 Constants Parallax, Inc. Memsic 2125 Accelerometer Demo Kit (#28017) 01/2003 3
HiPulse CON 1 measure high-going pulse LoPulse CON 0 DegSym CON 176 degrees symbol Variables xraw VAR Word pulse from Memsic 2125 xmg VAR Word g force (1000ths) xtilt VAR Word tilt angle yraw VAR Word ymg VAR Word ytilt VAR Word disp VAR Byte displacement (0.0-0.99) angle VAR Byte tilt angle Initialization Setup: PAUSE 250 DEBUG "Memsic 2125 Accelerometer", CR DEBUG "-------------------------" let DEBUG window open Program Code Main: DO GOSUB Read_Tilt reads G-force and Tilt display results DEBUG CRSRXY, 0, 3 DEBUG "X Input... ", DEC (xraw / 500), ".", DEC3 xraw, " ms", CLREOL, CR, "G Force... ", (xmg.bit15 * 13 + " "), DEC (ABS xmg / 1000), ".", DEC3 (ABS xmg), " g", CLREOL, CR, "X Tilt... ", (xtilt.bit15 * 13 + " "), DEC ABS xtilt, DegSym, CLREOL DEBUG CRSRXY, 0, 7 DEBUG "Y Input... ", DEC (yraw / 500), ".", DEC3 yraw, " ms", CLREOL, CR, "G Force... ", (ymg.bit15 * 13 + " "), DEC (ABS ymg / 1000), ".", DEC3 (ABS ymg), " g", CLREOL, CR, "Y Tilt... ", (ytilt.bit15 * 13 + " "), Parallax, Inc. Memsic 2125 Accelerometer Demo Kit (#28017) 01/2003 4
DEC ABS ytilt, DegSym, CLREOL PAUSE 200 LOOP END update about 5x/second Subroutines Read_G_Force: PULSIN Xin, HiPulse, xraw xmg = ((xraw / 5) - 500) * 8 PULSIN Yin, HiPulse, yraw ymg = ((yraw / 5) - 500) * 8 RETURN read pulse output convert to 1/1000 g Read_Tilt: GOSUB Read_G_Force restrict displacement to unit circle (0.0-1.0) disp = ABS xmg / 10 MAX 100 GOSUB Arcsine xtilt = angle * (-2 * xmg.bit15 + 1) disp = ABS ymg / 10 MAX 100 GOSUB Arcsine ytilt = angle * (-2 * ymg.bit15 + 1) RETURN x displacement fix sign y displacement fix sign Trig routines courtesy Tracy Allen, PhD. (www.emesystems.com) Arccosine: disp = disp */ 983 / 3 normalize input to 127 angle = 63 - (disp / 2) approximate angle DO find angle IF (COS angle <= disp) THEN EXIT angle = angle + 1 LOOP angle = angle */ 360 convert brads to degrees RETURN Arcsine: GOSUB Arccosine angle = 90 - angle RETURN Parallax, Inc. Memsic 2125 Accelerometer Demo Kit (#28017) 01/2003 5
Experiment 2: Rotational Posit ion Sensing If the Memsic 2125 is tilted up on its edge (X axis), the X and Y outputs can be combined to measure rotational position through 360 degrees. Output from this program is in both Brads (binary radians, 0 to 255, the BASIC Stamps unit of angular measurement) and degrees (0 to 359). For this code to work, the Memsic 2125 PCB must be positioned such that the sensor is perpendicular to the ground. Note: This program is written using PBASIC 2.5 syntax and requires the Version 2.0 compiler or later to run. ========================================================================= File... MEMSIC2125-Rotation.BS2 Purpose... Memsic 2125 Accelerometer Rotational Angle Measurement Author... Parallax E-mail... support@parallax.com Started... Updated... 15 JAN 2003 {$STAMP BS2} {$PBASIC 2.5} ========================================================================= Program Description Read the pulse outputs from a Memsic 2125 accelerometer and combine to calculation rotational position. Refer to Memsic documentation (AN-00MX-007.PDF) for details on angle conversion and considerations. www.memsic.com I/O Definitions Xin PIN 8 X input from Memsic 2125 Yin PIN 9 Y input from Memsic 2125 Constants HiPulse CON 1 measure high-going pulse LoPulse CON 0 DegSym CON 176 degrees symbol Parallax, Inc. Memsic 2125 Accelerometer Demo Kit (#28017) 01/2003 6
Variables pulse VAR Word pulse input xmg VAR Word g force (1000ths) ymg VAR Word brads VAR Word binary radians degrees VAR Word Initialization Setup: PAUSE 250 DEBUG "Memsic 2125 Rotation", CR DEBUG "--------------------" let DEBUG window open Program Code Main: DO GOSUB Read_G_Force brads = (xmg / 8) ATN (ymg / 8) degrees = brads */ 360 read X and Y calculate angle convert to degrees DEBUG CRSRXY, 0, 3 DEBUG "Axis A(g)", CR, "X ", (xmg.bit15 * 13 + " "), DEC (ABS xmg / 1000), ".", DEC3 (ABS xmg), " g", CR, "Y ", (ymg.bit15 * 13 + " "), DEC (ABS ymg / 1000), ".", DEC3 (ABS ymg), " g", CR, CR, "Tilt = ", DEC3 brads, " Brads", CR, " ", DEC3 degrees, " Degrees" PAUSE 200 LOOP END update about 5x/second Subroutines Read_G_Force: PULSIN Xin, HiPulse, pulse xmg = ((pulse / 5) - 500) * 8 PULSIN Yin, HiPulse, pulse ymg = ((pulse / 5) - 500) * 8 RETURN read pulse output convert to 1/1000 g Parallax, Inc. Memsic 2125 Accelerometer Demo Kit (#28017) 01/2003 7
Experiment 3: Motion Detector This experiment uses the Memsic 2125 as a movement or vibration detector. The program starts by reading the initial state of the sensor and storing these readings as calibration values. By doing this, the starting position of the sensor is nullified. The main loop of the program reads the sensor and compares the current outputs to the calibration values. If the output from either axis is greater than its calibration value the motion timer is incremented. If both fall below the thresholds motion timer is cleared. If the motion timer exceeds its threshold, the alarm will be turned on and will stay on until the BASIC Stamp is reset. You can adjust the sensitivity (to motion/vibration) of the program by changing the XLimit and YLimit constants, as well as the SampleDelay constant (should be 100 ms or greater). The AlarmLevel constant determines how long motion/vibration must be present before triggering the alarm. Note: This program is written using PBASIC 2.5 syntax and requires the Version 2.0 compiler or later to run. ========================================================================= File... MEMSIC2125-Motion.BS2 Purpose... Detects continuous motion for given period Author... Parallax (based on code by A. Chaturvedi of Memsic) E-mail... support@parallax.com Started... Updated... 15 JAN 2003 {$STAMP BS2} {$PBASIC 2.5} ========================================================================= -----[ Program Description ]--------------------------------------------- Monitors X and Y inputs from Memsic 2125 and will trigger alarm if continuous motion is detected beyond the threshold period. -----[ I/O Definitions ]------------------------------------------------- Xin PIN 8 X pulse input Yin PIN 9 Y pulse input ResetLED PIN 10 reset LED AlarmLED PIN 11 alarm LED -----[ Constants ]------------------------------------------------------- HiPulse CON 1 measure high-going pulse LoPulse CON 0 SampleDelay CON 500 0.5 sec AlarmLevel CON 5 5 x SampleDelay XLimit CON 5 x motion max YLimit CON 5 y motion max Parallax, Inc. Memsic 2125 Accelerometer Demo Kit (#28017) 01/2003 8
-----[ Variables ]------------------------------------------------------- xcal VAR Word x calibration value ycal VAR Word y calibration value xmove VAR Word x sample ymove VAR Word y sample xdiff VAR Word x axis difference ydiff VAR Word y axis difference motimer VAR Word motion timer -----[ Initialization ]-------------------------------------------------- Initialize: LOW AlarmLED motimer = 0 Read_Cal_Values: PULSIN Xin, HiPulse, xcal PULSIN Yin, HiPulse, ycal xcal = xcal / 10 ycal = ycal / 10 HIGH ResetLED PAUSE 1000 LOW ResetLED alarm off clear motion timer read calibration values filter for noise & temp show reset complete -----[ Program Code ]---------------------------------------------------- Main: DO GOSUB Get_Data xdiff = ABS (xmove - xcal) ydiff = ABS (ymove - ycal) read inputs check for motion IF (xdiff > XLimit) OR (ydiff > YLimit) THEN motimer = motimer + 1 update motion timer IF (motimer > AlarmLevel) THEN Alarm_On ELSE motimer = 0 clear motion timer ENDIF LOOP END -----[ Subroutines ]----------------------------------------------------- Sample and filter inputs Get_Data: PULSIN Xin, HiPulse, xmove PULSIN Yin, HiPulse, ymove xmove = xmove / 10 ymove = ymove / 10 PAUSE SampleDelay RETURN take first reading filter for noise & temp Parallax, Inc. Memsic 2125 Accelerometer Demo Kit (#28017) 01/2003 9
Blink Alarm LED -- will run until BASIC Stamp is reset Alarm_On: DO TOGGLE AlarmLED PAUSE 250 LOOP blink alarm LED loop until reset Application Idea Using the tilt code from Experiment 1, you can create a 3D joystick by mounting the Memsic 2125 and a pushbutton in a small, spherical enclosure (like a tennis ball). With just three pins you can measure tilt of each axis and the status of the switch. This would make an interesting, intelligent "leash" for a Parallax BOE-Bot. Using TOut Since the Memsic 2125 is a thermal device, the temperature is available from the TOut pin and can be measured using an external analog to digital converter (i.e., LTC1298). Details: Output calibrated to 1.25 volts @ 25.0 C Output change: 5 millivolts per degree C Parallax, Inc. Memsic 2125 Accelerometer Demo Kit (#28017) 01/2003 10
d WIRELESS RF MODULE MANUAL 27995 27996 27997 RECEIVER TRANSMITTER TRANSCEIVER 5 These RF modules are used to send remote control data back and forth between two or more Basic Stamps. Reference the color label on the modules pin names. Transmitter hook-up 1. Plug the transmitter into a solderless breadboard, do not solder directly to the pins of the module. 2. The module itself should be positioned vertically, so it is perpendicular to the bread board and any solid ground area you might have under it (this will give you more range). 3. Connect all pins labeled GND to ground. (Make sure the ground is common with your Basic Stamp.) 4. Connect the +5VDC pin to a clean, regulated +5VDC (+/- 5%) power supply. (If you are using a B.O.E. type of Parallax 2 d Contact Info: Web: http://www.parallaxinc.com http://www.stampsinclass.com Email: stamptech@parallaxinc.com MANUFACTURED BY (C) Copyright, 2001 6 Board, you can connect it to the +5VDC supply on the board. Typically this will be the output of a 7805 voltage regulator. 5. Connect the TXD (Transmit Data) pin to any I/O on your Basic Stamp. 6. Apply power to the Stamp and the Transmitter. (Now your ready to start using your transmitter to send serial bytes.) 7. Using the SEROUT instruction, you can send a serial byte to a mating receiver or transceiver. (Make sure you use a minimum baud rate of 600 and a maximum baud rate of 2400, we recommend using 1200.) Sales / Technical Support: Tel: (916) 624-8333 Fax: (916) 624-8003 Address: 599 Menlo Drive # 100 Rocklin, CA 95765 Receiver hook-up 1. Plug the receiver into a solderless breadboard, do not solder directly to the pins of the module. 2. The module itself should be positioned vertically, so it is perpendicular to the bread board and any solid ground area 3 PRELIMINARY DOCUMENTATION This document is a preliminary manual for the part numbers indicated above. Please visit the http://www.parallaxinc.com web site for downloadable PDF updates to this document and applications for these items. 7 you might have under it (this will give you more range). 3. Connect all pins labeled GND to ground. (Make sure the ground is common with your Basic Stamp.) 4. Connect the +5VDC pin to a clean, regulated +5VDC (+/- 5%) power supply. (If you are using a B.O.E. type of Parallax Board, you can connect it to the +5VDC supply on the board. Typically this will be the output of a 7805 voltage regulator. 5. Connect the RXD (Receive Data) pin to any I/O on your Basic Stamp. (Make sure this pin is configured as an INPUT.) 6. Apply power to the Stamp and the Receiver. (Now your ready to start using your receiver to receive serial bytes.) 7. Using the SERIN instruction, you can receive a serial byte sent by a mating transmitter or transceiver. (Make sure you use a minimum baud rate of 600 and a maximum baud rate of 2400, we recommend using 1200.) 4 General This manual covers three items: 27995 RF Receiver Module It receives RF and outputs your data. 27996 RF Transmitter Module It accepts your data and outputs RF. 27997 RF Transceiver Module It receives RF and outputs your data (and) It accepts your data and outputs RF. 8 Transceiver hook-up 1. Plug the transceiver into a solderless breadboard, do not solder directly to the pins of the module. 2. The module itself should be positioned vertically, so it is perpendicular to the bread board and any solid ground area you might have under it (this will give you more range). 3. Connect all pins labeled GND to ground. (Make sure the ground is common with your Basic Stamp.) 4. Connect the +5VDC pin to a clean, regulated +5VDC (+/- 5%) power supply. (If you are using a B.O.E. type of Parallax Board, you can connect it to the +5VDC supply on the board. Typically this will be the output of a 7805 voltage regulator.
9 5. Connect the TXD (Transmit Data) pin to any I/O on your Basic Stamp. 6. Connect the RXD (Receive Data) pin to any other I/O pin on your Basic Stamp. (Make sure this pin is configured as an INPUT.) 7. Apply power to the Stamp and the Transceiver. (Now your ready to start using your transceiver to send and receive serial bytes.) 8. Using the SEROUT instruction, you can send a serial byte to a mating receiver or transceiver. (Make sure you use a minimum baud rate of 600 and a maximum baud rate of 2400, we recommend using 1200.) 9. Using the SERIN instruction, you can receive a serial byte sent by a mating transmitter or transceiver. (Make sure you use a minimum baud rate of 600 and a maximum baud 13 They are not in a finished product form. They are strictly intended for experimental purposes only. If you wish to use these modules in an actual product (a non-experimental capacity), the module must first be designed into the product, then the whole product must be approved by the FCC. For a list of FCC approved Labs that can test your final product for compliance contact RF Digital Corporation at (818) 541-7622 or visit the web site at http://www.rfdigital.com. It is the responsibility of the user to be aware of the regulatory requirements in their area of operation and application. For exact information contact the FCC Office at: Federal Communications Commission http://www.fcc.gov 10 rate of 2400, we recommend using 1200.) Antenna and Grounding Do not allow the antenna to touch any surface or conductive material. Do not attempt to increase the length or change the antenna, as it will reduce performance and or damage the module. When ever possible, provide as much ground area under the module as possible. For example a copper clad circuit board that is one foot square, directly under the bread board the modules is mounted on, is perfect. Note it is very important to connect a thick ground strap (wire) from the module grounds to the ground area for it to be effective. A good ground as described may double your range and increase your range consistency. Do not allow the antennas to touch. 14 USE OUTSIDE OF THE U.S.A. It is the responsibility of the user to be aware of the regulatory requirements in their area of operation and application. Contact your local regulatory agency and obtain compliance information. For O.E.M. Design-In Guidance for the modules please contact: RF Digital Corporation 2029 Verdugo Blvd. Suite 750 Montrose, CA 91020 Tel: (818) 541-6722 Fax: (818) 541-7644 Web: www.rfdigital.com Email: oem@rfdigital.com, info@rfdigital.com or support@rfdigital.com 11 Misl. Single direction communication requires at least: Option a: 1 Transmitter and 1 Receiver. Both must be of the same frequency Option b: 1 Transmitter and 1 Transceiver. Both must be of the same frequency Option c: 1 Transceiver and 1 Receiver. Both must be of the same frequency Bi-directional communication requires at least: 2 Transceivers. Both must be of the same frequency Multi Point Communications can be achieved by: Placing one transmitter at each node that needs to send information. 15 Operational Warnings Do not expose the boards to direct outdoor environment. If they will be used outdoors, keep them away from water, moisture and direct sunlight. The serial input and output pins operate at +5V and 0V logic levels. Do not attempt to connect directly to a computer RS232 port as this will damage the module. Typical levels at a computer RS232 port are +10V and -10V; these voltages would immediately damage the module. The module is intended to interface directly with the Basic Stamp, other +5V logic devices and controllers. In classroom environments, many transmitters and receivers may be within communication range. When not in use, disconnect power from your project, including the module, to assure there is no chance for unintentional transmission. Transmissions from other devices can disallow other students to perform their wireless experiments. 12 Placing one receiver at each node that needs to receive information. Placing one transceiver at each node that needs to send and receive information. (All must be of the same frequency). Regulatory Warnings These modules (boards) are NOT FCC approved. They are designed to comply with the FCC Part 15 Rules and Regulations. 16 Please go to http://www.parallaxinc.com for full documentation. PRELIMINARY End Of Document