Inbetriebnahme der Pixy 2.1 mit Simulink: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 99: | Zeile 99: | ||
== SRC == | == SRC == | ||
[[Datei:LineTrackingI2C R2025a.zip|Demo for Simulink R2025a]] | [[Datei:LineTrackingI2C R2025a.zip|Demo for Simulink R2025a]] | ||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | |||
| <strong>Lösung </strong> | |||
|- | |||
| | |||
'''<code>DemoLineTrackingI2C.ino</code>''' | |||
<syntaxhighlight lang="c" style="border: none; background-color: #EFF1C1; font-size:larger">#include <Pixy2I2C.h> | |||
Pixy2I2C pixy; // Instanz erzeugen | |||
void setup() { | |||
Serial.begin(115200); | |||
Serial.println("Serieller Monitor mit 115200 Baud gestartet..."); | |||
delay(1000); | |||
int r = pixy.init(); // Pixy2 starten (I2C automatisch) | |||
Serial.print("pixy.init(): "); | |||
Serial.println(r); | |||
Serial.println("Pixy Init ..."); | |||
delay(500); | |||
int result = -1; | |||
for (int i = 0; i < 10; i++) { // 10 Verbindungsversuche | |||
result = pixy.changeProg("line"); | |||
Serial.print("changeProg try "); | |||
Serial.print(i); | |||
Serial.print(": "); | |||
Serial.println(result); | |||
if (result >= 0) { | |||
Serial.println("Pixy2 Line Tracking gestartet..."); // Erfolgreicher Start | |||
delay(1000); | |||
break; | |||
} | |||
} | |||
} | |||
void loop() { | |||
int8_t Ergebnis_u8 = pixy.line.getMainFeatures(); | |||
if (Ergebnis_u8 <= 0) { | |||
Serial.println("Keine Linie gefunden."); | |||
delay(100); | |||
return; | |||
} | |||
// Hauptlinie (featureType = LINE_VECTOR) | |||
if (pixy.line.numVectors) { | |||
Serial.print("Linie gefunden: "); | |||
Serial.print("x0="); | |||
Serial.print(pixy.line.vectors[0].m_x0); | |||
Serial.print(" y0="); | |||
Serial.print(pixy.line.vectors[0].m_y0); | |||
Serial.print(" x1="); | |||
Serial.print(pixy.line.vectors[0].m_x1); | |||
Serial.print(" y1="); | |||
Serial.println(pixy.line.vectors[0].m_y1); | |||
} | |||
delay(50); | |||
} | |||
</syntaxhighlight> | |||
|- | |||
|} | |||
= Dokumentation = | = Dokumentation = | ||
Version vom 26. November 2025, 11:49 Uhr

| Autor: Prof. Dr.-Ing. Schneider |
Hardware Verbindung mit Originalkabel (ISCP)
Originalartikel: Hooking up Pixy to a Microcontroller



Steckerbelegung an der Pixy 2.1 (10P)
1 2 3 4 5 6 7 8 9 10
Die Verbindung der Pixy 2 mit dem Arduino erfolgt über das mitgelieferte 6-adrige Flachbandkabel (vgl. Abb. 2 und 3).
| Pin | Pixy 2 | Arduino ICSP |
|---|---|---|
| 1 | SPI MISO, UART RX, GPIO0 | SPI MISO |
| 2 | 5 V | VCC |
| 3 | SPI SCK, DAC OUT, GPIO1 | SPI SCK |
| 4 | SPI MOSI, UART TX, GPIO2 | SPI MOSI |
| 5 | I2C SCL | Reset |
| 6 | GND | GND |
| 7 | SPI SS, ADC IN, GPIO3 | |
| 8 | GND | |
| 9 | I2C SDA | |
| 10 | GND |
Problem: SPI SS (10P) ist mit Pin 5 des Arduino ICSP nicht verbunden.
| Pin | Arduino ICSP |
|---|---|
| 1 | SPI MISO |
| 2 | VCC |
| 3 | SPI SCK |
| 4 | SPI MOSI |
| 5 | Reset |
| 6 | GND |
I2C Verbindung




| Pin | Pixy 2 | Arduino Uno R3 |
|---|---|---|
| 1 | SPI MISO, UART RX, GPIO0 | |
| 2 | 5 V | VCC, 5 V |
| 3 | SPI SCK, DAC OUT, GPIO1 | |
| 4 | SPI MOSI, UART TX, GPIO2 | |
| 5 | I2C SCL | SCL |
| 6 | GND | |
| 7 | SPI SS, ADC IN, GPIO3 | |
| 8 | GND | |
| 9 | I2C SDA | SDA |
| 10 | GND | GND |
SRC
Datei:LineTrackingI2C R2025a.zip
| Lösung |
|
#include <Pixy2I2C.h>
Pixy2I2C pixy; // Instanz erzeugen
void setup() {
Serial.begin(115200);
Serial.println("Serieller Monitor mit 115200 Baud gestartet...");
delay(1000);
int r = pixy.init(); // Pixy2 starten (I2C automatisch)
Serial.print("pixy.init(): ");
Serial.println(r);
Serial.println("Pixy Init ...");
delay(500);
int result = -1;
for (int i = 0; i < 10; i++) { // 10 Verbindungsversuche
result = pixy.changeProg("line");
Serial.print("changeProg try ");
Serial.print(i);
Serial.print(": ");
Serial.println(result);
if (result >= 0) {
Serial.println("Pixy2 Line Tracking gestartet..."); // Erfolgreicher Start
delay(1000);
break;
}
}
}
void loop() {
int8_t Ergebnis_u8 = pixy.line.getMainFeatures();
if (Ergebnis_u8 <= 0) {
Serial.println("Keine Linie gefunden.");
delay(100);
return;
}
// Hauptlinie (featureType = LINE_VECTOR)
if (pixy.line.numVectors) {
Serial.print("Linie gefunden: ");
Serial.print("x0=");
Serial.print(pixy.line.vectors[0].m_x0);
Serial.print(" y0=");
Serial.print(pixy.line.vectors[0].m_y0);
Serial.print(" x1=");
Serial.print(pixy.line.vectors[0].m_x1);
Serial.print(" y1=");
Serial.println(pixy.line.vectors[0].m_y1);
}
delay(50);
}
|
Dokumentation
→ zurück zum Hauptartikel: Kamerasensor_Pixy_2.1