Arduino Lab Akcelerometr MMA7455

Slides:



Advertisements
Podobne prezentacje
VHDL Today, Verilog HDL is an accepted IEEE standard. In 1995, the original standard IEEE was approved. IEEE is the latest Verilog.
Advertisements

Język VERILOG w praktyce.
Projekt Do kariery na skrzydłach – studiuj Aviation Management Projekt współfinansowany ze ś rodków Europejskiego Funduszu Społecznego. Biuro projektu:
CAv4 Nowe funkcje CAv4 Nowe funkcje. 1 CA Client Outlook Integration- Nowe funkcje, Instalacja i Przegląd. 1-1 CA Client v4 Wymagania systemu 1-2 CA Client.
OOPC++ - wstêp, klasy1 Klasy Do struktury można dołączyć operacje działające na jej polach. struct date { int day, month, year; void set (int d, int m,
Wykład 4: Podstawowe operacje ALU, MACC, SHIFTER i DAG
Języki programowania obiektowego
Dziennik do bilingu energii Domyślne wielkości co 15 min przez 12 dni kWh pobierana kWh całk kVARh pobierana kVARh całk kVAh całk PF całk 3-P Moc czynna.
Licencjonowanie wirtualizacji
Relaks przy śpiewie i muzyce
Present simple vs Present continuous
______________________________________ TARGU-JIU 2010.
Deutsche Bank PBC Finansowanie eksportu w Deutsche Bank PBC
How to make an application on Step by Step Instructions
SHOPPING- ROBIENIE ZAKUPÓW.
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 5.
 Primary School no 17  John Paul II, Chorzow, Poland  Made by Monika Winkler`s Project Group.
Rights of the child. Kliknij, aby edytować format tekstu konspektu Drugi poziom konspektu  Trzeci poziom konspektu Czwarty poziom konspektu  Piąty poziom.
Okres warunkowy typu 0,I,2 Okresy warunkowe występują w takich zdaniach, które mówią, co by się stało, gdyby, jeżeli. Np. Gdybym był bogaty, to bym kupił.
Wstęp do Fizyki Środowiska - Podstawy mechaniki płynów Problems 1 Lecture 1 1)In a vertical capillary filled with water air bubbles are rising Sketch the.
CROSSWORD: SLANG. Konkurs polega na rozwiązaniu krzyżówki. CROSSWORD: SLANG Wypełnione karty odpowiedzi prosimy składać w bibliotece CJK, lub przesyłać.
DEMO Jak założyć konto na Microsoft Virtual Academy?
Les meilleures photos de L'année 2005 D'après NBC A life for two, full of tenderness, obtains happiness as they get closer to heaven. Życie we dwoje,
Did you know?. 1 in 8 people living in Britain live in London, 12 million people live in London - this is a major European city London is the world largest.
DEFINITION OF COMPOSITE PROGRAMMABLE GRAPH (CP-GRAPH)
You are about to see a few sentences in Polish. Try to translate them into English, but keep in mind they are: The First Conditonal The Second Conditional.
S: Present Simple vs Present Continuous.
Assessment of influence of short-lasting whole-body vibration on joint position sense and body balance – a randomised masked study Rehabilitation Department,
Od Feynmana do Google’a Rafał Demkowicz-Dobrzański,, Wydział Fizyki UW.
Przetłumacz podane w nawiasach fragmenty zdań na j. angielski.
Przeczytaj uważnie polecenie Kliknij raz a pojawi się zadanie do wykonania Kliknij drugi raz i zobaczysz rozwiązanie Nie sprawdzaj rozwiązania, zanim się.
historical entanglement Jagiellonian University 1364 Collegium Maius at the University since 1400.
15. POLISH INSOLVENCY PROCEEDINGS AND THE EIR DR MAREK PORZYCKI European Insolvency Regulation.
Pakiety numeryczne Operatory, instrukcje sterujące, operacje bitowe Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
POLITECHNIKA POZNAŃSKA
POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH
Wyższa Szkoła Pedagogiczna im. Janusza Korczaka w Warszawie Internet security risk management Prof. Artis Teilans, Aleksandrs Larionovs.
Marcin Gliński Instytut Języków Romańskich i Translatoryki UŚ Regionalny Ośrodek Doskonalenia Nauczycieli WOM w Katowicach NOCNE POWTÓRKI MATURALNE 2016.
Important holidays and festivals in Poland. The first of January New Year’s Day New Year’s Day the day of Mary the Holy Mother of God – for Catholics.
Projektowanie systemów cyfrowych z wykorzystaniem języka VHDL Układy sekwencyjne.
Www,mojesilnedrzewo.pl. W dniach 15 marca – 30 kwietnia 2010.r.wytwórnia wody mineralnej Żywiec Zdrój SA wspólnie z Fundacją Nasza Ziemia i Regionalną.
Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C
Opracowanie: Katarzyna Gagan, Anna Krawczuk
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Przetestuj Usability Mateusz Kaczmarek
11. Work Praca.
European Insolvency Regulation
Przetwarzanie języka Wprowadzenie do informatyki Jerzy Nawrocki
Interfejsy synchroniczne
OPB - On-chip Peripherial Bus AXI – Advance eXtensible Interface
Wprowadzenie do MSP430G2553 i MPU6050
A prototype of distributed modelling environment
Managed Service Identity dla zasobów w Microsoft Azure
Sensory Ultradźwiękowy czujnik odległości (Silabs UNI_DC)
Running Dictation Activity to Engage Students in Reading, Writing, Listening, and Speaking.
EMPOWEREMENT IN ICT SKILLS. I CREATED MY WEBSITE TO USE IT FOR TEACHING.
Mikrokontrolery z rdzeniem ARM Cortex-M0+ Energooszczędność
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Sensory 3-osiowy kompas cyfrowy
Mikrokontrolery System przerwań
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Transmisja radiowa Arduino & nRF24L01P
European Insolvency Regulation
System rzymski Roman system
OPB - On-chip Peripherial Bus AXI – Advance eXtensible Interface
zl
1) What is Linux 2) Founder and mascot of linux 3) Why Torvalds created linux ? 4) System advantages and disadvantages 5) Linux distributions 6) Basic.
Zapis prezentacji:

Arduino Lab Akcelerometr MMA7455 Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Akcelerometr cyfrowy MMA7455 Trzy osie XYZ ±2g/±4g/±8g Wyjście cyfrowe (10-bitowe) I²C/SPI Obudowa LGA-14 3mm x 5mm x 1mm 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Autotest dla osi Z Zasilanie 2,4V – 3,6V Wykrywanie przekroczenia zadanego poziomu przyspieszenia i swobodnego spadania 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Uproszczony model fizyczny sensora przyspieszeń Sensor zbudowany jest z elementów stałych i ruchomych Od strony elektrycznej sensor tworzy układ zmiennych pojemności (półmostek) 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Uproszczony model fizyczny sensora przyspieszeń Sensor zbudowany jest z elementów stałych i ruchomych Od strony elektrycznej sensor tworzy układ zmiennych pojemności (półmostek) 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Wykonanie Sensor zbudowany jest z Od strony elektrycznej sensor 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Interfejs I²C Sensor zbudowany jest z Od strony elektrycznej sensor 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Interfejs I²C (adres układu 0x1D) Sensor zbudowany jest z Od strony elektrycznej sensor 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Interfejs I²C (adres układu 0x1D) Sensor zbudowany jest z Od strony elektrycznej sensor 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Interfejs SPI Sensor zbudowany jest z Od strony elektrycznej sensor 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Interfejs SPI 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Interfejs SPI Sensor zbudowany jest z Od strony elektrycznej sensor 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Moduł z układem MMA7455 Sensor zbudowany jest z Od strony elektrycznej sensor 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Połączenie z Arduino (I²C) Sensor zbudowany jest z !!! Uwaga rezystory podciągające są już na płytce 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 http://playground.arduino.cc/Main/MMA7455 Sensor zbudowany jest z Od strony elektrycznej sensor 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Program 1 (interfejs I²C) // MMA7455 Accelerometer // --------------------- // // By arduino.cc user "Krodal". // May 2012 // Open Source / Public Domain // // Fixes to union and type conversions by Arduino.cc user "Afroviking" // August 2014 // // Using Arduino 1.0.1 // It will not work with an older version, since Wire.endTransmission()  // uses a parameter to hold or release the I2C bus. // 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Program 1 (interfejs I²C) cd // Documentation: //     - The Freescale MMA7455L datasheet  //     - The AN3468 Application Note (programming). //     - The AN3728 Application Note (calibrating offset). //  // The MMA7455 can be used by writing and reading a single byte,  // but it is also capable to read and write multiple bytes. // // The accuracy is 10-bits. //  11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Program 1 (interfejs I²C) cd #include <Wire.h> // Nazwy rejestrów zgodne z dokumentacją // Rejestr 0x1C czasami nazywany jest 'PW', a czasami 'PD'. // The two reserved registers can not be used. #define MMA7455_XOUTL 0x00      // Read only, Output Value X LSB #define MMA7455_XOUTH 0x01     // Read only, Output Value X MSB #define MMA7455_YOUTL 0x02      // Read only, Output Value Y LSB #define MMA7455_YOUTH 0x03     // Read only, Output Value Y MSB #define MMA7455_ZOUTL 0x04      // Read only, Output Value Z LSB #define MMA7455_ZOUTH 0x05     // Read only, Output Value Z MSB 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Program 1 (interfejs I²C) cd #define MMA7455_XOUT8 0x06       // Read only, Output Value X 8 bits #define MMA7455_YOUT8 0x07       // Read only, Output Value Y 8 bits #define MMA7455_ZOUT8 0x08       // Read only, Output Value Z 8 bits #define MMA7455_STATUS 0x09     // Read only, Status Register #define MMA7455_DETSRC 0x0A     // Read only, Detection Source Register #define MMA7455_TOUT 0x0B       // Temperature Output Value (Optional) #define MMA7455_RESERVED1 0x0C   // Reserved #define MMA7455_I2CAD 0x0D       // Read/Write, I2C Device Address #define MMA7455_USRINF 0x0E     // Read only, User Information (Optional) #define MMA7455_WHOAMI 0x0F     // Read only, "Who am I" value (Optional) #define MMA7455_XOUT8 0x06       // Read only, Output Value X 8 bits #define MMA7455_YOUT8 0x07       // Read only, Output Value Y 8 bits #define MMA7455_ZOUT8 0x08       // Read only, Output Value Z 8 bits #define MMA7455_STATUS 0x09     // Read only, Status Register #define MMA7455_DETSRC 0x0A     // Read only, Detection Source Register #define MMA7455_TOUT 0x0B       // Temperature Output Value (Optional) #define MMA7455_RESERVED1 0x0C  // Reserved #define MMA7455_I2CAD 0x0D       // Read/Write, I2C Device Address #define MMA7455_USRINF 0x0E     // Read only, User Information (Optional) #define MMA7455_WHOAMI 0x0F     // Read only, "Who am I" value (Optional) 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 #define MMA7455_XOFFL 0x10       // Read/Write, Offset Drift X LSB #define MMA7455_XOFFH 0x11      // Read/Write, Offset Drift X MSB #define MMA7455_YOFFL 0x12      // Read/Write, Offset Drift Y LSB #define MMA7455_YOFFH 0x13      // Read/Write, Offset Drift Y MSB #define MMA7455_ZOFFL 0x14      // Read/Write, Offset Drift Z LSB #define MMA7455_ZOFFH 0x15      // Read/Write, Offset Drift Z MSB #define MMA7455_MCTL 0x16       // Read/Write, Mode Control Register  #define MMA7455_INTRST 0x17     // Read/Write, Interrupt Latch Reset #define MMA7455_CTL1 0x18       // Read/Write, Control 1 Register #define MMA7455_CTL2 0x19       // Read/Write, Control 2 Register #define MMA7455_LDTH 0x1A       // Read/Write, Level Detection Threshold Limit Value #define MMA7455_PDTH 0x1B      // Read/Write, Pulse Detection Threshold Limit Value #define MMA7455_PD 0x1C         // Read/Write, Pulse Duration Value #define MMA7455_LT 0x1D         // Read/Write, Latency Time Value (between pulses) #define MMA7455_TW 0x1E         // Read/Write, Time Window for Second Pulse Value #define MMA7455_RESERVED2 0x1F  // Reserved Program 1 (interfejs I²C) cd 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Program 1 (interfejs I²C) cd // Definicje bitów, wprowadzają zmianę  // numeru bitu w definicję binarną. // Używając numer bitu, programowanie MMA7455  // przypomina mikrokontroler AVR. // Użycie "(1<<X)", lub "_BV(X)",  // w Arduino powoduje ustawienie "bit(X)”. #define MMA7455_D0 0 #define MMA7455_D1 1 #define MMA7455_D2 2 #define MMA7455_D3 3 #define MMA7455_D4 4 #define MMA7455_D5 5 #define MMA7455_D6 6 #define MMA7455_D7 7 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Program 1 (interfejs I²C) cd // Rejestr stanu #define MMA7455_DRDY MMA7455_D0 #define MMA7455_DOVR MMA7455_D1 #define MMA7455_PERR MMA7455_D2 // Rejestr sterowania trybem #define MMA7455_MODE0 MMA7455_D0 #define MMA7455_MODE1 MMA7455_D1 #define MMA7455_GLVL0 MMA7455_D2 #define MMA7455_GLVL1 MMA7455_D3 #define MMA7455_STON MMA7455_D4 #define MMA7455_SPI3W MMA7455_D5 #define MMA7455_DRPD MMA7455_D6 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Program 1 (interfejs I²C) cd // Rejestr sterujący 1 #define MMA7455_INTPIN MMA7455_D0 #define MMA7455_INTREG0 MMA7455_D1 #define MMA7455_INTREG1 MMA7455_D2 #define MMA7455_XDA MMA7455_D3 #define MMA7455_YDA MMA7455_D4 #define MMA7455_ZDA MMA7455_D5 #define MMA7455_THOPT MMA7455_D6 #define MMA7455_DFBW MMA7455_D7 // Rejestr sterujący 2 #define MMA7455_LDPL MMA7455_D0 #define MMA7455_PDPL MMA7455_D1 #define MMA7455_DRVO MMA7455_D2 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Program 1 (interfejs I²C) cd // Interrupt Latch Reset Register #define MMA7455_CLR_INT1 MMA7455_D0 #define MMA7455_CLR_INT2 MMA7455_D1 // Detection Source Register #define MMA7455_INT1 MMA7455_D0 #define MMA7455_INT2 MMA7455_D1 #define MMA7455_PDZ MMA7455_D2 #define MMA7455_PDY MMA7455_D3 #define MMA7455_PDX MMA7455_D4 #define MMA7455_LDZ MMA7455_D5 #define MMA7455_LDY MMA7455_D6 #define MMA7455_LDX MMA7455_D7 // I2C Device Address Register #define MMA7455_I2CDIS MMA7455_D7 // Default I2C address for the MMA7455 #define MMA7455_I2C_ADDRESS 0x1D 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Program 1 (interfejs I²C) cd // When using an union for the registers and  // the axis values, the byte order of the accelerometer // should match the byte order of the compiler and AVR chip. // Both have the lower byte at the lower address,  // so they match. // This union is only used by the low level functions. typedef union xyz_union {   struct   {     uint8_t x_lsb;     uint8_t x_msb;     uint8_t y_lsb;     uint8_t y_msb;     uint8_t z_lsb;     uint8_t z_msb;   } reg;   struct    {     uint16_t x;     uint16_t y;     uint16_t z;   } value; }; 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Program 1 (interfejs I²C) cd   int led = 13; void setup() {         int error;   uint8_t c;   Serial.begin(9600);   Serial.println("Freescale MMA7455 accelerometer");   Serial.println("May 2012");    // Initialize the 'Wire' class for I2C-bus communication.   Wire.begin();   // Initialize the MMA7455, and set the offset.   error = MMA7455_init();   if (error == 0)     Serial.println("The MMA7455 is okay");   else     Serial.println("Check your wiring !"); 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Program 1 (interfejs I²C) cd   // Read the Status Register   MMA7455_read(MMA7455_STATUS, &c, 1);   Serial.print("STATUS : ");   Serial.println(c,HEX);   // Read the "Who am I" value   MMA7455_read(MMA7455_WHOAMI, &c, 1);   Serial.print("WHOAMI : ");   Serial.println(c,HEX);   // Read the optional temperature output value (I always read zero)   MMA7455_read(MMA7455_TOUT, &c, 1);   Serial.print("TOUT : ");   Serial.println(c,DEC);     pinMode(led, OUTPUT);  } 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Program 1 (interfejs I²C) cd void loop() {   uint16_t x,y,z, error;   double dX,dY,dZ;   // The function MMA7455_xyz returns the 'g'-force    // as an integer in 64 per 'g'.   // set x,y,z to zero (they are not written in case of an error).   x = y = z = 0;   error = MMA7455_xyz(&x, &y, &z); // get the accelerometer values.   dX = (int16_t) x / 64.0;          // calculate the 'g' values.   dY = (int16_t) y / 64.0;   dZ = (int16_t) z / 64.0; 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Program 1 (interfejs I²C) cd   Serial.print("error = ");   Serial.print(error, DEC);   Serial.print(", xyz g-forces = ");   Serial.print(dX, 3);   Serial.print(", ");   Serial.print(dY, 3);   Serial.print(", ");   Serial.print(dZ, 3);   Serial.println(""); 11-2014 Zygmunt Kubiak

Akcelerometr cyfrowy MMA7455 Program 1 (interfejs I²C) cd   if (dZ < 0.8)   {       digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)   }   else   {     digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW   }   delay(100); } 11-2014 Zygmunt Kubiak

Dziękuję Zygmunt Kubiak 09-2006