Usiamo una scheda a microcontrollore Arduino Nano per gestire i servizi di un plastico ferroviario analogico.

Edgardo Rosatti   febbraio 27, 2020   Commenti disabilitati su Usiamo una scheda a microcontrollore Arduino Nano per gestire i servizi di un plastico ferroviario analogico.
Print Friendly, PDF & Email

In questo articolo, vedremo come utilizzare la piccola scheda Arduino Nano per gestire i deviatoi tramite servocomandi di un tipico plastico ferroviario con funzionamento analogico.

L’idea di questo progetto parte da uno schema che l’amico Salvatore Pluchino del Gruppo Appassionati Scala TT mi ha inviato tempo fa e che serve per gestire l’azionamento con servocomando di un deviatoio sfruttando la logica programmabile di Arduino.

Il suo schema è molto semplice e sfrutta una porta di uscita per comandare un servocomando e una porta di ingresso per leggere lo stato di un pulsante con dei led per leggere lo stato del deviatoio.

Descrizione dello schema elettrico:

Il progetto riprende lo schema di Salvatore e lo espande per poter sfruttare tutte le porte di I/O di Arduino Nano. Non solo per la gestione dei servocomandi e dei deviatoi, ma anche di altri dispositivi generici.

Schema elettrico:

Lo schema elettrico del circuito è distinto sostanzialmente in tre parti:

– circuito di uscita per il controllo dei servocomandi (6), porte D3, D5, D6, D9, D10 e D11;

– circuito di ingresso per il comando dei servocomandi tramite pulsanti (12, tastierino numerico), porte A0, A1, A2, A3, A6 e A7;

– circuito di uscita e di controllo digitale tramite transistor (relè, led, ecc. 6), porte D2, D4, D7, D8, D12 e D13.

Gli ingressi analogici facenti capo alle porte A4 (SDA) e A5 (SCL), verranno usati per futuri utilizzi tramite bus I2c.

Vi sono dei morsetti per il collegamento dei fili per l’alimentazione esterna dei servocomandi a 5 VCC, per un bus seriale di tipo I2C (vedi sopra) e per l’alimentazione di Arduino VIN.
Il circuito di ingresso con i 6 pulsanti può essere separato dal circuito principale tramite un pratico connettore per agevolarne il montaggio dello stesso su una plancia.

Inoltre, con questo sistema è possibile collegare sensori di vario tipo al posto del tastierino numerico, come reed, sensori di infrarosso, sensori PIR ecc.
Una opzione non esclude l’altra.

Il funzionamento del tastierino numerico a 12 tasti si basa sul principio del partitore resistivo.
In pratica, per ogni porta di ingresso analogica di Arduino, abbiamo due resistenze da 1000 OHM collegate come partitore resistivo con due pulsanti normalmente aperti.
In questo modo, se non premiamo nessun tasto, avremo 5 Volt in uscita, se premiamo il tasto 1 avremo 2,5 Volt e se premiamo il tasto 2 avremo 0 Volt.

Partitori resistivi

Questo schema ci permette di comandare le funzioni di movimento di un servo montato sottoplancia per la gestione di un deviatoio.
Arduino Nano dispone di 8 porte di ingresso analogiche, ma noi ne utilizzeremo 6: A0, A1, A2, A3, A6 e A7.
Le porte A4 e A5 verranno usate in futuro per un sistema di gestione dei servi tramite bus seriale I2C.

In ultima analisi, abbiamo la possibilità di azionare 6 relè utili per gestire diverse funzioni del plastico, come polarizzazione del cuore, gestione segnali, sezionamenti sui binari, ecc.
Come dicevo sopra, una funzione di questa scheda non esclude l’altra, quindi il limite di funzionamento sta solo nella nostra fantasia e capacità di programmazione.

Scheda partitori resistivi

Partitori in funzione su bredboard

Qui sopra il tastierino a 12 pulsanti per il comando del sistema.

E l’output seriale delle funzioni dei tasti:

Serial port

Il circuito in fase di preparazione:

Tastierino e scheda madre

Il software del solo tastierino:

