test_other_functions


Damit wir uns mit dem Kommunizieren mit Pixy2 besser auskennen, wirst du nun zwei Demos ausführen. Hier lernst du Pixy2 besser kennen, in dem du andere Funktionen von Pixy2 testest. Außerdem lernst du die ersten Schritte beim Programmieren. Das Programm lässt sich wie folgt öffnen:


Connection Demo öffnen

Bild: Beipsielprogramm test_other_fuctions in Arduino öffnen
Quelle: BBs2 Wolfsburg


Es sollte sich nun folgendes Arduino Programm öffnen:

//
// begin license header
//
// This file is part of Pixy CMUcam5 or "Pixy" for short
//
// All Pixy source code is provided under the terms of the
// GNU General Public License v2 (http://www.gnu.org/licenses/gpl-2.0.html).
// Those wishing to use Pixy source code, software and/or
// technologies under different licensing terms should contact us at
// cmucam@cs.cmu.edu. Such licensing terms are available for
// all portions of the Pixy codebase presented here.
//
// end license header
//

#include <Pixy2.h>

Pixy2 pixy;

void setup()
{
  Serial.begin(115200);
  Serial.print("Starting...\n");

  pixy.init();
}

void loop()
{
  pixy.setServos(PIXY_RCS_MIN_POS, PIXY_RCS_MIN_POS);
  pixy.setLED(255, 0, 0); // red

  delay(1000);

  pixy.setServos(PIXY_RCS_CENTER_POS, PIXY_RCS_CENTER_POS);
  pixy.setLED(0, 255, 0); // green

  delay(1000);

  pixy.setServos(PIXY_RCS_MAX_POS, PIXY_RCS_MAX_POS);
  pixy.setLED(0, 0, 255); // blue

  delay(1000);  
}


2. Schauen wir uns das Programm genauer an:


Die wichtigsten Befehle jedes Programmes für Pixy2 sind die ersten Zeilen :

#include <Pixy2.h>

Pixy2 pixy;

Hier wird die Pixy2 Bibliothek (Pixy2.h) in das Programm eingebunden und ein Objekt namens pixy der Klasse Pixy2 erstellt.


Außerdem sollte die setup()- Funktion, die zu Beginn bei jeder Ausführung des Programms genau ein mal ausgeführt wird, bei jeder Programmierung für Pixy2 in etwa diese Befehle enthalten:


void setup()
{
  Serial.begin(115200);
  Serial.print("Starting...\n");

  pixy.init();
}



In der Funktionsschleife loop(), die während der Programmlaufzeit durchgehend wiederholt wird, wird nun unter anderem die Bewegung von Pixy2 gesteuert. Mit dem Befehl pixy.setServos() wird  festgelegt, auf welche Positionen sich der Pan und der Tilt Servo von Pixy2 bewegen sollen. Die Positionen werden als Funktionsparameter übergeben. In dem Demo-Programm, soll Pixy2 drei verschiedene Positionen erreichen:


pixy.setServos(PIXY_RCS_MIN_POS, PIXY_RCS_MIN_POS);
pixy.setServos(PIXY_RCS_CENTER_POS, PIXY_RCS_CENTER_POS);
pixy.setServos(PIXY_RCS_MAX_POS, PIXY_RCS_MAX_POS);


Die Attribute wie PIXY_RCS_MIN_POS sind bereits in der Pixy2 Bibliothek definiert. So werden mit dem ersten Befehl

pixy.setServos(PIXY_RCS_MIN_POS, PIXY_RCS_MIN_POS);

der Pan und der Tilt Servo des Pixy2 auf ihre minimalen Positionen gestellt.


Damit Pixy2 sich nicht nur bewegt, sondern die LED nun auch unterschiedlich leuchtet, wird der Befehl pixy.setLED() verwendet. Mit diesem legt man die rot, grün und blau Anteile der Farbe fest, in der die LED von Pixy2 leuchten soll.  In diesem Programm sind das Folgende:

pixy.setLED(255, 0, 0); // red
pixy.setLED(0, 255, 0); // green
pixy.setLED(0, 0, 255); // blue


Mit delay() wird dann zusätzlich eine Verzögerung zwischen den einzelnen Einstellungen erzeugt. 

delay(1000);

In unserem Programm ist es eine Verzögerung von 1000 Millisekunden = 1 Sekunde.


Das Demo Programm lässt Pixy2 also folgendes tun: 

  • Die Servos werden auf ein Minimum gesetzt und die LED leuchtet rot
  • Die Servos werden auf die mittlere Position gesetzt und die LED leuchtet grün
  • Die Servos werden auf ein Maximum gesetzt und die LED leuchtet blau


3. Um deinem Pixy2 dieses Demo-Programm nun ausführen zu lassen, musst du das Programm auf deinen ESP32 hochladen.

!! Achtung !!

Beim Flashen des ESP32 musst Du noch den Boot-Knopf am ESP32 drücken. Ist Pixy2 wie im letzten Kapitel an deinen Microcontroller angeschlossen, so sollte Pixy2 nach dem Hochladen folgende Bewegungen ausführen:


 

 

Video: Connection Demo mit Pixy2 und ESP32
Quelle: BBS2 Wolfsburg


Last modified: Thursday, 8 December 2022, 1:28 PM