Inhoudsopgave:

3-Axis Accelerometer, ADXL345 met Raspberry Pi met Python - Ajarnpa
3-Axis Accelerometer, ADXL345 met Raspberry Pi met Python - Ajarnpa

Video: 3-Axis Accelerometer, ADXL345 met Raspberry Pi met Python - Ajarnpa

Video: 3-Axis Accelerometer, ADXL345 met Raspberry Pi met Python - Ajarnpa
Video: Input Shaper Calibration for Klipper: ADXL345 Accelerometer Method 2024, November
Anonim
3-assige versnellingsmeter, ADXL345 met Raspberry Pi met Python
3-assige versnellingsmeter, ADXL345 met Raspberry Pi met Python

Denkend aan een gadget dat kan controleren op welk punt uw Offroader wordt gekanteld om te blijven hangen. Zou het niet prettig zijn als iemand wordt afgesteld als de kans op kantelen bestaat? Duidelijk ja. Het zou echt nuttig zijn voor mensen die graag de bergen in gaan en zakenreizen.

Zonder twijfel, een werkelijk briljante periode van geavanceerde cijferevaluatie, IoT staat voor de deur. Als liefhebbers van gadgets en programmeren geloven we dat Raspberry Pi, de micro-Linux-pc, de creatieve vaardigheden van mensen in het algemeen heeft behandeld, met een explosie in innovatieve methodologieën. Dus wat zijn de denkbare resultaten die we kunnen doen in het geval dat we een Raspberry Pi en een 3-assige versnellingsmeter in de buurt hebben? We moeten ontdekken! In deze taak zullen we de versnelling op 3 assen, X, Y en Z, voelen met behulp van Raspberry Pi en ADXL345, een 3-assige versnellingsmeter. Dus we moeten observeren tijdens deze excursie om een raamwerk te fabriceren om de driedimensionale versnelling omhoog of G-kracht te meten.

Stap 1: Basishardware die we nodig hebben

Basishardware die we nodig hebben
Basishardware die we nodig hebben
Basishardware die we nodig hebben
Basishardware die we nodig hebben
Basishardware die we nodig hebben
Basishardware die we nodig hebben

De problemen waren minder voor ons, omdat we een hoop spullen hebben om mee te werken. Desalniettemin weten we hoe lastig het voor anderen is om het juiste onderdeel op de juiste tijd op de juiste plek te monteren en dat is ongeacht elke cent gerechtvaardigd. Zo helpen we je in alle regio's. Lees het volgende voor een volledige onderdelenlijst.

1. Raspberry Pi

De eerste stap was het aanschaffen van een Raspberry Pi-bord. Deze kleine, energiezuinige computer biedt een goedkope en over het algemeen eenvoudige basis voor elektronica-ondernemingen, Internet of Things (IoT), Smart Cities, schoolonderwijs.

2. I2C-schild voor Raspberry Pi

Het belangrijkste dat de Raspberry Pi echt mist, is een I²C-poort. Dus daarvoor geeft de TOUTPI2 I²C-connector je het gevoel om Rasp Pi te gebruiken met MEERDERE I²C-apparaten. Het is toegankelijk in de DCUBE Store

3. 3-assige versnellingsmeter, ADXL345

De ADXL345, vervaardigd door Analog Devices, is een 3-assige accelerometer met laag vermogen en 13-bits meting met hoge resolutie tot ±16g. We hebben deze sensor gekocht bij DCUBE Store

4. Aansluitkabel

We hadden de I2C-verbindingskabel toegankelijk bij DCUBE Store

5. Micro-USB-kabel

De minste verwarde, maar toch meest strikte wat betreft stroombehoefte is de Raspberry Pi! De meest moeiteloze manier om de Raspberry Pi op te starten is door middel van de Micro USB-kabel.

6. Webtoegang is een noodzaak

Toegang tot internet kan worden verleend via een Ethernet-kabel (LAN) die is gekoppeld aan een lokaal netwerk en internet. Aan de andere kant kunt u verbinding maken met een draadloos netwerk met behulp van een draadloze USB-dongle, waarvoor configuratie vereist is.

7. HDMI-kabel/toegang op afstand

Met HDMI-kabel aan boord kunt u hem aansluiten op een digitale tv of op een monitor. Noodzaak om geld te sparen! Raspberry Pi kan op afstand worden gebruikt om onderscheidende strategieën zoals SSH en Access via het web te gebruiken. U kunt de PuTTYopen source-software gebruiken.

Stap 2: De hardware aansluiten

