2024
HOME

Messen, Steuern und Regeln mit Arduino und Compact RN
esp32-C3 als PC-Interface
Ergänzung zum Buch Messen, Steuern und Regeln mit Arduino und Compact

ESP32-C3 Super MiniEine preiswerte kleine Variante des ESP32 nennt sich ESP32-C3. Der Baustein könnte als ESP8266 gelten, allerdings ist auch Bluetooth an Bord. Die Variante "Super Mini" verfügt über 16 Anschlüsse darunter auch 5 V, 3.3 V und GND. Es gibt keinen eingebauten DAC, aber mehrere Analog-Eingänge. Um dieses Board als Interface unter Compact Red Needle zu verwenden sind nur sehr wenige Schritte erforderlich.

Die erforderliche Software für das Zusammenspiel des C3 mit Compact Red Needle liegt als fertige Binärdatei vor. Diese Software kann im Browser mit dem Web-Tool in wenigen Sekunden übertragen werden.


USB-Interface ESP32-C3 - Ausschnitt Kapitel 3.4.1


Ein Computer-Interface war lange Zeit ein Stück Hardware, welche über eine serielle Schnittstelle mit dem PC verbunden war und den Anwender in die Lage versetzte ohne Mikrocontroller-Kenntnisse Messungen und Steuerungen vorzunehmen. Lehrmittelfirmen, wie Leybold und modul-bus, vertrieben solche Interfaces als Cassy und CompuLab. Entsprechen-de Software war untere dem Namen CassyLab und Compact verfügbar. Die aktuelle Version von Compact nennt sich Edition Red Needle und ist für alle gängigen Desktop-Betriebssysteme frei erhältlich.

Prinzip Compact

Compact benutzt aktuelle Mikrocontroller als sogenanntes PC-Interface zum Messen und Steuern. Dabei besteht eine ständige Verbindung zwischen Gerät und PC. Die Verbindung erfolgt über USB-Kabel oder drahtlos über Bluetooth. Alle Aktionen gehen vom Computer und Compact aus. Das PC-Interface hat dabei die folgenden Eigenschaften, die vom jeweiligen Mikrocontroller emuliert werden.

  • 2 Pins Analogeingänge
  • 8 Digitale Eingänge
  • 8 Digitale Ausgänge
  • 2 Analogausgänge

Eine reale und praktische Umsetzung kann unterschiedlich ausfallen, je nach Preis und Bedarf, beginnend bei €4 für einen Pi Pico mit RP2040 ohne WiFi. Compact versucht durch bewusst begrenzt erscheinende Möglichkeiten die Konzentration auf das Wesentliche zu erhöhen. Als Beispiel sei die relativ niedrige 8 Bit Auflösung der Analog-Eingänge zu nennen, die dazu führt, dass Zahlen meist nur im Bereich von 0 bis 255 vorkommen, welche genau der Größe eines Bytes entsprechen, die Programmiersprache kennt somit auch nur einen Variablenspeicher für eine Ganzzahl.

Compact bietet zunächst eine Übersicht der Ein- und Ausgänge dieses Interfaces mit einigen angehängten Werkzeugen wie Zeitschreiber, XY-Schreiber, Logik-Schreiber und eine einfache Programmiermöglichkeit. Bei erkannter Hardware schaltet die Nadel automatisch um auf Rot.


USB-Verhalten ESP32-C3 und Web-Tool


Das Board verfügt über zwei Taster und einen USB-C-Anschluss, aber keinen USB-Serial-Baustein. Ein C3 erzeugt eine solche serielle Verbindung selber mit den eingebauten Möglichkeiten. Der RST-Taster startet den Baustein, wie zu erwarten, neu. Um in den Flash-modus per USB-Serial zu gelangen, muss, während der Taster BOOT gedrückt ist, kurz der RST-Taster betätig werden. Ein PC meldet dann akustisch ein USB-Serial-Gerät mit entsprechender COM-Schnittstelle. Nun ist ein ESP32-C3 bereit zum Upload neuer Software.

Nach dem Upload bzw. dem Flashvorgang muss einmal die RST-Taste betätigt werden, um die neue Software zu starten und den Upload-Modus zu verlassen. Falls die neue Software serielle Ausgaben tätigt, meldet ein PC nach dem akustischen Abmelden ein neues Anmelden einer seriellen Schnittstelle. Ansonsten entfällt die serielle Schnittstelle des ESP32-C3 über USB.


Upload im Browser


Inzwischen ist es möglich ESP-Bausteine per WEB-Interface (Alternative) zu flashen. Flashen ist ein Upload von fertig kompilierter Software für den ESP, ist also quasi vergleichbar mit der Installation einer ausführbaren Datei am PC.


Web-Interface des ESPTools erkennt auch einen ESP32-C3

Folgende Schritte führen zum Ziel:

  • Webinterface oder Alternative aufrufen und darin Connect drücken

