Diria que este post é uma continuação deste aqui. Nesse tutorial dei a conhecer uma aplicação feita em C# que permitia enviar informação pela porta serie. Mas muitas das vezes é util não só enviar como também receber. E por esse motivo aqui segue mais uma "achega". Todo o código fonte é disponibilizado ali mais abaixo.
O objectivo desta vez é fazer uma coisa com este aspecto:
Para usar o programa basta definir a porta COM e a baud rate. A janela do programa pode ser redimensionada ao gosto do utilizador para melhor visualização das mensagens a enviar/receber.
O caracter de terminação da comunicação série pode ser definido no código que disponibilizo através da seguinte linha:
const string TERM_CHAR = "\n";
Bastando substituir o \n por outro caracter à escolha.
Tendo em conta o código utilizado no Talk to Arduino, a única novidade é a existência de uma thread dedicada à recepção de mensagens.
Mensagens seguidas de "S:" correspondem a mensagens enviadas e, analogamente, mensagens seguidas de "R:" correspondem a mensagens recebidas.
O código enviado para o Arduino é apenas um exemplo. Neste caso o objectivo foi receber strings e dar-lhe o devido tratamento para que a informação transferida tivesse um aspceto mais human-friendly (e menos machine-friendly). O protocolo usado poderá ser completamente diferente e mais optimizado.
#define BAUD_RATE 9600
#define BUF_LEN 128
#define TERM_CHAR '\n'
void setup(){
Serial.begin(BAUD_RATE);
}
int i;
char incomingChar, buf[BUF_LEN];
void loop(){
//clean buffer
memset(buf,'\0',BUF_LEN); i = 0;
// read incoming message
while(Serial.available()){
incomingChar = (char) Serial.read();
if(incomingChar != TERM_CHAR && i != BUF_LEN)
buf[i++] = incomingChar;
else
break;
delay(1); // wait for another byte
}
// your protocol goes here
if(strcmp(buf,"Hello Arduino!") == 0)
Send("Hello PC!");
else
if(strcmp(buf,"How are you?") == 0)
Send("I'm reeeally fine.");
}
void Send(char *msg){
Serial.print(msg);
Serial.print(TERM_CHAR);
}
Posto isto... Enjoy!
Qualquer dúvida ou sugestão fica à vontade.
SerialTalk C# source code
SerialTalk.pde
Sam the Kid, Dj Cruzfader, Francisco Rebelo, Frederico Ferreira e João Gomes são os membros constituintes do projecto Orelha Negra.O álbum de estreia está agendado já para o início de 2010, sob o carimbo da Enchufada, e o colectivo aproveitou a quadra natalícia para oferecer o single Blessed em versão digital.
Gorillaz - Stylo ft.Bobby Womack & Mos Def! [NOVO]
Publicada por Funami à(s) 3/02/2010 Etiquetas: MúsicaO muito aguardado sucessor de "Demon Days" (2005) chama-se "Plastic Beach" e conta com as participações especiais de Lou Reed, Mos Def, Snoop Dogg, Bobby Womack, De La Soul, Mark E Smith (The Fall), Gruff Rhys (Super Furry Animals) e a dupla Mick Jones e Paul Simonon, dos The Clash.
01 “Orchestral Intro” (featuring Sinfonia ViVA)
02 “Welcome To The World Of The Plastic Beach” (feat. Snoop Dogg & Hypnotic Brass Ensemble)
03 “White Flag” (feat. Kano, Bashy & The National Orchestra For Arabic Music)
04 “Rhinestone Eyes”
05 “Stylo” (feat. Bobby Womack & Mos Def)
06 “Superfast Jellyfish” (feat. Gruff Rhys & De La Soul)
07 “Empire Ants” (feat. Little Dragon)
08 “Glitter Freeze” (feat. Mark E Smith)
09 “Some Kind Of Nature” (feat. Lou Reed)
10 “On Melancholy Hill”
11 “Broken”
12 “Sweepstakes” (feat. Mos Def & Hypnotic Brass Ensemble)
13 “Plastic Beach” (feat. Mick Jones & Paul Simonon)
14 “To Binge” (feat. Little Dragon)
15 “Cloud Of Unknowing” (feat. Bobby Womack and Sinfonia ViVA)
16 “Pirate Jet”
Só para recordar. Parece que o tempo desta banda já passou, mas a música continua bonita na mesma. E os clips também.
www.audioslave.com