// Tastiera per 6 servocomandi su porte A0, A1, A2, A3, A6 e A7 su Arduino Nano
 
int pservo1 = A0;
int pservo2 = A1;
int pservo3 = A2;
int pservo4 = A3;
int pservo5 = A6;
int pservo6 = A7;
 
int pval1 = 0;
int pval2 = 0;
int pval3 = 0;
int pval4 = 0;
int pval5 = 0;
int pval6 = 0;
 
void setup() {
Serial.begin(9600);
}
 
void loop() {
pval1=analogRead(pservo1);
pval2=analogRead(pservo2);
pval3=analogRead(pservo3);
pval4=analogRead(pservo4);
pval5=analogRead(pservo5);
pval6=analogRead(pservo6);
if (pval1 > 700) {
Serial.print("Valore tasto per servo 1 = Non premuto = ");
Serial.println(pval1);
}
else if(pval1 < 700 && pval1 > 300) {
Serial.print("Valore tasto per servo 1 = Premuto 2 = ");
Serial.println(pval1);
}
else if(pval1 < 300) {
Serial.print("Valore tasto per servo 1 = Premuto 1 = ");
Serial.println(pval1);
}
if (pval2 > 700) {
Serial.print("Valore tasto per servo 2 = Non premuto = ");
Serial.println(pval2);
}
else if(pval2 < 700 && pval2 > 300) {
Serial.print("Valore tasto per servo 2 = Premuto 2 = ");
Serial.println(pval2);
}
else if(pval2 < 300) {
Serial.print("Valore tasto per servo 2 = Premuto 1 = ");
Serial.println(pval2);
}
if (pval3 > 700) {
Serial.print("Valore tasto per servo 3 = Non premuto = ");
Serial.println(pval3);
}
else if(pval3 < 700 && pval3 > 300) {
Serial.print("Valore tasto per servo 3 = Premuto 2 = ");
Serial.println(pval3);
}
else if(pval3 < 300) {
Serial.print("Valore tasto per servo 3 = Premuto 1 = ");
Serial.println(pval3);
}
if (pval4 > 700) {
Serial.print("Valore tasto per servo 4 = Non premuto = ");
Serial.println(pval4);
}
else if(pval4 < 700 && pval4 > 300) {
Serial.print("Valore tasto per servo 4 = Premuto 2 = ");
Serial.println(pval4);
}
else if(pval4 < 300) {
Serial.print("Valore tasto per servo 4 = Premuto 1 = ");
Serial.println(pval4);
}
if (pval5 > 700) {
Serial.print("Valore tasto per servo 5 = Non premuto = ");
Serial.println(pval5);
}
else if(pval5 < 700 && pval5 > 300) {
Serial.print("Valore tasto per servo 5 = Premuto 2 = ");
Serial.println(pval5);
}
else if(pval5 < 300) {
Serial.print("Valore tasto per servo 5 = Premuto 1 = ");
Serial.println(pval5);
}
if (pval6 > 700) {
Serial.print("Valore tasto per servo 6 = Non premuto = ");
Serial.println(pval6);
}
else if(pval6 < 700 && pval6 > 300) {
Serial.print("Valore tasto per servo 6 = Premuto 2 = ");
Serial.println(pval6);
}
else if(pval6 < 300) {
Serial.print("Valore tasto per servo 6 = Premuto 1 = ");
Serial.println(pval6);
}
delay(1000);
Serial.println();
}

Collegamento dei servi:

Una volta che abbiamo verificato il funzionameto dei 12 pulsanti, possiamo collegare i servocomandi tramite l’apposito connetore a sinistra di Arduino.

Montaggio servi

Per alimentare i servi è necessario collegare un alimentatore da 5 Volt sul morsetto GND e 5VCC posto a sinistra del connettore dei servi.

PCB controllo servi

Qui sopra la serigrafia del PCB con tutti componenti e le indicazioni peri cablaggi.

Alimentatore 5 VCC

I morsetti a destra della scheda Arduino servono per alimentare la scheda stessa tramite il pin VIN e GND con un alimentatore che eroghi una tensione compresa tra 7 e 12 VCC.

