Sommario:
2025 Autore: John Day | [email protected]. Ultima modifica: 2025-01-13 06:57
In questo progetto implementeremo un dispositivo che trasformi l'indicazione di Google Maps in un output sensoriale per dimostrare come potremmo utilizzare un sistema di navigazione integrato sul nostro corpo.
Lo implementeremo collegando la nostra scheda Arduino al nostro dispositivo mobile tramite un modulo Bluetooth. Con il nostro telefono possiamo inviare il segnale che vogliamo alla nostra scheda Arduino che si attiverà con diverse configurazioni del buzzer della moneta a seconda dell'indicazione.
Per ora le indicazioni verranno da un'app Bluetooth e non dall'effettivo Google Maps perché la nostra conoscenza della programmazione non va così lontano, tuttavia questo progetto mira a dimostrare che potremmo implementarlo se avessimo gli strumenti.
Ci saranno diverse indicazioni per questo, svoltare a destra o a sinistra (attivando il cicalino destro o sinistro), andare dritto (attivandoli entrambi una volta), percorso errato (attivando entrambi i segnali acustici due volte), fine del percorso (attivando 3 volte entrambi i segnali acustici) e girare leggermente a sinistra oa destra (attivando con minore potenza il buzzer sinistro o destro),
Passaggio 1: procurati i componenti
Ecco l'elenco dei componenti necessari per ricreare il progetto.
-Arduino Lilypad.
-Modulo Bluetooth HM-10
-Fili
-Cicalino monete (x2)
-Telefono (preferibilmente Android)
-Saldatore
-Filo di stagno
Passaggio 2: collega tutto
Passaggio 3: facciamo il codice
#includere
SoftwareSeriale HM10(10, 11); // RX = 10, TX = 11
char appData;
String inData = "";
void setup() {
Serial.begin(19200);
Serial.println("Seriale HM10 iniziato a 9600");
HM10.begin(9600); // imposta la seriale HM10 a 9600 baud rate
pinMode (6, USCITA);
pinMode (5, USCITA); }
ciclo vuoto() {
Prova di stringa;
HM10.ascolta(); // ascolta la porta HM10
while (HM10.available() > 0) { // se HM10 invia qualcosa allora leggi
appData = HM10.read();
inData = String(appData); // salva i dati in formato stringa
}
if (Serial.available()) { // Legge l'input dell'utente se disponibile.
ritardo(10);
HM10.write(Serial.read());
}
if (inData.equals("1")) { //se il numero inviato dal telefono è uguale a 1 allora attiva il buzzer destro a piena potenza per 200ms
ritardo(10);
Serial.println("DRETA");
analogWrite (6, 255);
ritardo (200);
analogWrite (6, 0);
}
if (inData.equals ("2")) { //se il numero inviato dal telefono è uguale a 2 attiva il buzzer sinistro a piena potenza per 200ms
Serial.println("ESQUERRE");
analogWrite (5, 255);
ritardo (200);
analogWrite (5, 0);
}
if (inData.equals ("3")) { //se il numero inviato dal telefono è 3 allora attiva entrambi i buzzer per 200 ms Serial.println("RECTE");
analogWrite (5, 255);
analogWrite (6, 255);
ritardo (200);
analogWrite (5, 0);
analogWrite (6, 0);
}
if (inData.equals ("4")) { //se il numero inviato dal telefono è uguale a 4 allora attiva entrambi i buzzer intermittenti 2 volte
Serial.println("ERRATO");
analogWrite (5, 255);
analogWrite (6, 255);
ritardo (100);
analogWrite (5, 0);
analogWrite (6, 0);
ritardo (100);
analogWrite (5, 255);
analogWrite (6, 255);
ritardo (100);
analogWrite (5, 0);
analogWrite (6, 0); }
if (inData.equals ("5")) { //se il numero inviato dal telefono è uguale a 4 allora attiva ad intermittenza entrambi i buzzer 3 volte
Serial.println("FINALE");
analogWrite (5, 180);
analogWrite (6, 180);
ritardo (100);
analogWrite (5, 0);
analogWrite (6, 0);
ritardo (100);
analogWrite (5, 180);
analogWrite (6, 180);
ritardo (100);
analogWrite (5, 0);
analogWrite (6, 0);
ritardo (100);
analogWrite (5, 180);
analogWrite (6, 180);
ritardo (100);
analogWrite (5, 0);
analogWrite (6, 0);
} if (inData.equals("6")) { //se il numero inviato dal telefono è uguale a 6 attiva il buzzer destro non meno di metà potenza
ritardo(10);
Serial.println("DRETA");
analogWrite (6, 100);
ritardo (200);
analogWrite (6, 0);
}
}
Passaggio 4: metti tutto a posto
Prendi una maglietta con una tasca e metti i cicalini uno su ogni spalla. I cavi passeranno attraverso la t-shirt e attraverso un foro che si trova sulla tasca frontale, lì posizionerai la scheda arduino con tutto ciò che è collegato. Per essere portatile basta collegare l'arduino con una batteria e metterlo anche nella tasca anteriore.
Volendo si può applicare lo stesso anche su alcuni guanti, in qualche punto del corpo in cui è facile distinguere le indicazioni sinistra/destra.
Se hai un Arduino Lilypad diventa molto più portatile.