Inbetriebnahme der Pixy 2.1 mit Simulink: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
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&thinsp;</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

Abb. 1: Kamerasystem Pixy 2.1
Autor: Prof. Dr.-Ing. Schneider


Hardware Verbindung mit Originalkabel (ISCP)

Originalartikel: Hooking up Pixy to a Microcontroller

Abb. 2: Verbindung Pixy 2.1 mit Flachbandkabel mit Arduino ICSP
Abb. 3: Verbindung Pixy 2.1 mit Flachbandkabel mit 10 poligem Stecker
Abb. 4: ICSP des Arduino R3

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).

Tabelle 1: Verbindung des 10P ICSP Anschlusses der Pixy 2 mit dem ISCP des Arduino Uno R3
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.

Tabelle 2: ICSP Anschluss des Arduino Uno R3 (vgl. Abb. 4)
Pin Arduino ICSP
1 SPI MISO
2 VCC
3 SPI SCK
4 SPI MOSI
5 Reset
6 GND

I2C Verbindung

Abb. 5: Arduino Uno R3 Pinout
Abb. 6: Einfaches Simulink Modell
Abb. 7: Einstellungen des Simulink Pixy2-Blocks
Abb. 8: Einstellungen des PixyMon v2 v3.0.24


Tabelle 3: Handverkabelung des 10P ICSP Anschlusses der Pixy 2 mit dem Arduino Uno R3 (vgl. Abb. 5)
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

Dokumentation


→ zurück zum Hauptartikel: Kamerasensor_Pixy_2.1