Il morsetto SDA e SCL serve per applicazioni future,

Tutto intorno alla scheda ci sono altri morsetti per collegare direttamente le bobine di 6 relè a 5 VCC.

Funzionamento:

Premendo i tasti della fila inferiore del tastierino, azioneremo il movimento delle squadrette dei servi di 30 gradi in senso antiorario. Contemporaneamente si azioneranno i led rossi ed i relè associati ai tasto premuto. Premendo i tasti della fila superiore otterremo un movimento di 30 gradi in senso orario e si disattiveranno i relè relativi.

Cablaggi:

Cablaggi

Il software definitivo:

// Controllo servi su Arduino Nano, Edgardo Rosatti 2020
 
#include <Servo.h> // Includiamo la libreria Servo.h pa la gestione pratica dei servocomandi
 
// Creazione degli oggetti servo
Servo mioservo1;
Servo mioservo2;
Servo mioservo3;
Servo mioservo4;
Servo mioservo5;
Servo mioservo6;
 
// Creazione delle variabili "pos" per definire la posizione iniziale dei servocomandi
int pos1 = 0;
int pos2 = 0;
int pos3 = 0;
int pos4 = 0;
int pos5 = 0;
int pos6 = 0;
 
// Definizione delle variabili "pservo" sulle porte analogiche di ingresso A0, A1, A2, A3, A6 e A7, le porte analogiche di ingresso A4 e A5 vengono utilizzate per l'interfaccia seriale I2C
int pservo1 = A0;
int pservo2 = A1;
int pservo3 = A2;
int pservo4 = A3;
int pservo5 = A6;
int pservo6 = A7;
 
// Definizione delle variabili sDA e sCL sulle porte analogiche A4 e A5
int sDA = A4;
int sCL = A5;
 
// Definizione delle variabili di lettura dello stato di A0, A1, A2, A3, A6 e A7
int pval1 = 0;
int pval2 = 0;
int pval3 = 0;
int pval4 = 0;
int pval5 = 0;
int pval6 = 0;
 
// Definizione delle variabili di assegnazione ai relè su porte digitali
int rele1 = 2;
int rele2 = 4;
int rele3 = 7;
int rele4 = 8;
int rele5 = 12;
int rele6 = 13;
 
void setup() {
Serial.begin(9600); // Inizializzazione della porta seriale a 9600 baud
 
// Imposta i pin di gestione relè su uscite digitali
pinMode(rele1, OUTPUT);
pinMode(rele2, OUTPUT);
pinMode(rele3, OUTPUT);
pinMode(rele4, OUTPUT);
pinMode(rele5, OUTPUT);
pinMode(rele6, OUTPUT);
 
// Assegnazione dei servi alle porte relative D3, D5, D6, D9, D10 e D11
mioservo1.attach(3);
mioservo2.attach(5);
mioservo3.attach(6);
mioservo4.attach(9);
mioservo5.attach(10);
mioservo6.attach(11);
 
// Posizionamento a 0 di tutti i servi
mioservo1.write(0);
mioservo2.write(0);
mioservo3.write(0);
mioservo4.write(0);
mioservo5.write(0);
mioservo6.write(0);
}
 
