Eu dou aulas em duas faculdades. Uso powerpoint em todas as aulas, até porque a minha letra não é lá essas coisas
No nosso Arduino no Parque de ontem aproveitei para desenvolver um dispositivo+software para controle remoto do powerpoint, de maneira a que eu possa comandar os slides para frente e para trás à distância, até porque as salas são grandes.
A parte do Arduino é mole: um sensor infravermelho, que eu já tinha mostrado aqui em outro post, que é ligado direto nos pinos do Arduino:
O software do Arduino também não tem mistério nenhum:
#include <WProgram.h>
#include <NECIRrcv.h>
// look for IR codes and print them as they are received
#define IRPIN 5 // pin that IR detector is connected to
NECIRrcv ir(IRPIN) ;
void setup()
{
Serial.begin(9600) ;
ir.begin() ;
}
void loop()
{
unsigned long ircode ;
while (ir.available())
{
ircode = ir.read() ;
Serial.println(ircode,HEX) ;
}
}
A lib NECIRcv.h provê o objeto que lida com o receptor infravermelho. Ela se chama NEC mas é compatível cm outros sensores (o meu não é NEC).
A parte que proporcionou mais diversão foi o software do PC.
A "cara" do software é até simples, e dispensa maiores explicações:
Usando o Microsoft Office Interop, criei alguns objetos para abrir e manipular a apresentação:
Microsoft.Office.Interop.PowerPoint.Application ppApp = new Microsoft.Office.Interop.PowerPoint.Application();
ppApp.Visible = Microsoft.Office.Core.MsoTriState.msoTrue;
Presentations ppPresens = ppApp.Presentations;
Presentation objPres = ppPresens.Open(edFName.Text, Microsoft.Office.Core.MsoTriState.msoFalse,
Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoTrue);
Slides objSlides = objPres.Slides;
Microsoft.Office.Interop.PowerPoint.SlideShowWindows objSSWs;
Microsoft.Office.Interop.PowerPoint.SlideShowSettings objSSS;
objSSS = objPres.SlideShowSettings;
objSSS.Run();
objSSWs = ppApp.SlideShowWindows;
Em seguida, a criação e parametrização da classe SerialPort, que vai receber os comandos do Arduino:
System.IO.Ports.SerialPort sp = new System.IO.Ports.SerialPort();
sp.PortName = edPorta.Text;
sp.BaudRate = 9600;
sp.Open();
Por fim o tratamento das mensagens do Arduino. Os códigos usados no switch dependem do modelo de controle remoto:
bool navigation = true;
DateTime now = DateTime.Now;
string lastCmd = string.Empty;
while (navigation)
{
string cmd = string.Empty;
if (sp.BytesToRead > 0)
{
cmd = sp.ReadLine().TrimEnd('\r');
TimeSpan diff = DateTime.Now.Subtract(now);
if (diff.Milliseconds > 200)
now = DateTime.Now;
else
cmd = string.Empty;
}
switch (cmd)
{
case "BC4352AD":
ppPresens[1].SlideShowWindow.View.Next();
break;
case "BD4252AD":
ppPresens[1].SlideShowWindow.View.Previous();
break;
}
System.Windows.Forms.Application.DoEvents();
}
Agora as imagens:
E um vídeo mostrando a "coisa" funcionando:
Amanhã é o teste real, dou aulas de manhã e à noite.
Esse projeto pode ser usado como base para outros, controlando outras aplicações. Pode-se transformar o controle remoto num mouse, controlando qualquer aplicação.
É isso!
Aqui, os fontes e o executável do aplicativo que roda no PC e controla o powerpoint a partir do Arduino: pptRemote.zip
Abracadabraço,
Mauro Assis
Comentar
... com a vantagem que nem me sinto culpado, pois Arduino, além de ser muito mais gostoso que sorvete, não engorda.
Parabéns Mauro, excelente dinamica para motivar os alunos que ainda estão aprendendo a desenvolver. É como dar aula pra criança e o professor saboreando um sorvete refrescante. Estimula a todos a querer um pouco. Grande abraço. Eduardo Ferro
Olá Mauro.
Tem que por esses alunos no "reforço" de sábado tambem...rsrsrsss...
O bom deste projeto é que se trata de pouco hardware e muito software, fazendo o pessoal queimar mais cinzenta que os dedos.
Até sabadão!
Amigão,
O teste foi um sucesso absoluto. Usei o mesmo controle do carro, e a distância deu. Os alunos adoraram, acho que o Lab vai vender mais pelo menos uns 15 kits depois da minha demo.
Vou usar em todas as aulas daqui prá frente.
Nos vemos no sabadão!
[],
Mauro Assis
Boa Mauro!!!
Estive presente no último Arduino no parque e ví o "produto" nascendo.
O Mauro realmente é um cara persistente.
Diga pra gente; como foi o teste de "verdade"? Outro controle foi mais "longe"?
Até o próximo Arduino no Parque!!!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!
Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)