Keyestudio Denge Arabası Shield
Contents (Hızlı Menü)
keyestudio Balance Car Shield / keyestudio Denge Arabası Shield
Introduction / Tanıtım
Bu keyestudio kalkanı özellikle Arduino geliştirme kartına dayanan denge arabası için geliştirilmiştir. Özellikle büyük güç motorlarına uygulanan LGS Electronics tarafından üretilen sürücü çipi L298P'yi kullanır. Böylece kalkan iki DC motoru çalıştırabilir ve tahrik akımı 2A'ya kadar çıkabilir.
MPU6050 çipini benimser ve dahili veri yönetimi platformu DMP'yi kullanarak işlem verilerini IIC arabirimi üzerinden verir.
Parameters / Parametreler
- 1. Çalışma Gerilimi: DC 12 V
- 2. Sürücüde Çalışma Akımı: ≤ 2 A
- 3. Çalışma Sıcaklığı: 0 80 ila 80 ℃
- 4. xbee ile geliyor / Bluetooth Arı kablosuz arayüzü
- 5. Alarm olarak kullanılan yerleşik zil (D6)
- 6. D11, motor 1'in PWM pimi 1, D9, motor 2'nin PWM pimi 2, D 10 ve D12, motor 1'in çıkış pimi, D8 ve D7, motor 2'nin çıkış pimi olarak
- 7. iki PH2.0-6P motor arayüzü ile
Technical Details / Teknik Detaylar
- Dimensions: 77mmx 55mmx 25mm
- Weight: 31g
Connection Diagram / Bağlantı Şeması
Simply stack it onto the UNO board
Sample Code / Örnek kod
Or you can directly copy the code below:
/* MPU6050 Triple Axis Gyroscope & Accelerometer. Free fall detection. Read more: http://www.jarzebski.pl/arduino/czujniki-i-sensory/3-osiowy-zyroskop-i-akcelerometr-mpu6050.html GIT: https://github.com/jarzebski/Arduino-MPU6050 Web: http://www.jarzebski.pl (c) 2014 by Korneliusz Jarzebski */ #include#include MPU6050 mpu; boolean ledState = false; boolean freefallDetected = false; int freefallBlinkCount = 0; void setup() { Serial.begin(115200); Serial.println("Initialize MPU6050"); while(!mpu.begin(MPU6050_SCALE_2000DPS, MPU6050_RANGE_16G)) { Serial.println("Could not find a valid MPU6050 sensor, check wiring!"); delay(500); } mpu.setAccelPowerOnDelay(MPU6050_DELAY_3MS); mpu.setIntFreeFallEnabled(true); mpu.setIntZeroMotionEnabled(false); mpu.setIntMotionEnabled(false); mpu.setDHPFMode(MPU6050_DHPF_5HZ); mpu.setFreeFallDetectionThreshold(17); mpu.setFreeFallDetectionDuration(2); checkSettings(); pinMode(4, OUTPUT); digitalWrite(4, LOW); attachInterrupt(0, doInt, RISING); } void doInt() { freefallBlinkCount = 0; freefallDetected = true; } void checkSettings() { Serial.println(); Serial.print(" * Sleep Mode: "); Serial.println(mpu.getSleepEnabled() ? "Enabled" : "Disabled"); Serial.print(" * Motion Interrupt: "); Serial.println(mpu.getIntMotionEnabled() ? "Enabled" : "Disabled"); Serial.print(" * Zero Motion Interrupt: "); Serial.println(mpu.getIntZeroMotionEnabled() ? "Enabled" : "Disabled"); Serial.print(" * Free Fall Interrupt: "); Serial.println(mpu.getIntFreeFallEnabled() ? "Enabled" : "Disabled"); Serial.print(" * Free Fal Threshold: "); Serial.println(mpu.getFreeFallDetectionThreshold()); Serial.print(" * Free FallDuration: "); Serial.println(mpu.getFreeFallDetectionDuration()); Serial.print(" * Clock Source: "); switch(mpu.getClockSource()) { case MPU6050_CLOCK_KEEP_RESET: Serial.println("Stops the clock and keeps the timing generator in reset"); break; case MPU6050_CLOCK_EXTERNAL_19MHZ: Serial.println("PLL with external 19.2MHz reference"); break; case MPU6050_CLOCK_EXTERNAL_32KHZ: Serial.println("PLL with external 32.768kHz reference"); break; case MPU6050_CLOCK_PLL_ZGYRO: Serial.println("PLL with Z axis gyroscope reference"); break; case MPU6050_CLOCK_PLL_YGYRO: Serial.println("PLL with Y axis gyroscope reference"); break; case MPU6050_CLOCK_PLL_XGYRO: Serial.println("PLL with X axis gyroscope reference"); break; case MPU6050_CLOCK_INTERNAL_8MHZ: Serial.println("Internal 8MHz oscillator"); break; } Serial.print(" * Accelerometer: "); switch(mpu.getRange()) { case MPU6050_RANGE_16G: Serial.println("+/- 16 g"); break; case MPU6050_RANGE_8G: Serial.println("+/- 8 g"); break; case MPU6050_RANGE_4G: Serial.println("+/- 4 g"); break; case MPU6050_RANGE_2G: Serial.println("+/- 2 g"); break; } Serial.print(" * Accelerometer offsets: "); Serial.print(mpu.getAccelOffsetX()); Serial.print(" / "); Serial.print(mpu.getAccelOffsetY()); Serial.print(" / "); Serial.println(mpu.getAccelOffsetZ()); Serial.print(" * Accelerometer power delay: "); switch(mpu.getAccelPowerOnDelay()) { case MPU6050_DELAY_3MS: Serial.println("3ms"); break; case MPU6050_DELAY_2MS: Serial.println("2ms"); break; case MPU6050_DELAY_1MS: Serial.println("1ms"); break; case MPU6050_NO_DELAY: Serial.println("0ms"); break; } Serial.println(); } void loop() { Vector rawAccel = mpu.readRawAccel(); Activites act = mpu.readActivites(); Serial.print(act.isFreeFall); Serial.print("\n"); if (freefallDetected) { ledState = !ledState; digitalWrite(4, ledState); freefallBlinkCount++; if (freefallBlinkCount == 20) { freefallDetected = false; ledState = false; digitalWrite(4, ledState); } } delay(100); }
Documents / Dökümanlar
Download the PDF:
https://drive.google.com/open?id=13AiPQpHPVIGNGdiq7w6BMvr6-JXFRli5
Download the libraries MPU6050:
https://drive.google.com/open?id=1hhzfuT0svXpU9bf1Q22QpEhEfaGkPa6Z
Download the libraries Wire:
https://drive.google.com/open?id=10e6rKkKaSpV_Thoe7dz2ZqoOp_XvPEM-
Download the code:
https://drive.google.com/open?id=1w6vIQVZ0to5t0G_rwvSaGWGdKMhWcrzr