void loop() {
pval1=analogRead(pservo1);
pval2=analogRead(pservo2);
pval3=analogRead(pservo3);
pval4=analogRead(pservo4);
pval5=analogRead(pservo5);
pval6=analogRead(pservo6);
if (pval1 > 700) {
Serial.print("Valore tasto per servo 1 = Non premuto = ");
Serial.println(pval1);
}
else if(pval1 < 700 && pval1 > 300) {
Serial.print("Valore tasto per servo 1 = Premuto 2 = Spegni relè 1 = ");
Serial.println(pval1);
digitalWrite(rele1, LOW); // Spegni il relè 1
for(pos1 = 30; pos1 >= 1; pos1 -= 1) // Aziona il servo 1 antiorario
{
mioservo1.write(pos1);
delay(15);
}
}
else if(pval1 < 300) {
Serial.print("Valore tasto per servo 1 = Premuto 1 = Accendi relè 1 = ");
Serial.println(pval1);
digitalWrite(rele1, HIGH); // Accendi il relè 1
for(pos1 = 0; pos1 < 30; pos1 += 1) // Aziona il servo 1 orario
{
mioservo1.write(pos1);
delay(15);
}
}
if (pval2 > 700) {
Serial.print("Valore tasto per servo 2 = Non premuto = ");
Serial.println(pval2);
}
else if(pval2 < 700 && pval2 > 300) {
Serial.print("Valore tasto per servo 2 = Premuto 2 = Spegni relè 2 = ");
Serial.println(pval2);
digitalWrite(rele2, LOW); // Spegni il relè 2
for(pos2 = 30; pos2 >= 1; pos2 -= 1) // Aziona il servo 2 antiorario
{
mioservo2.write(pos2);
delay(15);
}
}
else if(pval2 < 300) {
Serial.print("Valore tasto per servo 2 = Premuto 1 = Accendi relè 2 = ");
Serial.println(pval2);
digitalWrite(rele2, HIGH); // Accendi il relè 2
for(pos2 = 0; pos2 < 30; pos2 += 1) // Aziona il servo 2 orario
{
mioservo2.write(pos2);
delay(15);
}
}
if (pval3 > 700) {
Serial.print("Valore tasto per servo 3 = Non premuto = ");
Serial.println(pval3);
}
else if(pval3 < 700 && pval3 > 300) {
Serial.print("Valore tasto per servo 3 = Premuto 2 = Spegni relè 3 = ");
Serial.println(pval3);
digitalWrite(rele3, LOW); // Spegni il relè 3
for(pos3 = 30; pos3 >= 1; pos3 -= 1) // Aziona il servo 3 antiorario
{
mioservo3.write(pos3);
delay(15);
}
}
else if(pval3 < 300) {
Serial.print("Valore tasto per servo 3 = Premuto 1 = Accendi relè 3 = ");
Serial.println(pval3);
digitalWrite(rele3, HIGH); // Accendi il relè 3
for(pos3 = 0; pos3 < 30; pos3 += 1) // Aziona il servo 3 orario
{
mioservo3.write(pos3);
delay(15);
}
}
if (pval4 > 700) {
Serial.print("Valore tasto per servo 4 = Non premuto = ");
Serial.println(pval4);
}
else if(pval4 < 700 && pval4 > 300) {
Serial.print("Valore tasto per servo 4 = Premuto 2 = Spegni il relè 4 = ");
Serial.println(pval4);
digitalWrite(rele4, LOW); // Spegni il relè 4
for(pos4 = 30; pos4 >= 1; pos4 -= 1) // Aziona il servo 4 antiorario
{
mioservo4.write(pos4);
delay(15);
}
}
else if(pval4 < 300) {
Serial.print("Valore tasto per servo 4 = Premuto 1 = Accendi il relè 4 = ");
Serial.println(pval4);
digitalWrite(rele4, HIGH); // Accendi il relè 4
for(pos4 = 0; pos4 < 30; pos4 += 1) // Aziona il servo 4 orario
{
mioservo4.write(pos4);
delay(15);
}
}
if (pval5 > 700) {
Serial.print("Valore tasto per servo 5 = Non premuto = ");
Serial.println(pval5);
}
else if(pval5 < 700 && pval5 > 300) {
Serial.print("Valore tasto per servo 5 = Premuto 2 = Spegni il relè 5 = ");
Serial.println(pval5);
digitalWrite(rele5, LOW); // Spegni il relè 5
for(pos5 = 30; pos5 >= 1; pos5 -= 1) // Aziona il servo 5 antiorario
{
mioservo5.write(pos5);
delay(15);
}
}
else if(pval5 < 300) {
Serial.print("Valore tasto per servo 5 = Premuto 1 = Accendi il relè 5 = ");
Serial.println(pval5);
digitalWrite(rele5, HIGH); // Accendi il relè 5
for(pos5 = 0; pos5 < 30; pos5 += 1) // Aziona il servo 5 orario
{
mioservo5.write(pos5);
delay(15);
}
}
if (pval6 > 700) {
Serial.print("Valore tasto per servo 6 = Non premuto = ");
Serial.println(pval6);
}
else if(pval6 < 700 && pval6 > 300) {
Serial.print("Valore tasto per servo 6 = Premuto 2 = Spegni il relè 6 = ");
Serial.println(pval6);
digitalWrite(rele6, LOW); // Spegni il relè 6
for(pos6 = 30; pos6 >= 1; pos6 -= 1) // Aziona il servo 6 antiorario
{
mioservo6.write(pos6);
delay(15);
}
}
else if(pval6 < 300) {
Serial.print("Valore tasto per servo 6 = Premuto 1 = Accendi il relè 6 = ");
Serial.println(pval6);
digitalWrite(rele6, HIGH); // Accendi il relè 6
for(pos6 = 0; pos6 < 30; pos6 += 1) // Aziona il servo 6 orario
{
mioservo6.write(pos6);
delay(15);
}
}
delay(500); // Imposta un ritardo di 1 secondo tra una scansioe e l'altra
Serial.println(); // stampa una linea vuota
}

