Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Gestengesteuerter Roboter mit Raspberry Pi

Haben Sie es jemals satt, alles mit Tasten zu steuern? Haben Sie daran gedacht, etwas mit einfachen Handbewegungen zu steuern, indem Sie auf Ihrer faulen Couch sitzen? Wenn ja, dann sind Sie auf der richtigen Seite. In diesem Tutorial werden wir einen Roboter, der von zwei Gleichstrommotoren angetrieben wird, einfach mit Handbewegungen steuern. Es gibt verschiedene Arten von Sensoren, um Ihre Handbewegung zu erkennen, wie Flusssensoren, Beschleunigungsmesser und andere auf Schwerkraft basierende Sensoren. Für die drahtlose Übertragung werden wir also das Modul RF 434 verwenden, das 4-Bit-Daten überträgt. 4 Bit Daten bedeuten, dass Sie 16 verschiedene Kombinationen übertragen können, d. h. 0000 bis 1111. Weiterhin werden wir in diesem Tutorial einen Encoder und Decoder verwenden, um Störungen in der Luftschnittstelle zu vermeiden. Ein Motortreiber wird die Motoren mit den Decoderdaten antreiben.

Gestengesteuerter Roboter mit Raspberry Pi

Senderseitig nutzen wir unseren Raspberry Pi, um die Sensordaten zu analysieren und eine Datenkombination an den Motortreiber zu übermitteln, um die Motoren entsprechend anzusteuern, damit der Roboter schweben kann. Wir werden eine 12-V-Batterie am Roboter verwenden, um das Decodermodul, das Empfängermodul und die Motoren mit Strom zu versorgen. Auf der Senderseite werden die Sensoren und das Sender-Encoder-Modul von Raspberry Pi selbst gespeist.

Komponenten

Zeige 1 bis 9 von 9 EinträgenZurückWeiter

Gestengesteuerter Roboter mit Raspberry Pi – Blockschaltbild

Senderende

Gestengesteuerter Roboter mit Raspberry Pi – Senderende

Auf der Senderseite haben wir Beschleunigungsmesser, Himbeer-Pi, Encoder-Modul und HF-Sender. Die Gestendaten fließen vom Beschleunigungsmesser zum Himbeer-Pi und werden dort verarbeitet, um die Bewegung des Roboters zu entscheiden, und die Bewegungsdaten werden über GPIO-Pins an das Encoder-Modul übertragen. Das Encodermodul codiert die Daten und überträgt sie mit Hilfe des RF-Senders in die Luftschnittstelle.

Gestengesteuerter Roboter mit Raspberry Pi – Empfängerende

Gestengesteuerter Roboter mit Raspberry Pi – Empfängerende

Der HF-Empfänger von der Empfängerseite erhält die Daten von der Luftschnittstelle und gibt sie an das Decodermodul weiter. Das Decodermodul decodiert die empfangenen Daten und stellt sie dem Motortreiber L293D zur Verfügung. Vom Motortreiber werden die Motoren gemäß den Gestendaten angetrieben.

Beschleunigungsmesser

Beschleunigung ist die Messung der Geschwindigkeitsänderung oder Geschwindigkeit dividiert durch die Zeit. Wenn sich ein Auto beispielsweise in 10 Sekunden von 0 auf 60 km/h bewegt, beschleunigt das Auto mit 6 km/h. Was hat das also mit meiner Handbewegung zu tun?

Ein Beschleunigungsmesser ist ein elektromechanisches Gerät zur Messung von Beschleunigungskräften. Solche Kräfte können statisch sein, wie die kontinuierliche Schwerkraft, oder, wie es bei vielen mobilen Geräten der Fall ist, dynamisch sein, um Bewegungen oder Vibrationen zu erfassen. Durch Messen der statischen Erdbeschleunigung können Sie den Neigungswinkel des Geräts zur Erde ermitteln. Durch Erfassen der dynamischen Beschleunigung können Sie die Bewegung des Geräts analysieren.

Einige Beschleunigungsmesser verwenden den piezoelektrischen Effekt – sie enthalten mikroskopische Kristallstrukturen, die durch Beschleunigungskräfte belastet werden, wodurch eine Spannung erzeugt wird. Eine andere Möglichkeit besteht darin, Kapazitätsänderungen zu erfassen. Wenn Sie zwei Mikrostrukturen nebeneinander haben, haben sie eine bestimmte Kapazität zwischen sich. Wenn eine Beschleunigungskraft eine der Strukturen bewegt, ändert sich die Kapazität. Fügen Sie eine Schaltung hinzu, um von Kapazität in Spannung umzuwandeln, und Sie erhalten einen Beschleunigungsmesser.

Beschleunigungsmesser sind Geräte mit geringem Stromverbrauch, die eine Beschleunigung in Form einer analogen Spannung und einige Beschleunigungsmesser in digitaler Form ausgeben. Analoge Beschleunigungsmesser wie der ADXL 335 bieten Ihnen 3 Analogausgänge X,Y,Z basierend auf der Bewegungsachse. Diese analogen Spannungen können Sie mit einem ADC in digitale Spannungen umwandeln. Digitale Beschleunigungsmesser wie ADXL345 kommunizieren über SPI- oder I2C-Protokolle. Diese haben weniger Rauschen und sind am zuverlässigsten

Es gibt einen weiteren Sensor MPU6050, der sowohl Beschleunigungsmesser als auch Gyroskop enthält. Das kann auch anstelle des Beschleunigungsmessers verwendet werden. Die Adresse von ADXL345 und MPU6050 unterscheidet sich beim Verbinden im I2C-Modus mit Himbeer-Pi, für ADXL 0x53 und MPU ist sie 0x68. In diesem Tutorial erkläre ich, wie man sowohl ADXL345 als auch MPU6050 verwendet.

Anbindung des Beschleunigungsmessers

Jetzt werden wir unseren Beschleunigungsmesser ADXL 345 und MPU 6050 mit unserem Himbeer-Pi verbinden und die Messwerte des Sensors überprüfen. Ich glaube, Ihr Raspberry Pi ist mit dem neuesten Betriebssystem und Python installiert, da wir hier Python-Code verwenden werden.

Verbinden wir ADXL345/MPU6050 mit unserem Himbeer-Pi. Hier werden wir das I2C-Protokoll verwenden, um zwischen Geräten zu kommunizieren. Im I2C-Protokoll werden die Daten über SDA (Serial Data) und Clock in SCL (Serial Clock) übertragen. Es ist ein asynchrones Halbduplex-Kommunikationsprotokoll. Der Master steuert den gesamten Prozess und die Slaves reagieren entsprechend den Master-Befehlen. Die Datenrate wird durch die fähige Frequenz des Slaves bestimmt. Es gibt hier nur 4 Verbindungen zwischen Master und Slave 3V, Gnd, SCL und SDA.

ADXL345 Digitaler Beschleunigungsmesser

Aus dem GPIO-Pin-Out-Diagramm können Sie die SDA- und SCL-Pins auf Rpi sehen und sie mit den SDA- und SCL-Pins ADXL345/MPU6050 verbinden. Versorgen Sie den Sensor mit RPi selbst. Jetzt sind die Verbindungen fertig.

Raspberry Pi 3 GPIO-Header

Bevor wir den Sensor testen, installieren wir python-smbus für das I2c-Protokoll in rpi und aktivieren das I2C-Protokoll in unserem RPi.

Smbus installieren:
sudo apt-get install python-smbus i2c-tools
Aktivieren des I2C in RPi:
sudo raspi-config
Gehen Sie zu den Schnittstellenoptionen und aktivieren Sie das I2c-Protokoll.

Fügen Sie dann die i2c-Spezifikationszeilen mit diesen Befehlen ein.
sudo nano /etc/modules
Fügen Sie diese Zeilen hinzu
i2c-bcm2708
i2c-dev

Wenn Sie ein altes rpi verwenden, entfernen Sie i2c mit diesen Befehlen aus der Backlist
sudo nano  /etc/modprobe.d/raspi-blacklist.conf
Auskommentieren (#) schwarze Liste i2c-bcm2708
sudo reboot
Testen Sie die Verbindung mit diesem Befehl. Dadurch wird die Adresse des Sensors angezeigt, der mit unserem pi verbunden ist.
sudo i2c detect -y 1
Adxl wird in 0x53 gefunden und Mpu wird in 0x68 oder 0x69 gefunden

Jetzt werden wir eine vorgefertigte Bibliothek für ADXL345 für pi in Python von Github herunterladen und die Sensorausgabe testen. Verwenden Sie diese Befehle.
git clone https://github.com/pimoroni/adxl345-python
cd adxl345-python
sudo python example.py

Example.py ist das Programm, das die X-, Y- und Z-Werte wie unten gezeigt ausgibt.

Wir können dieses Programm modifizieren oder für unser Projekt verwenden.

Für MPU6050 funktioniert das Pimoroni-Programm nicht, daher verwenden wir ein anderes Python-Modul von github.

Mit diesen Befehlen.
git clone https://github.com/Tijndagamer/mpu6050.git

cd mpu6050

python setup.py installieren
Um unsere Sensorverbindung zu überprüfen und zu adressieren, öffnen Sie das Terminal und geben Sie den folgenden Befehl ein. Es wird die Sensoradresse bei 0x68 oder 0x69 wie unten gezeigt angezeigt.

Und um unsere Sensordaten zu testen, gehen Sie zum Python-Editor und geben Sie diese Befehle nur einzeln ein, um die Sensorausgabe zu sehen.
from mpu6050 import mpu6050

mympu=mpu6050(0x69)

Data=mympu.get_accel_data()

Einen Schritt weiter können Sie nun die Schwellwerte von 4 verschiedenen Positionen für die Bewegung von rechts, links, vor und zurück bestimmen und notieren. Die Kalibrierung kann basierend auf Ihren Sensorwerten an verschiedenen Positionen durchgeführt werden, z. B. halten Sie ihn in einer Position, die Sie für die Vorwärtsbewegung wünschen, und notieren Sie 5 ähnliche Werte und runden Sie sie auf einen Schwellenwert ab, so dass, wenn der Sensor den abgerundeten Wert überschreitet, a Bedingungsanweisung im Programm aktiviert werden kann. Kalibrieren Sie es auf ähnliche Weise für alle anderen Bewegungen wie links, rechts, zurück und Stopp.

Weitere Informationen lesen….

Gestengesteuerter Roboter mit Raspberry Pi

Aktuelles Projekt / Beitrag kann auch gefunden werden mit:


Herstellungsprozess

  1. Raspberry Pi-Temperaturprofil mit LabVIEW
  2. Raspberry Pi-kontrollierte Aquaponik
  3. Professioneller Multichannel-Datenlogger auf Raspberry Pi – Teil 1
  4. Python- und Raspberry Pi-Temperatursensor
  5. Wetterfernüberwachung mit Raspberry Pi
  6. SensorTag zu Blynk mit Node-RED
  7. Bewegungssensor mit Raspberry Pi
  8. Roboter mit Raspberry Pi und Bridge Shield
  9. Raspberry Pi CD-Box-Roboter
  10. Raspberry Pi Roboter über Bluetooth gesteuert