Ein Raspberry Pi PICO oder PICO W mit seinen 40 Anschlüssen eignet sich besonders gut als Messinterface für Compact Red Needle:
- 8 Digital-Ausgänge
- 8 Digital-Eingänge
- 2 Analog-Eingänge
- 1 PWM-Ausgang
Ein PICO arbeitet allerdings mit nur 3,3 Volt!
Mit der Datei sketch_CLAB_v3_Pico.ino.uf2 im Archiv CLAB_v3_Pico.zip (55kB) kann ein Pico oder Pico W einfach zum CompuLAB werden, so dass alles auch auf einfachste Weise mit diesen Mikrokontrollern funktioniert. Dazu verbindet man den Pico per USB mit dem PC bei gedrücktem BOOTSEL-Button des Boards. Durch das Kopieren der uf2-Datei auf das nun erscheinende Laufwerk wird das Betriebssystem übertragen. Nach Abschluss der Übertragung meldet sich der Pico als Laufwerk ab und in Compact Red Needle erscheint eine neue serielle Schnittstelle. Der Pico kann nun als Mess-Interface verwendet werden. Ein Klick auf die analogen Anzeigen schaltet Compact in den 3,3 Volt-Modus.
Pins am Pico und Pico W bei dieser Version:
- Digitale Ausgänge 0,1,2,3,4,5,6,7 an Pin 1,2,4,5,6,7,9,10
- Digitale Eingänge 0,1,2,3,4,5,6,7 an Pin 11,12,14,15,16,17,18,20
- Analog-Eingang A/B Pin 31/32
- PWM Pin 1
Die uf2-Datei verwandelt den Baustein in ein Interface für Compact Red Needle, wobei der Arduino-Sketch CLAB_v3 einfach mit dem Arduino-Core 3.1.0 übersetzt wurde. Geringfügige Anpassungen bei der Pinbelegung unterscheiden den Pico-Sketch von der Arduino-Variante.
/*
CLABv3 Sketch Compact Red Needle for Rasperry Pi Picos
H. Berndt 2023, Arduino IDE 2.0.4
http://www.hjberndt.de/soft/compactRN.html
Digitale Ausgänge 0,1,2,3,4,5,6,7 an Pin 1,2,4,5,6,7,9,10
Digitale Eingänge 0,1,2,3,4,5,6,7 an Pin 11,12,14,15,16,17,18,20
Eingang A/B Pin 31/32
PWM Pin 1
*/
#define AIN1 60
#define AIN2 58
#define DIN 211
#define DOUT 81
#define PWM 64
#define PWMPIN 0
byte Douts[] = {0,1,2,3,4,5,6,7}; //PICO DIGITAL OUT PINS 0 - 7 CLAB
byte Dins[] = { 8,9,10,11,12,13,14,15 };//DIGITAL IN PINS 0 - 7 CLAB
byte Bits[] = {1,2,4,8,16,32,64,128};//BitValues
//ANALOG A0 A1
void setup()
{ Serial.begin(9600); //Special CLAB
for(int i= 0;i<8;i++)pinMode(Douts[i],OUTPUT);
for(int i= 0;i<8;i++)pinMode(Dins [i],INPUT);// OPEN LOW
}
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 PWM: b=Serial.read(); //Ausgabebyte holen
analogWrite(PWMPIN,b);
break;
case DIN : for(i=0,b=0;i<8;i++) //PINS to BYTE
b+= (digitalRead(Dins[i])==HIGH?Bits[i]:0);
Serial.write(b);break;
case AIN1:
case 48: Serial.write(analogRead(A0)>>2);break;
case AIN2:
case 49: Serial.write(analogRead(A1)>>2);break;
case DOUT: b=Serial.read(); //Ausgabebyte holen
for(i=0;i<8;i++)
digitalWrite(Douts[i],b&Bits[i]?HIGH:LOW);
break;
default: break;
}
}
delay(10);
}
Dieser Quelltext ist im Archiv enthalten.
|
Mittels uf2-Datei kann ein RPi-Pico auf einfachste Weise in ein PC-Interface verwandelt werden, welches mit Compact genauso gut zusammen arbeitet, wie ein Arduino Uno. Bei den Ausführungen im Buch ist lediglich die unterschiedliche Betriebsspannung zu beachten, die beim Pico 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.
|