Ciao a tutti.
Sono uno studente laureando in ingegneria informatica e, per la mia tesi, sto implementando una self-balanced car. L'obiettivo del mio tirocinio è stabilire una connessione tra Arduino UNO + Dragino Yùn Shield e Matlab tramite una connessione wifi, così da poter implementare alcune delle funzioni presenti nella demo del progetto originale su matlab.
Per provare la connessione tra arduino e matlab, ho prima implementato due codici (uno in arduino e uno in matlab) per effettuare la funzione di blinking sulla scheda arduino uno tramite un comando inviato da matlab. L'invio dei dati da matlab ad arduino funzione perfettamente.
Il problema arriva quando voglio far inviare ad arduino dei dati di qualsiasi tipologia (numeri e/o caratteri) per matlab. Questa cosa proprio non mi riesce!
Potete aiutarmi?
Ecco il codice di matlab per il blink
a=tcpip('192.168.240.1', 5555);
risp=input('Iniziamo si o no? ', 's');
yes='si';
while strcmp(risp, yes)
fopen(a);%stabilire connessione tcp/ip con arduino
disp('accendi o spegni?');
answ= input('','s');
fwrite(a, answ);
%str2double(fread(a,1))
fclose(a);
risp=input('Coontinuiamo si o no? ', 's');
end
ed ecco quello di arduino
#include <Console.h>
#include <Bridge.h>
#include <BridgeServer.h>
#include <BridgeClient.h>
BridgeServer server;
void setup() {
//start Bridge library
Bridge.begin();
Console.begin();
// init LED_PIN
pinMode(LED_BUILTIN,OUTPUT);
digitalWrite(LED_BUILTIN,LOW);
digitalWrite(LED_BUILTIN, LOW);
delay(2000);
digitalWrite(LED_BUILTIN, HIGH);
//listen for incoming connections
server.begin();
while (!Console);
Console.println("Accepting commands...");
}
void loop() {
//try to accept a new connection
BridgeClient client = server.accept();
if (client.available()){
Console.println("accendi o spegni?");
String command = client.readStringUntil("");
Console.println(command);
//perform the received action
if (command == "accendi"){
digitalWrite(LED_BUILTIN, HIGH);
Console.println("ACCESO");
//client.println(1);
//client.println(2);
delay(2);
}
if (command == "spegni"){
digitalWrite(LED_BUILTIN, LOW);
Console.println("spento");
//client.println(0);
//client.println(2);
delay(2);
}
else Console.println("Unknown command");
//close the connection
client.stop();
}
Grazie mille.