De hardware aansluiten
De hardware aansluiten
De hardware aansluiten
De hardware aansluiten
De hardware aansluiten
De hardware aansluiten
De hardware aansluiten
De hardware aansluiten

Maak de schakeling volgens het verschenen schema. Maak een schets en ga bewust voor de configuratie.

Aansluiting van de Raspberry Pi en I2C Shield

Neem vooral de Raspberry Pi en zie het I2C-schild erop. Druk het schild voorzichtig over de GPIO-pinnen van Pi en we zijn klaar met deze progressie zo simpel als taart (zie de module).

Aansluiting van de Sensor en Raspberry Pi

Neem de sensor en koppel de I2C-kabel ermee. Voor de juiste werking van deze kabel dient u eraan te herinneren dat de I2C-uitgang ALTIJD geassocieerd is met de I2C-ingang. Hetzelfde moet worden gedaan voor de Raspberry Pi met het I2C-schild erop gemonteerd, de GPIO-pinnen.

We schrijven het gebruik van de I2C-kabel voor, omdat deze de vereiste voor het doorlezen van pinouts, solderen en malaise, veroorzaakt door zelfs de kleinste blunder, weerlegt. Met deze eenvoudige plug-and-play-kabel kunt u eenvoudig apparaten introduceren, verwisselen of meer apparaten toevoegen aan een toepassing. Dit maakt het ongecompliceerd.

Opmerking: de bruine draad moet betrouwbaar de aardverbinding (GND) volgen tussen de uitgang van het ene apparaat en de ingang van een ander apparaat

Webnetwerk is de sleutel

Om onze onderneming tot een succes te maken, hebben we een internetverbinding nodig voor onze Raspberry Pi. Hiervoor heb je alternatieven zoals een Ethernet(LAN)-kabel koppelen aan het thuissysteem. Daarnaast is het als optie echter een handige manier om een WiFi-connector te gebruiken. Soms heb je hiervoor een chauffeur nodig om het te laten werken. Dus neig naar degene met Linux in de afbeelding.

Stroomvoorziening

Steek de micro-USB-kabel in de stroomaansluiting van de Raspberry Pi. Steek het aan en we zijn klaar om te gaan.

Verbinding met scherm

We kunnen de HDMI-kabel koppelen aan een ander scherm. In sommige gevallen moet je naar een Raspberry Pi gaan zonder deze met een scherm te verbinden, of je moet er misschien wat gegevens van ergens anders bekijken. Het is denkbaar dat er innovatieve en financieel onderlegde benaderingen zijn om dit als zodanig te doen. Een daarvan maakt gebruik van - SSH (remote command-line login). U kunt daarvoor ook de PuTTY-software gebruiken.

Stap 3: Python-codering voor Raspberry Pi

Python-codering voor Raspberry Pi
Python-codering voor Raspberry Pi

De Python-code voor de Raspberry Pi en ADXL345-sensor is toegankelijk in onze Github-repository.

Voordat u doorgaat met de code, moet u ervoor zorgen dat u de richtlijnen in het Readme-document leest en uw Raspberry Pi volgens de code instelt. Het zal gewoon een minuut pauzeren om als zodanig te doen.

Een versnellingsmeter is een apparaat dat de juiste versnelling meet; juiste versnelling is niet hetzelfde als coördinaatversnelling (snelheid van verandering van snelheid). Een- en meerassige modellen van de versnellingsmeter zijn toegankelijk om de grootte en richting van de juiste versnelling te identificeren, als een vectorgrootheid, en kunnen worden gebruikt om oriëntatie te detecteren, versnelling, trillingen, schokken en vallen in een resistief medium te detecteren.

De code is duidelijk voor je en het is in de meest eenvoudige structuur die je je kunt voorstellen en je zou geen problemen moeten hebben.

# Gedistribueerd met een vrije licentie. # Gebruik het zoals je wilt, winst of gratis, op voorwaarde dat het past in de licenties van de bijbehorende werken. # ADXL345 # Deze code is ontworpen om te werken met de ADXL345_I2CS I2C Mini Module die verkrijgbaar is bij dcubestore.com # https://dcubestore.com/product/adxl345-3-axis-accelerometer-13-bit-i%C2%B2c-mini -module/

import smbus

import tijd

# Krijg I2C-bus

bus = smbus. SMBus(1)

# ADXL345 adres, 0x53(83)