Note:

Il software è abbondantemente commentato e non dovrebbe essere un problema interpretarlo per chi ha già esperienza con Arduino. Tuttavia, mi sento di dare qualche indicazione pratica per agevolare eventuali adattamenti in merito.

Il programma utilizza la porta seriale standard ad una velocità di 9600 baud che è molto utile quando si scrive il codice. Se si ritiene che il programma fuzioni bene, tutti i comandi relativi ad essa possono essere eliminati.

Alla fine della procedura di “setup” ci sono 6 comandi in serie per portare a 0 gradi la posizione di tutti i servi al momento dell’accensione del sistema.

// Posizionamento a 0 di tutti i servi
 mioservo1.write(0);
 mioservo2.write(0);
 mioservo3.write(0);
 mioservo4.write(0);
 mioservo5.write(0);
 mioservo6.write(0);

Se si desidera è possibile cambiare questi valori con un numero in gradi compreso tra 0 e 180. Il numero è tra parentesi tonde alla fine di ogni comado.

Questo vale anche per tutti gli altri comandi che azionano il movimento dei servi.

Alla fine di ogni routine di azionamento dei servi c’è un comando “delay” che ci permette di modificare la velocità di movimento dei servi. Qui è impostata a 15 millisecondi e serve per regolare il conteggio dei cicli “for”:

