Importare waypoints su Skoda navigatore Amudsen

Dopo ben 3 gg di lettura dei forum e prove varie sono riuscito ad importare i miei POI sul nav Amudsen della Skoda; per il Columbus la procedura dovrebbe essere la stessa. Ho provato varie strade descritte nel web in qua e in la ma con gran sbattimento. L’unico modo funzionante è il seguente:

  • Convertire i POI dal nav precedente che può essere TomTom Garmin o altro, tramite un SW di conversione che si trova freeware in rete, in formato Excel, ne risulta un file .xlv disposto in 3 colonne di cui col1 e col2 sono le coordinate, la col3 è il nome del poi. In questa fase si possono modificare i dati, correggere nomi poi ecc da Excel. Attenzione che se la lista supera i 200 POI il nav Skoda lo tronca e va in errore, in questo caso dividere il file excel in piu parti, magari creando gruppi logici di poi, es. Clienti, hotel, ecc
  • Andare sul sito http://mydestination.skoda-auto.com/POIs che è dedicato Skoda, tramite l’opzione in basso di Import aggiungere tutti i file excel. Attenzione che l’importazione avverte che può prendere anche files di vari formati tipo .ASP .GPX ecc ma li ho provati tutti e non vanno, l’unico che va è il formato .XLS. Una volta finito salvare in formato proprietario Skoda, crea un file ZIP.
  • Copiate il file ZIP su SD memory card. NO USB, non funziona! Scompattare lo .zip ma mantere anche il file zippato. Dalla cartella scompattata copiare la sottocartella Personal POI e il file metainfo nella root della SD card (es E:\) e volendo si può cancellare il resto della cartella scompattata, io l’ho cmq lasciata che non fa male.
  • Accendere l’autoradio in modo NAV e andare in setup e premere versione. A questo punto dovrebbe cercare se è presente un aggiornamento software (in realtà i POI) e confermare di aggiornare.
  • Verificare la presenza dei personal poi anche a SD disinserita.

Un doppio semaforo con Arduino

Per i miei bimbi ho voluto realizzare un vero semaforo, come quelli che si trovano per strada, quindi 4 torrette con i tre colori rosso, giallo e verde, pilotate in parallelo due a due. Lo sketch al momento ha dei tempi impostati per il cambio di stato, in futuro penso di aggiungere un potenziometro collegato ad un ingresso analogico per variare a posteriori il tempo di persistenza del rosso. Essendo uno dei miei primi progetti ho usato l’istruzione goto e le labels, andrebbero evitate. Probabilmente oggi scriverei un programma strutturato meglio e piu corto, ma ho altri progetti, per cui questo funziona, i bimbi sono felici e lo lascio così :-)

Il pulsante cambia la modalità diurna (semaforo attivo) in notturna (semaforo lampeggiante).

Ecco lo sketch molto semplice, nessuna libreria richiesta; progettato con UNO poi attivato nel progetto finale con Iduino micro che è grande come una moneta, alimentato da pila 9V:

bool swap = 0; // se 1 lampeggia il giallo, se 0 va il semaforo, commuta su button premuto

void setup() {
// PINS: 2 pulsante – 3 verde – 4 giallo – 5 rosso – 8 verde2 – 9 giallo2 – 10 rosso2
pinMode(2, INPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
}

void loop() {
inizio:
delay (500);
while (swap == 0 ) {
digitalWrite(3, HIGH); digitalWrite (8, LOW);
digitalWrite(4, LOW); digitalWrite (9, LOW);
digitalWrite(5, LOW); digitalWrite (10, HIGH);
for (int i = 0; i <= 50; i++) {
if (digitalRead(2) == 1) {
swap = 1;
goto inizio;
}
delay (100);
}
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
for (int i = 0; i <= 30; i++) {
if (digitalRead(2) == 1) {
swap = 1;
goto inizio;
}
delay (100);
}
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
for (int i = 0; i <= 5; i++) {
if (digitalRead(2) == 1) {
swap = 1;
goto inizio;
}
delay (100);
}
digitalWrite(8, HIGH); digitalWrite (3, LOW);
digitalWrite(9, LOW); digitalWrite (4, LOW);
digitalWrite(10, LOW); digitalWrite (5, HIGH);
for (int i = 0; i <= 50; i++) {
if (digitalRead(2) == 1) {
swap = 1;
goto inizio;
}
delay (100);
}
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
for (int i = 0; i <= 30; i++) {
if (digitalRead(2) == 1) {
swap = 1;
goto inizio;
}
delay (100);
}
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
for (int i = 0; i <= 50; i++) {
if (digitalRead(2) == 1) {
swap = 1;
goto inizio;
}
delay (5);
}
}
while (swap == 1 ) {
digitalWrite(3, LOW); digitalWrite (8, LOW);
digitalWrite(4, HIGH); digitalWrite (9, LOW);
digitalWrite(5, LOW); digitalWrite (10, LOW);
for (int i = 0; i <= 5; i++) {
if (digitalRead(2) == 1) {
swap = 0;
goto inizio;
}
delay (100);
}
digitalWrite(3, LOW); digitalWrite (8, LOW);
digitalWrite(4, LOW); digitalWrite (9, HIGH);
digitalWrite(5, LOW); digitalWrite (10, LOW);
for (int i = 0; i <= 5; i++) {
if (digitalRead(2) == 1) {
swap = 0;
goto inizio;
}
delay (100);
}
}

}