Datenblatt und Doku zu 3 Achsen Accelerometer Beschleunigungssensor Typ (MMA7260QT) Dieser 3 Achsen Sensor misst Beschleunigungen, Neigungen bzw. Bewegungen in alle Richtungen. Der ermittelten werde werden in eine analoge Spannung umgewandelt. Das auslesen mit einem analogen Port eines Controllers ist so besonders einfach. Es gibt vielfältige Anwendungen, zum Beispiel bei der Konzeption von Flugmodellen mit automatischer Stabilisierung, Fallschirm Auslösung bei Sturzflug oder balancierende Roboter und vieles mehr. Die wichtigsten Features: geringste Größe: 20mm x 14mm geringstes Gewicht 0.85g, daher auch für Flugmodelle geeignet Betriebsspannung: 3.3-16 V Geringer Strombedarf von ca. 1.35 ma Ausgangssignal: 3 analoge Spannungen (für jede Achse eine) Ausgangsspannungsbereich: 0-Vcc (0-3.3 V for VIN > 3.3 V) Empfindlichkeit/Messbereich: +/-1.5g, 2g, 4g, or 6g (Selektierbar über Pin GS1 and GS2; Standard ist 6g) Inklusive Robotikhardware CD mit Beispielprogrammen und ausführlichem Datenblatt des Sensors Doku vom 08.01.2009 Seite 1 von 10
Die Anschlüsse Der Beschleunigungsensor wird als Fertigmodul geliefert. Der Anschluss erfolgt über Lötpunkte an die entweder Drähte direkt eingelötet werden oder aber die mitgelieferte Stiftleiste eingelötet wird. Wir empfehlen die Stiftleiste einzulöten denn so können Sie sehr einfach über ein Steckboard oder über Standard-Stecker und Buchsenleisten das Modul verwenden. Auf nachfolgende Bilder kann man die verwendung mit Stiftleiste ersehen: Die Anschlußbelegung entsprechend der Beschriftung auf der Platine VIN Die Betriebsspannung kann zwischen 3,3V und 16V liegen. Intern wird sie dann auf dem Sensor in 3,3V gewandelt! GND Der Minuspol der Spannungsquelle 3,3V Wen man sowieso 3,3V (bzw. 2,2 bis 3,6V) zur Verfügung hat, so kann man den Sensor statt über VIN auch üer diesen Pin mit Spannung versorgen. VIN darf in diesem fall nicht benutzt werden! Alternativ kann dieser Pin auch zum abgreifen der intern stabilisierten 3,3V für externe Verbraucher genutzt werden, falls das Modul über VIN versorgt wird. Maximal 50mA stehen hier zur verfügung. Nicht höher belasten! X Dieser Pin liefert eine analoge Spannung die Abhängig von der Beschleunigung in X Richtung ist. Wird das Modul nicht bewegt, so wird praktisch die Erdbeschleunigung gemessen. Dadurch ergeben sich Seite 2 von 10
unterschiedliche Werte je nach Neigung des Modules in X Richtung. Somit hat man auch einen idealen Neigungssensor. Der Messbereich wird durch die Jumperstellungen fest eingestellt. Die Ausgangsspannung des Pins liegt zwischen 0 und 3,3V. Verwendet man ein Controllerboard mit 5V Referenzspannung und 10 Bit Analog port (wie z.b.rn-control) sowie den Messbereich 6g (zwei Jumper), so so liegen die Messwerte (Digits) ca. zwischen 180 und 525 (je nach Standort). Y Dieser Pin liefert eine analoge Spannung die Abhängig von der Beschleunigung in Y Richtung ist. Wird das Modul nicht bewegt, so wird praktisch die Erdbeschleunigung gemessen. Dadurch ergeben sich unterschiedliche Werte je nach Neigung des Modules in Y Richtung. Somit hat man auch einen idealen Neigungssensor. Der Messbereich wird durch die Jumperstellungen fest eingestellt. Die Ausgangsspannung des Pins liegt zwischen 0 und 3,3V. Verwendet man ein Controllerboard mit 5V Referenzspannung und 10 Bit Analog port (wie z.b.rn- Control) sowie den Messbereich 6g (zwei Jumper), so liegen die Messwerte (Digits) ca. zwischen 180 und 525 (je nach Standort). Z Dieser Pin liefert eine analoge Spannung die Abhängig von der Beschleunigung in Z Richtung ist. Der Messbereich wird durch die Jumperstellungen fest eingestellt. Die Ausgangsspannung des Pins liegt zwischen 0 und 3,3V. GS1 und GS2 Diese zwei Jumper bestimmen den Messbereich des Modules. In der nachfolgenden tabelle kann man entnehmen welcher Meßbreich bei den unterschiedlichen Jumperstellungen gewählt wird: Jumper GS1 Jumper GS2 Empfindlichkeit (Gramm) Spannung pro Gramm Gesteckt Gesteckt 1,5g 800 mv/g Gesteckt Nicht gesteckt 2,0g 600 mv/g Nicht gesteckt Gesteckt 4,0g 300 mv/g Nicht gesteckt Nicht gesteckt 5,0g 200 mv/g Weitere Angaben zu dem Sensorchip entnehmen Sie bitte auch dem englischen Datenblatt zum Chip. Dieses befindet sich ebenfalls auf der Robotikhardware CD. Seite 3 von 10
Beispielprogramme Auf den nachfolgenden Seiten haben wir eine Beispielprogramme bereitgestellt, welche den Anschluß und die Programmierung des Sensorboardes in verbindung mit mit dem Controllerboard RN-Control zeigen.. Natürlich lassen sich diese Bascom Beispiele leicht auch auf andere Controller übertragen. Die abgedruckten Beispiele als auch einige weitere sind natürlich auch auf der CD von Robotikhardware.de zu finden. Das Bild zeigt wie wir RN-Control und den Beschleunigungssensor verbinden: Wir verwenden zur Messung die analogen Ports die über die Steckklemme von RN-Control herausgeführt werden. Wir verwenden dazu einfach einen handelsüblichen Stecker wie er im Elektronikhandel bereits mit Anschlußdrähten erhältlich ist: Seite 4 von 10
Testprogramm: 3 Achsen Accelerometer.bas Das erste Beispielprogramm liest ganz einfach per analogen Port die Messwerte von X, Y und Z aus und gibt diese dann in einer Zeile über RS232 aus. Das ganze wiederholt sich endlos im Sekundentakt. So kann man sich schnell eine Vorstellung von den Messwerten verschaffen. '############################################################## '3 Achsen Accelerometer.bas ' 'Testprogramm für den 3 Achsen Accelerometer 7 Beschleunigungssensor 'der bei robotikhardware.de angeboten wird 'Ein 3 Achsen Accelerometer dient dem messen von Beschleunigungen, 'Neigungen bzw. Bewegungen in alle Richtungen 'Die Messergebnisse werden per analogem Signal an rn-control übermittelt 'Das Programm gibt die X Y und Z Messwerte endlos direkt 'über RS232 aus ' 'Autor: Frank (roboternetz.de) 'Verwendet wurden: RN-Control (robotikhardware.de) 'Weitere Beispiele sind im Roboternetz gerne willkommen! '############################################################## $programmer = 12 'MCS USB (Zeile weglassen wenn anderer Programmer) $regfile = "m32def.dat" $framesize = 32 $swstack = 32 $hwstack = 64 $crystal = 16000000 $baud = 9600 'Quarzfrequenz Config Adc = Single, Prescaler = Auto 'Für Spannungsmessung Start Adc Print Print "**** RN-CONTROL V1.4 *****" Print "Testprogramm für den 3 Achsen Accelerometer" Print ' -------------- Ende RN-Control übliche Dim X As Word Dim Y As Word Dim Z As Word Do X = Getadc(0) Y = Getadc(1) Z = Getadc(2) Print "Sensor X=" ; X ; " Y=" ; Y ; " Z=" ; Z Wait 1 Loop End Seite 5 von 10
Testprogramm: 3 Achsen Accelerometer sound.bas Dieses Testprogramm emittelt den X, Y und Z Messwert und gibt diesen als Tonsignal aus. Die frequenz ist dabei abhängig vom ermittelten Wert. Über die Tasten kann gewählt werden welche Achse ausgegeben werden soll Die Tasten im Demo sind wie folgt belegt: Taste 1 Taste 2 Taste 3 Taste 4 Taste 5 Der X Messwert wird als Beepton ausgegeben (die Frequenz ist abhängigig von Wert) Der Y Messwert wird als Beepton ausgegeben (die Frequenz ist abhängigig von Wert) Der Z Messwert wird als Beepton ausgegeben (die Frequenz ist abhängigig von Wert) Die Messwerte werden über RS232 ausgegeben Keine Ausgabe (Stille) '############################################################## '3 Achsen Accelerometer sound.bas ' 'Testprogramm für den 3 Achsen Accelerometer 7 Beschleunigungssensor 'der bei robotikhardware.de angeboten wird 'Ein 3 Achsen Accelerometer dient dem messen von Beschleunigungen, 'Neigungen bzw. Bewegungen in alle Richtungen ' 'Die Tasten sind wie folgt belegt: 'Taste 1: Der X Messwert wird als Beepton ausgegeben (die Frequenz ist abhängigig von Wert) 'Taste 2: Der Y Messwert wird als Beepton ausgegeben (die Frequenz ist abhängigig von Wert) 'Taste 3: Der Z Messwert wird als Beepton ausgegeben (die Frequenz ist abhängigig von Wert) 'Taste 4: Die Messwerte werden über RS232 ausgegeben 'Taste 5: Keine Ausgabe 'Autor: Frank (roboternetz.de) 'Verwendet wurden: RN-Control (robotikhardware.de) 'Weitere Beispiele sind im Roboternetz gerne willkommen! '############################################################## $programmer = 12 'MCS USB (Zeile weglassen wenn anderer Programmer) ' -------------- RN-Control übliche Declare Function Tastenabfrage() As Byte $regfile = "m32def.dat" $framesize = 32 $swstack = 32 $hwstack = 64 $crystal = 16000000 $baud = 9600 Config Scl = Portc.0 Config Sda = Portc.1 Config Adc = Single, Prescaler = Auto Spannungsmessung Config Pina.7 = Input Porta.7 = 1 Dim Taste As Byte Dim Ton As Integer 'Quarzfrequenz 'Ports fuer IIC-Bus 'Für Tastenabfrage und 'Für Tastenabfrage 'Pullup Widerstand ein I2cinit Start Adc Sound Portd.7, 400, 450 Sound Portd.7, 400, 250 Seite 6 von 10 'BEEP 'BEEP 'BEEP Sound Portd.7, 400, 450 Print Print "**** RN-CONTROL V1.4 *****" Print "Testprogramm für den 3 Achsen Accelerometer" Print ' -------------- Ende RN-Control übliche
Dim Modus As Integer Dim X As Integer Dim Y As Integer Dim Z As Integer Modus = 0 Do X = Getadc(0) Y = Getadc(1) Z = Getadc(2) Select Case Modus Case 1: If X < 100 Then X = 100 Sound Portd.7, 1000, X Case 2: If Y < 100 Then Y = 100 Sound Portd.7, 1000, Y Case 3: If Z < 100 Then Z = 100 Sound Portd.7, 1000, Z Case 4: Print "Sensor X=" ; X ; " Y=" ; Y ; " Z=" ; Z End Select Taste = Tastenabfrage() If Taste <> 0 Then Select Case Taste Case 1: Modus = 1 Case 2 Modus = 2 Case 3 Modus = 3 Case 4 Modus = 4 Case 5 Modus = 0 End Select Sound Portd.7, 400, 500 End If 'BEEP Waitms 100 Loop End ' Diese Unterfunktion fragt die Tastatur am analogen Port ab ' Sollte beim betätigen einer Taste kein Quittungston kommen, dann ' muss die die Tastenabfrage (Select Case Anweisung in Funktion ) ' an ihr Board angepaßt werden. Widerstandstoleranzen sorgen in ' Einzelfällen manchmal dafür das die Werte etwas anders ausfallen ' Am besten dann den WS wert mit Print für jede Taste ausgeben lassen Function Tastenabfrage() As Byte Local Ws As Word Seite 7 von 10
' Tastenabfrage = 0 Ton = 600 Ws = Getadc(7) Print "ws= " ; Ws If Ws < 1010 Then Select Case Ws Case 400 To 455 Tastenabfrage = 1 Ton = 550 Case 335 To 380 Tastenabfrage = 2 Ton = 500 Case 250 To 305 Tastenabfrage = 3 Ton = 450 Case 180 To 220 Tastenabfrage = 4 Ton = 400 Case 100 To 130 Tastenabfrage = 5 Ton = 350 End Select Sound Portd.7, 400, Ton End If 'BEEP End Function Alle Beispielprogramme auf der CD von Robotikhardware.de. Die CD liegt jeder Boardbestellung bei! Seite 8 von 10
Schaltplan Seite 9 von 10
Hersteller des Sensorboards:: Pololu, USA Bezugsquelle Germany: www.robotikhardware.de Bei uns mit CD und Bascom Beispielprogrammen Aktuellen Link zu einer englischen Original-Dokumentation findet man im Shop von www.robotikhardware.de bei der jeweiligen Artikelbeschreibung! Hinweise zur beschränkten Haftung Das Modul ist nicht für Geräte geeignet die direkt oder indirekt medizinischen, gesundheitlichen oder anderen Zwecken, bei denen ein Ausfall / Fehler zu Schäden an Personden oder Sachwerten führen würde. Soll das Modul für einen solchen Fall eingesetzt werden, so ist der Kunde für den test und alle Zulassungen selbst verantwortlich. Robotikhardware.de übernimmt darfür keinerlei Haftung. Die Haftung beschränkt sich in allen Fällen auf den Austausch des fehlerhaften Moduls. Module die durch fehlerhaften Anschluß / Bedienung beschädigt wurden, können nicht ersetzt werden. Seite 10 von 10