if (pval1 > 700) {
Serial.print("Valore tasto per servo 1 = Non premuto = ");
Serial.println(pval1);
}
else if(pval1 < 700 && pval1 > 300) {
Serial.print("Valore tasto per servo 1 = Premuto 2 = Spegni relè 1 = ");
Serial.println(pval1);
digitalWrite(rele1, LOW); // Spegni il relè 1
for(pos1 = 30; pos1 >= 1; pos1 -= 1) // Aziona il servo 1 antiorario
{
mioservo1.write(pos1);
delay(15);
}

Qui sopra è evidenziata una delle 12 routine decisionali dedicata al primo tasto della pulsantiera.

Funzioni I2c:
La scheda prevede l’utilizzo del bus seriale I2C tramite i morsetti ad esso dedicato e sono posizionati sotto i morsetti GND e VIN sulla destra sella scheda Arduino.

Tale protocollo per ora non viene usato, ma in futuro sarà possibile sfruttarlo per collegare insieme diverse schede di questo tipo per avere così il controllo di molti più deviatoi contemporaneamente. Ad esempio con 4 schede sarà possibile gestire 24 deviatoi e con 8 schede 48 deviatoi.

Il tutto sarà comandato da una scheda madre dotata di display LCD e tastierino alfanumerico a 16 tasti.

Elenco componenti:

5VCC AK500/2-H AK500/2-H CONNECTOR
D1 1N4148DO35-7 1N4148DO35-7 DO35-7 DIODE 58
D2 1N4148DO35-7 1N4148DO35-7 DO35-7 DIODE 58
D3 1N4148DO35-7 1N4148DO35-7 DO35-7 DIODE 58
D4 1N4148DO35-7 1N4148DO35-7 DO35-7 DIODE 58
D5 1N4148DO35-7 1N4148DO35-7 DO35-7 DIODE 58
D6 1N4148DO35-7 1N4148DO35-7 DO35-7 DIODE 58
I2C AK500/2-H AK500/2-H CONNECTOR
LED1 ROSSO LED3MM LED3MM LED 97
LED2 ROSSO LED3MM LED3MM LED 97
LED3 ROSSO LED3MM LED3MM LED 97
LED4 ROSSO LED3MM LED3MM LED 97
LED5 ROSSO LED3MM LED3MM LED 97
LED6 ROSSO LED3MM LED3MM LED 97
MODUL1 ARDUINO_NANO
R1 4700 R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R2 10k R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R3 330 R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R4 1k R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R5 1k R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R6 4700 R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R7 10k R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R8 330 R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R9 4700 R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R10 10k R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R11 330 R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R12 4700 R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R13 10k R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R14 330 R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R15 4700 R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R16 10k R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R17 330 R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R18 4700 R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R19 10k R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R20 330 R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R21 1k R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R22 1k R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R23 1k R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R24 1k R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R25 1k R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R26 1k R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R27 1k R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R28 1k R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R29 1k R-EU_R1206 R1206 RESISTOR, European symbol 41 R
R30 1k R-EU_R1206 R1206 RESISTOR, European symbol 41 R
S1 10-XX B3F-10XX OMRON SWITCH B3F-1000 176432 36M3542 72
S2 10-XX B3F-10XX OMRON SWITCH B3F-1000 176432 36M3542 72
S3 10-XX B3F-10XX OMRON SWITCH B3F-1000 176432 36M3542 72
S4 10-XX B3F-10XX OMRON SWITCH B3F-1000 176432 36M3542 72
S5 10-XX B3F-10XX OMRON SWITCH B3F-1000 176432 36M3542 72
S6 10-XX B3F-10XX OMRON SWITCH B3F-1000 176432 36M3542 72
S7 10-XX B3F-10XX OMRON SWITCH B3F-1000 176432 36M3542 72
S8 10-XX B3F-10XX OMRON SWITCH B3F-1000 176432 36M3542 72
S9 10-XX B3F-10XX OMRON SWITCH B3F-1000 176432 36M3542 72
S10 10-XX B3F-10XX OMRON SWITCH B3F-1000 176432 36M3542 72
S11 10-XX B3F-10XX OMRON SWITCH B3F-1000 176432 36M3542 72
S12 10-XX B3F-10XX OMRON SWITCH B3F-1000 176432 36M3542 72
SV1 MA03-2 MA03-2 PIN HEADER unknown unknown 15
SV2 MA03-2 MA03-2 PIN HEADER unknown unknown 15
SV3 MA03-2 MA03-2 PIN HEADER unknown unknown 15
SV4 MA08-1 MA08-1 PIN HEADER unknown unknown 10
SV5 MA08-1 MA08-1 PIN HEADER unknown unknown 10
T1 BC547 BC547 TO92 NPN TRANSISTOR 43
T2 BC547 BC547 TO92 NPN TRANSISTOR 43
T3 BC547 BC547 TO92 NPN TRANSISTOR 43
T4 BC547 BC547 TO92 NPN TRANSISTOR 43
T5 BC547 BC547 TO92 NPN TRANSISTOR 43
T6 BC547 BC547 TO92 NPN TRANSISTOR 43
X1 AK500/2-H AK500/2-H CONNECTOR unknown unknown 3
X2 AK500/2-H AK500/2-H CONNECTOR unknown unknown 3
X3 AK500/2-H AK500/2-H CONNECTOR unknown unknown 3
X4 AK500/2-H AK500/2-H CONNECTOR unknown unknown 3
X5 AK500/2-H AK500/2-H CONNECTOR unknown unknown 3
X6 AK500/2-H AK500/2-H CONNECTOR unknown unknown 3
X7 AK500/2-H AK500/2-H CONNECTOR unknown unknown 3