Bei Betätigung des Tasters RST bei gedrücktem Taster BOOT meldet der USB-Klang eine neue Schnittstelle (hier COM35)

  • Mit Verbinden bzw. Connect erfolgen Ausgaben mit Bausteininformationen.
  • Die Datei target.bin aus dem entpackten Zip der Firmware für den ESP32-C3 (150k) mittels Choose a file eintragen (Offset 0x0)
  • Mit Program erfolgt der einmalige Upload der Firmware für Compact Red Needle

Optional kan zuvor der gesamte Flash-Speicher mit Erase gelöscht werden.

Nach erfolgreichem Upload muss einmalig der RST-Taster gedrückt werden. USB meldet ab und sofort wieder an, da die Firmware ja USB-Serial verwendet. Diese Schnittstelle erscheint nun in Compact Red Needle und steht zur Verbindung des neuen Interfaces bereit.


Compact reagiert auf ESP32-C3 Super Mini mit 2 analogen Eingängen, 8 digitalen Ausgängen und 3 digtitalen Eingängen. Die Belegung des ESP32-C3 als CompuLab-Interface kann dem folgenden Bild entnommen werden.

Die Blaue LED ist beim Super Mini GPIO 8 und Digital-Ausgang DA4 in Compact. Die Anschlüsse wurden im Sketch der Firmware festgelegt. Ein Klick auf die Analog-Anzeigen schaltet auf 3,3 Volt-Ansicht.


Firmware in C Arduino IDE


Wer selber Hand anlegen möchte und seine IDE entsprechend eingerichtet hat, kann den hier angegebenen Sketch ESP32_C3_clab.ino aus der obigen ZIP-Datei anpassen.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#define AIN1 60
#define AIN2 58
#define DIN 211
#define DOUT 81
#define PWM 64
#define AOUT 64
//---- GPIO ----
#define PWMPIN 10
#define LED 8  //

// GPIO ESP32-C3 SUPER MINI 

//DIGITAL OUT PINS 0 - 7 CLAB
byte Dout[] = {21, 20, 10, 9, 8, 7, 6, 5};//BUTTON = 9
//DIGITAL IN  PINS 0 - 7 CLAB
byte Dins[]  = {0,1,2}; 
//ANALOG IN PINS A - B CLAB
byte Ains[]  = {A4,A3};
//BitValues
byte Bits[]  = {1,2,4,8,16,32,64,128};

void setup()
{ Serial.begin(9600); //Special CLAB
  for(int i= 0;i<2;i++)pinMode(Ains [i],INPUT);
  for(int i= 0;i<3;i++)pinMode(Dins [i],INPUT_PULLUP);
  for(int i= 0;i<8;i++)pinMode(Dout [i],OUTPUT);
}

void loop()
{ int i, val, inbyte; byte b;
  val = Serial.available(); //Was da?
  if (val>0)
  {inbyte=Serial.read(); //abholen
   delay(5);
   switch(inbyte)
  { case 13  : //CLAB ID nur ab Compact 1.75!
               Serial.write(3);delay(2);break; //ID
    case DIN : for(i=0,b=0;i<3;i++) //PINS to BYTE
                b+= (digitalRead(Dins[i])==HIGH?Bits[i]:0);
               Serial.write(b);break; 
    /*
    case AOUT: b=Serial.read(); //Ausgabebyte holen
               dacWrite(DAC1, b); //esp32 DAC 1  
               dacWrite(DAC2, b); //esp32 DAC 2  
               break;
  */
    case DOUT: b=Serial.read(); //Ausgabebyte holen
               for(i=0;i<8;i++)
                digitalWrite(Dout[i],b&Bits[i]?HIGH:LOW);
               break;
  /*
    case PWM:  b=Serial.read(); //Ausgabebyte holen
               analogWrite(PWMPIN,b);
               break;
  */  
    case AIN1: 
    case 48:   Serial.write(analogRead(Ains[0])>>4);break;
    case AIN2: 
    case 49:   Serial.write(analogRead(Ains[1])>>4);break;
    default:   break;
  }
 }
 delay(0);
}


																							


																	

												
Mittels dieser drei bin-Dateien kann ein ESP32-C3 auf einfachste Weise in ein PC-Interface verwandelt werden, welches mit Compact genauso gut zusammenarbeitet, wie ein Arduino Uno. Bei den Ausführungen im Buch ist lediglich die unterschiedliche Betriebsspannung zu beachten, die beim ESP32-C3 nur 3,3 Volt beträgt.

Das 2022/23 erschienene Messen, Steuern und Regeln mit Arduino und Compact zeigt was mit der freien Software Compact Red Needle alles möglich ist.


RP PicoW als Compact-Bluetooth-Interface
RP Pico als Compact-Interface
ESP32 als Compact-Bluetooth-Interface
ESP32-S2 als Compact-Interface
ESP32-C3 als Compact-Interface
ATtiny88 als Compact-Interface
ATtiny85 Assembler 8-Byte-Blink
ATtiny85 als Compact-Interface
ATtiny und ISP-Programmer
Mehr Software

.
Startseite Bücher Software Digital RTV Musik Kontakt

Für Inhalt und weitere Verzweigung externer Links sind die Betreiber der dortigen Seiten verantwortlich - H.-J. Berndt