# Selecteer bandbreedtesnelheidsregister, 0x2C(44) # 0x0A(10) Normale modus, uitgangsgegevenssnelheid = 100 Hz bus.write_byte_data(0x53, 0x2C, 0x0A) # ADXL345-adres, 0x53(83) # Selecteer vermogensregelingsregister, 0x2D(45) # 0x08(08) Auto Sleep uitschakelen bus.write_byte_data(0x53, 0x2D, 0x08) # ADXL345 adres, 0x53(83) # Select data format register, 0x31(49) # 0x08(08) Zelftest uitgeschakeld, 4-draads interface # Volledige resolutie, bereik = +/-2g bus.write_byte_data (0x53, 0x31, 0x08)

tijd.slaap(0.5)

# ADXL345 adres, 0x53(83)

# Lees data terug van 0x32(50), 2 bytes # X-Axis LSB, X-Axis MSB data0 = bus.read_byte_data(0x53, 0x32) data1 = bus.read_byte_data(0x53, 0x33)

# Converteer de gegevens naar 10-bits

xAccl = ((data1 & 0x03) * 256) + data0 als xAccl > 511: xAccl -= 1024

# ADXL345 adres, 0x53(83)

# Lees data terug van 0x34(52), 2 bytes # Y-Axis LSB, Y-Axis MSB data0 = bus.read_byte_data(0x53, 0x34) data1 = bus.read_byte_data(0x53, 0x35)

# Converteer de gegevens naar 10-bits

yAccl = ((data1 & 0x03) * 256) + data0 als yAccl > 511: yAccl -= 1024

# ADXL345 adres, 0x53(83)

# Lees data terug van 0x36(54), 2 bytes # Z-Axis LSB, Z-Axis MSB data0 = bus.read_byte_data(0x53, 0x36) data1 = bus.read_byte_data(0x53, 0x37)

# Converteer de gegevens naar 10-bits

zAccl = ((data1 & 0x03) * 256) + data0 als zAccl > 511: zAccl -= 1024

# Gegevens uitvoeren naar scherm

print "Versnelling in X-as: %d" %xAccl print "Versnelling in Y-as: %d" %yAccl print "Versnelling in Z-as: %d" %zAccl

Stap 4: De uitvoerbaarheid van de code

De uitvoerbaarheid van de code
De uitvoerbaarheid van de code

Download (of git pull) de code van Github en open deze in de Raspberry Pi.

Voer de opdrachten uit om de code te compileren en te uploaden in de terminal en bekijk de uitvoer op Monitor. Na enkele ogenblikken zal het alle parameters tonen. Nadat u ervoor heeft gezorgd dat alles gemakkelijk werkt, kunt u deze onderneming naar een grotere taak tillen.

Stap 5: Toepassingen en functies

De ADXL345 is een kleine, dunne, ultralaag vermogen, 3-assige accelerometer met hoge resolutie (13-bits) meting tot ±16 g. De ADXL345 is geschikt voor mobiele telefoontoepassingen. Het kwantificeert de statische versnelling van de zwaartekracht in kanteldetectietoepassingen en daarnaast de dynamische versnelling die op komst is vanwege beweging of schokken. Andere toepassingen zijn onder meer handsets, medische instrumenten, gaming- en aanwijsapparatuur, industriële instrumenten, persoonlijke navigatieapparatuur en bescherming van de harde schijf (HDD).

Stap 6: Conclusie

Ik hoop dat deze taak verdere experimenten motiveert. Deze I2C-sensor is buitengewoon flexibel, goedkoop en toegankelijk. Aangezien het een in hoge mate vergankelijk systeem is, zijn er interessante manieren om deze taak te verbreden en zelfs te verbeteren.

U kunt bijvoorbeeld beginnen met het idee van een hellingsmeter met behulp van de ADXL345 en Raspberry Pi. In het bovenstaande project hebben we basisberekeningen gebruikt. U kunt de code improviseren voor G-waarden, hellingshoeken (of hellingshoeken), elevatie of depressie van een object ten opzichte van de zwaartekracht. Vervolgens kunt u de geavanceerde opties controleren, zoals rotatiehoeken voor rollen (as van voren naar achteren, X), pitch (as van links naar rechts, Y) en gieren (verticale as, Z). Deze versnellingsmeter geeft 3D G-krachten weer. U kunt deze sensor dus op verschillende manieren gebruiken die u kunt overwegen.

Voor uw comfort hebben we een fascinerende instructievideo op YouTube die u kan helpen bij uw onderzoek. Vertrouw erop dat deze onderneming verdere verkenning motiveert. Blijf nadenken! Houd er rekening mee dat je ernaar moet zoeken, want er komt voortdurend meer bij.

Aanbevolen: