Modemduino – Controlando um modem AT com Atmega8 e Arduino

Posted in Planeta with tags , , , , , , , on novembro 13, 2015 by Jack

A necessidade é a mãe da invenção, pois, tive a necessidade de resetar um modem ADSL enquanto estava viajando e não perder o acesso remoto aos meu dados. Pra isso tiver que chamar um amigo, pra ir lá na cara do modem e resetá-lo. Muito incomodo pro coitado. Então juntei um antigo modem externo do tempo da internet discada com um Atmega8 e dois relés pra fazer o Modemduino, e controlar os relés remotamente via chamada de voz e o tom das teclas do telefone.

Para confeccionar a placa usei uma técnica bem conhecida, que é explicada neste vídeo do youtube e outros que estão disponíveis lá.


Modemduino


Modemduino Esquemático em PDF: Modemduino Esquemático

A seguir o código fonte do arquivo modemduino.ino:

#include <avr/wdt.h>
#include <avr/interrupt.h>

char inSerial[40];
int i=0;
int ledPin = 8;
int rele1 = 2;
int rele2 = 3;
//boolean x = false;
unsigned long agora;
unsigned long antes;

ISR(TIMER1_COMPA_vect)
{
//x=!x;
setaLed(false);
setaReles(false,false);
TCCR1B =  (0 << CS10) | (0 << CS11) | (0 << CS12);
}

void setup() {
wdt_disable();
//pinMode(9, OUTPUT);
//digitalWrite(9,HIGH);

//
DDRB = 0x01;
DDRD |= (1 << 2) | (1 << 3);

//setaLed(true);

TIMSK |= (1 << OCIE1A);

TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;

OCR1A = 30000;
//TCCR1B |= (1 << WGM12)| (0 << CS10) | (0 << CS11) | (1 << CS12);
interrupts();

Serial.begin(57600);

//piscaLed(ledPin);
setaLed(true);
Serial.println(“ATH0”);
delay(100);
readresponse();
setaLed(false);
delay(5000);
initvoicemodem();
setaLed(true);

//piscaLed(100);
wdt_enable(WDTO_2S);
antes = millis();

}

void loop() {
//digitalWrite(ledPin, x);
//setaLed(x);
readresponse();
//setaReles(false,true);
//wdt_reset();

//delay(200);
agora = millis();
if ((agora-antes)>60000) {
setaLed(false);
wdt_enable(WDTO_15MS);
delay(3000);
}

}

void setaLed(boolean x){
if (x) PORTB = 0x01;
else PORTB = 0x00;
}

void setaReles(boolean rl1,boolean rl2){
if (rl1) PORTD |= (1 << 2); //seta rl1
else PORTD &= ~(1 << 2);
if (rl2) PORTD |= (1 << 3); //seta rl2
else PORTD &= ~(1 << 3);
}

void readresponse(){
i=0;
char number;
boolean desliga = false;
wdt_reset();

if (Serial.available() > 0) {
while (Serial.available() > 0) {
inSerial[i]=(Serial.read());
delay(10);
i++;
}

inSerial[i]=’\0′;

//int k = 0;
for (int j=0;j<i;j++) {
if (inSerial[j]==16)  {  //DLE
number = inSerial[j+1];
if ((number >=’0′) && (number <= ‘9’)) {
setaLed(true);

if(number==’1′) {
setaReles(true,false);
TCCR1B |= (1 << WGM12)| (0 << CS10) | (0 << CS11) | (1 << CS12);
}

if(number==’2′) {
setaReles(false,true);
TCCR1B |= (1 << WGM12)| (0 << CS10) | (0 << CS11) | (1 << CS12);
}

if(number==’0′) {

wdt_enable(WDTO_15MS);
}

break;
}

}

}

inSerial[0]=’\0′;
}
}

void initvoicemodem() {
Serial.println(“AT+FCLASS=8”);
delay(100);
readresponse();

Serial.println(“ATI6”);
delay(100);
readresponse();

Serial.println(“ATS0=4”);
delay(100);
readresponse();

Serial.println(“AT&D0”);
delay(100);
readresponse();

Serial.println(“ATT”);
delay(100);
readresponse();

delay(1000);
}

Conjunção da Lua, Júpiter e Vênus

Posted in Astronomia, Planeta with tags , , , on março 25, 2012 by Jack

Neste fim de tarde de domingo, dia 25 de março de 2012, pode ser observado um fenômeno astronômico raro, a conjunção da Lua, Júpiter e Vênus. Clique na foto para abrí-la em alta resolução (aprox.3MB).

Conjunção da Lua, Júpiter e Vênus

O Duelo

Posted in Humor with tags , , , on outubro 13, 2011 by Jack

 

 

O Duelo

O Duelo.

(Copiado de http://www.loltops.org/funny-gun-fight/)

 

 

 

 

 

 

 

 

Curitiba teve Iridium Flare de intensidade máxima encoberto pelas nuvens.

Posted in Astronomia, Planeta with tags , , , , on outubro 3, 2011 by Jack

Após semanas de espera, poderemos observar um Iridium Flare de intensidade máxima hoje, 3 de outubro de 2011. O fenômeno é o reflexo do Sol nos painéis de um satélite Iridium, que formam uma rede de telefonia via satélite de mesmo nome. Para mais informações sobre o sistema Iridium e os Iridium Flares, acesse o link: https://icatorze.wordpress.com/2009/04/16/iridium-flare/

O Iridium Flare de hoje será no satélite Iridium 7 e terá magnitude -8, considerado máximo para o fenônemo.

O ponto de maior intensidade será nas coordenadas 25.4265°S 49.2716°W, próximo ao Largo da Ordem. Como o raio do reflexo é de aproximadamente 10km, ele poderá ser observado em sua intensidade máxima de praticamente qualquer lugar da cidade.

O satélite começará a aparecer por volta das 18:53, próximo a Lua e seguirá para o Sul. O flare ocorrerá por volta de 18:55 num ângulo de 44° acima do horizonte e na direção 180°, o que corresponde exatamente na direção Sul.

Infelizmente, o amado clima curitibano não permitiu a observação do flare. O céu vinha limpo até as 18:15 quando as nuvens começaram a chegar carregadas pelo leste. Estarei atento para os próximos e aguardando que venha com um céu limpo.

20 anos do disco Nevermind do Nirvana

Posted in Planeta with tags , , , , , , , on setembro 23, 2011 by Jack
Nevermind

Nevermind

Amanhã, 24 de setembro de 2011, completam-se 20 anos do lançamento do disco Nevermind, o  mais expressivo da banda Nirvana.

Nevermind foi o segundo disco da banda de Seattle, onde Kurt Cobain afrouxou a influência do cenário grunge da época e usou a influência de bandas como Pixies, R.E.M. e The Smithereens.

Kurt Cobain, Krist Novoselic e David Grohl, que havia se juntado a banda em 1990, gravaram o disco no estúdio Sound City Studios in Vans Nuys, na Califórina, em maio e junho de 1991.  Para pagar o combustível das viagens entre Seattle e Vans Nuys, a banda promoveu um show onde tocaram pela primeira vez Smeels Like Teen Spirit.

A primeira tiragem foi de 46251 cópias, sendo 35000 cópias destinadas ao mercado inglês, onde o disco Bleach havia feito bastante sucesso. A estimativa otimista da Geffen Records era que o disco vendesse 250 mil cópias. Mas em janeiro de 1992,  o álbum já havia batido Michael Jackson como número 1 na Billboard e eram vendidas 300000 cópias por semana.

Atualmente já foram vendidas mais de 30 milhões de cópias de Nevermind.

Pra fechar assista o clip de Smeels Like Teen Spirit:

Breve História Ilustrada da Humanidade

Posted in Planeta with tags , , , on agosto 5, 2011 by Jack

Origem da humanidade - thumbnail

Esta é uma ilustração resumida da história da humanidade. O que há de comum em todos os quadros é: guerra, mulheres, sexo e intriga.

CUIDADO: algumas passagens podem ser ofencivas para alguns públicos por conter cenas explícitas da humanidade.

Fonte: http://obviousmag.org/en/archives/2007/04/brief_illustrated_history_of_mankind.html

Breve História Ilustrada da Humanidade

Breve História Ilustrada da Humanidade

Enquanto isso em Esparta

Posted in Humor with tags , , , on julho 12, 2011 by Jack

Leonidas x Chuck Norris

%d blogueiros gostam disto: