In meiner Nähe bleiben (digilent Robot Project): 6 Schritte

In meiner Nähe bleiben (digilent Robot Project): 6 Schritte

Inhaltsverzeichnis:

Anonim

Dies ist unser erstes Roboterprojekt, das wir zeigen möchten. Unser Plan ist es, einen Roboter zu bauen, der sich in einer bestimmten Umgebung bewegen kann. Ziel ist es, Senioren das Leben zu erleichtern. Der Roboter muss in der Lage sein, kleine, wichtige Dinge zu bestimmten Punkten zu befördern.

Es ist die erste Version des Projekts.

Zubehör:

Schritt 1: Materialien

Wir verwendeten

-a ChipKit Max32

- Ein Roomba Irobot

- ein Pmod Digitalkompass HMC5883L

- ein PmodWifi MRF24WG0MA

- 4 Stück PmodMAXSONAR Ultraschall-Entfernungsmesser LV-EZ1

- 4 stücke von n kanal mosfet

- 8 Stück 200 Ohm Widerstand

- Steckbrett

- einige Drähte, um die Materialien zu verbinden

und schließlich befinden sich all diese Dinge in einer Plastikbox oben auf dem Roboter

Schritt 2: Grundlegende Theorie

Kartierung

Der Roboter handhabt die Umgebung in einem Descartes-Koordinatensystem. Wo sich der Roboter befindet, ist dieser Punkt der (0,0) Punkt. Wir stellen uns ein Gitternetz zum Koordinatensystem vor und der Roboter muss sich in der Mitte eines Gitters befinden. Ein Raster ist 35 cm, was dem Durchmesser des Roboters entspricht. Wir nennen ein Gitter als Knoten. Der Roboter ordnet seinen Nachbarknoten zu und definiert, ob er frei ist oder nicht. Wenn er frei ist, zeichnet der Roboter ihn auf und wählt einen freien Knoten aus seiner Umgebung aus, um sich dorthin zu bewegen. Diese Aktivität wird fortgesetzt, bis kein Aktivierungsknoten vorhanden ist. Schließlich wird die Umgebung abgebildet. Wir bauen eine Datenbank aus den Knoten. Ein Knoten enthält ein Paar von (x, y) und den verfügbaren Nachbarknoten. Der Datenbank zufolge können wir zwischen zwei beliebigen Punkten die kürzeste Route mit einem heuristischen Suchalgorithmus suchen (Breite zuerst) und einer davon ist die Position des Roboters.

Schritt 3: ChipKit-Modul

Das chipKit ist das Hauptmodul, da es die Bewegung des Roboters handhabt und die Daten von den Sensoren verarbeitet. Es erstellt und verwaltet die Datenbank. Wir brauchen mehr Speicher, um die Datenbank aus Knoten aufzubauen, als wir tatsächlich haben. Aus diesem Grund haben wir zunächst die Größe des Heaps überbestimmt.

#define CHANGE_HEAP_SIZE (size) __asm__ volatile (" t.globl _min_heap_size n t.equ _min_heap_size," #size " n")

CHANGE_HEAP_SIZE (0x5000); extern __attribute __ ((section ("linker_defined"))) char _heap; extern __attribute __ ((section ("linker_defined"))) char _min_heap_size;

Schritt 4: Sensoren

Der Messbereich eines Sensors beträgt 15,24 cm - 6,45 m. Wir benutzen 4 Sensoren und wenn wir sie gleichzeitig arbeiten lassen, werden sie sich gegenseitig verwirren. Deshalb verwenden wir die N-Kanal-Mosfet-Schaltung.

Ablauf der Datenerfassung:

- Erstens wird keiner der Sensoren mit Strom versorgt, da alle Mosfets aktiv sind.

- Ein Mosfet ist niedrig eingestellt, damit der Sensor mit Strom versorgt wird

- RX des Sensors anrufen

- Lesen Sie die Daten

- Mosfet hoch angesetzt

Schritt 5: Roomba Robot

Dies ist der einfachste Teil des Projekts. Die Kommunikation zwischen dem Roboter und dem ChipKit ist eine serielle Kommunikation. Verwenden Sie dazu einen RX- und einen TX-Pin. Im Roboter befindet sich eine Batterie. Das ChipKit wird über den Akku mit Strom versorgt. In der Abbildung zeigen die hervorgehobenen Linien die verwendbaren Stifte. Die Kommunikation zwischen dem Roboter und dem ChipKit ist asynchron. Der Roboter kann mit Operationscodes gesteuert werden. Wenn zum Beispiel 137 Opcode mit den richtigen Parametern geschrieben wird, bewegt sich der Roboter. Die Roomba-Bibliothek enthält diese Opcodes.

Schritt 6: Anschluss der Module

Die Batterie des Roboters wird an den 5-V-Ausgang des chipKit angeschlossen. Eine der Erdungen des Roboters ist mit der gemeinsamen Erdung verbunden. Die 2 seriellen Kommunikationspins sind mit dem ChipKit verbunden: Der RX (Pin 1) des Roboters ist mit dem TX1 (Pin 18) des ChipKits und der TX (Pin 2) des Roboters mit dem RX1 (Pin 19) des ChipKits verbunden.

4 Die Masse von MaxSONAR ist mit der gemeinsamen Masse verbunden. Die RX-Pins sind mit 82, 79, 76, 73 Pins verbunden. Die PWM-Pins sind mit 81, 78, 75, 72 Pins verbunden. Die 4 Mosfet beweisen die Leistung der Sonare. Durch die MOSFETs können wir die Sonare ein- und ausschalten.

Die Gate-Pins der MOSFETs sind mit den 11, 8, 5, 2 Pins über 200 Ohm 4 Widerstände verbunden. Die Quelle des Mosfets ist mit den 5-V-Pins des Sonars verbunden, und die Drain-Anschlüsse des Mosfets sind mit der 5-V-Batterie verbunden.

Der Kompass verfügt über SCL- und SDA-Pins, die mit den SCL- und SDA-ähnlichen Pins des ChipKits verbunden sind.