Alarma para moto...

Buenas a tod@s!

En principio, hace unos dias, dí por casualidad con vosotros, y pensé en hacer algo que todos o casi todos habreis hecho, un robot.
Pero se ha dado el caso de que a un compañero de curro le han "levantado" la moto. Yo tengo moto y algunos de vosotros también.
Bien, pues mi proyecto se va a tener que quedar para otro dia, pues mi prioridad es hacer una alarma. Algo que suene de verdad,
que se active con menearla. He visto el tuto de bricogeek con un acelerometro,

Y me asaltan dudas.

  1. ¿Cómo podria acoplarlo a la bateria de la moto, de 12v?
  2. ¿El acelerometro, al ser activado, toma como referencia los datos de cuando fue programado, o los datos de cuando es conectado?
  3. ¿Consumiria mucha bateria, de ser así como podria idearse un "sleep" para ahorro de energia?

Si hay algo parecido en el foro, no lo he encontrado. Pido disculpas.
De antemano agradezco vuestro tiempo.

:wink:

.Angael.

  1. ¿Cómo podria acoplarlo a la bateria de la moto, de 12v?
    El arduino acepta 12v asi que no hay problema

  2. ¿El acelerometro, al ser activado, toma como referencia los datos de cuando fue programado, o los datos de cuando es conectado?
    esto lo programaras tu. puedes hacer que cuando actives la alarma, el acelerometro guarde la referencia de datos de ese momento, o de 15 segundos despues (para asegurarte que te has ido y la moto esta estable)

  3. ¿Consumiria mucha bateria, de ser así como podria idearse un "sleep" para ahorro de energia?
    el arduino consume muy poco, sobre todo si no le añades la pantalla lcd, ya que no hace falta.
    luego tendrias que alimentar una buena bocina de alarma pero esta solo consumira el dia que sea necesario por lo que mejor que consuma!!!
    si usas la moto a diario o todas las semans no deberia de haber problema de bateria.

Jo. Que velocidad de respuesta!!!
Gracias.

  1. ¿Cómo podria acoplarlo a la bateria de la moto, de 12v?
    El arduino acepta 12v asi que no hay problema.
    Bien. Irá a Toma directa con fusible,para evitar subidas. La bateria de moto puede llegar casi a 14v.

  2. ¿El acelerometro, al ser activado, toma como referencia los datos de cuando fue programado, o los datos de cuando es conectado?
    esto lo programaras tu. puedes hacer que cuando actives la alarma, el acelerometro guarde la referencia de datos de ese momento, o de 15 segundos despues (para asegurarte que te has ido y la moto esta estable).
    Bien. Cómo podria usar un acelerometro de "nunchuk", el de la WII, y usar la libreria?. O mejor sigo con el tutorial anterior. Apelo a vuestra experiencia. Un empujoncito, please...

  3. ¿Consumiria mucha bateria, de ser así como podria idearse un "sleep" para ahorro de energia?
    el arduino consume muy poco, sobre todo si no le añades la pantalla lcd, ya que no hace falta.
    luego tendrias que alimentar una buena bocina de alarma pero esta solo consumira el dia que sea necesario por lo que mejor que consuma!!!
    si usas la moto a diario o todas las semans no deberia de haber problema de bateria.
    Bien. No, no pondre LCD. En su lugar los datos se volcaran en un relé para una bocina de las gordas, que no será el claxón.

acepto sugerencias y consejos...

:wink:

Angael

se me olvido decir que aunque la bateria sea de 12v y suba a 14v cargando, se peuden producir picos que estropeen el arduino
yo uso esto en un arduino que llevo en el coche...
http://www.ebay.com/itm/New-Waterproof-DC-Converter-12V-Step-Down-to-5V-3A-15W-Power-Supply-Module-Black-/360545205176?pt=LH_DefaultDomain_0&hash=item53f22b3bb8
http://www.ebay.com/itm/DC-DC-Converter-Step-Down-Buck-Module-12V-to-5V-3A-15W-5V-output-power-adapt-/260971105922?pt=LH_DefaultDomain_0&hash=item3cc3170e82

mejor usa un acelerometro tipo el del tutorial, ya que lo tienes todo explicado. el de la wii te dara mas quebraderos de cabeza

para activar el rele con que uses un pin digital y esto...

de donde has sacado ese quote mio?
yo no he escrito eso.
please borralo

Borrado.

Pues dandole a quote salio...

jaja ok

Buenas a tod@s.

Dando vueltas he encontrado un diseño que vendria de perlas.
pero necesitaria modificarlo para el fin deseado.

Necesitaria un poco de ayuda, pues en esto soy muy nuevo.
De momento tengo hecho un semaforo... :frowning:

_____ .__ __ .__
/ _||/ ||| ____ ____
\ \ __ \ \ _ / |/ \ / \
| | | | / || | / /| | | / /
/ >
|
| |
| |
||| /
_
|
| /_ /
/ //_____/

Example Sabotage Detection
Autor Stefan Hermann
Date 5.12.2011

*/

int myState=0;
int greenLedPin=11;
int redLedPin=7;
int blueLedPin=3;
int buttonPin=2;
int potPin=3;
int accZPin=0;
int accYPin=1;
int accXPin=2;

int startAccZ;
int startAccY;
int startAccX;

void setup(){
pinMode(greenLedPin,OUTPUT);
pinMode(redLedPin,OUTPUT);
pinMode(blueLedPin,OUTPUT);
pinMode(buttonPin,INPUT);
startAccZ=analogRead(accZPin);
startAccY=analogRead(accYPin);
startAccX=analogRead(accXPin);
}

void alertBlinking(){
digitalWrite(redLedPin,HIGH);
delay(50);
digitalWrite(redLedPin,LOW);
delay(100);
digitalWrite(blueLedPin,HIGH);
delay(50);
digitalWrite(blueLedPin,LOW);
delay(100);
}

boolean senseAcceleration(int myPotVal){
boolean myReturn=false;
myPotVal=map(myPotVal,0,1023,0,10);
if (analogRead(accXPin)>startAccX+myPotVal) myReturn=true;
if (analogRead(accYPin)>startAccY+myPotVal) myReturn=true;
if (analogRead(accZPin)>startAccZ+myPotVal) myReturn=true;
return myReturn;
}

void loop(){
//alertBlinking();
switch (myState){
case 0: //idle
if (senseAcceleration(analogRead(potPin))==true) {
digitalWrite(greenLedPin,LOW);
myState=1;
} else {
digitalWrite(greenLedPin,HIGH);
};
break;
case 1: // alert
alertBlinking();
if (digitalRead(buttonPin)==HIGH){
myState=0;
}
break;
}
delay(10);
}

Que necesitas del codigo?

Sergegsx, que controlas en el coche ?

Yo me dije que para que inventar de nuevo la rueda, me compre una hecha como esta (12 euros) : XD
http://www.ebay.com/itm/261153786013?item=261153786013&pt=Motorcycles_Parts_Accessories&cmd=ViewItem&hash=item3ccdfa889d&vxp=mtr

Hola.

Del código y esquema.
Creo que es cambiar los leds, que indican cuando se inclina dependiendo a que eje, se ilumina uno u otro.
Pues sería poner un relé en cada eje, o los tres ejes a un relé con salida a 12v, para un claxon, que ira amarrado y oculto en el carenado de la moto.

De la moto.
Pues salida de alimentacion de 12v a 7v con un interruptor para activar la placa. Eso es más fácil para mí.

Del proyecto.
Evolucionarlo para que se pueda conectar con un mando a distancia. Módulo con GPS y envio de coordenadas y foto. (He visto algo muy chulo). Pero de momento aprender de vosotros, que no es poco.

Gracias.

:wink:

.Angael.

Hombreee! La gracia esta en hacerla. Los chinos que sigan siendo chinos. Jeje.
Pero vamos, que me apunto la opcion.

Heke:
Yo me dije que para que inventar de nuevo la rueda, me compre una hecha como esta (12 euros) : XD
http://www.ebay.com/itm/261153786013?item=261153786013&pt=Motorcycles_Parts_Accessories&cmd=ViewItem&hash=item3ccdfa889d&vxp=mtr

Hola de nuevo.
Estoy hecho un p...lio en definitiva. Creo que necesito mas ayuda de la que pensaba.
No sé como hacerlo.
Tengo los tutos. Pero no se como activar el rele cuando los datos del acelerometro cambien.
Uso un delay despues de activarlo.

Gracias.

Pon tu código

Hola de nuevo!!

Aqui va el codigo:

/*
_____ .__ __ .__
/ _||/ ||| ____ ____
\ \ __ \ \ _ / |/ \ / \
| | | | / || | / /| | | / /
/ >
|
| |
| |
||| /
_
|
| /_ /
/ //_____/

Example Sabotage Detection
Autor Stefan Hermann
Date 5.12.2011

*/

int myState=0;
int sirenaPin=9;
int greenLedPin=11;
int redLedPin=7;
int blueLedPin=3;
int buttonPin=2;
int potPin=3;
int accZPin=0;
int accYPin=1;
int accXPin=2;

int startAccZ;
int startAccY;
int startAccX;

void setup(){
pinMode(sirenaPin,OUTPUT);
pinMode(greenLedPin,OUTPUT);
pinMode(redLedPin,OUTPUT);
pinMode(blueLedPin,OUTPUT);
pinMode(buttonPin,INPUT);
startAccZ=analogRead(accZPin);
startAccY=analogRead(accYPin);
startAccX=analogRead(accXPin);
}

void alertBlinking(){
digitalWrite(sirenaPin,HIGH);
delay(50);
digitalWrite(sirenaPin,LOW);
delay(50);
digitalWrite(redLedPin,HIGH);
delay(50);
digitalWrite(redLedPin,LOW);
delay(100);
digitalWrite(blueLedPin,HIGH);
delay(50);
digitalWrite(blueLedPin,LOW);
delay(100);
}

boolean senseAcceleration(int myPotVal){
boolean myReturn=false;
myPotVal=map(myPotVal,0,1023,0,10);
if (analogRead(accXPin)>startAccX+myPotVal) myReturn=true;
if (analogRead(accYPin)>startAccY+myPotVal) myReturn=true;
if (analogRead(accZPin)>startAccZ+myPotVal) myReturn=true;
return myReturn;
}

void loop(){
//alertBlinking();
switch (myState){
case 0: //idle
if (senseAcceleration(analogRead(potPin))==true) {
digitalWrite(greenLedPin,LOW);
myState=1;
} else {
digitalWrite(greenLedPin,HIGH);
};
break;
case 1: // alert
alertBlinking();
if (digitalRead(buttonPin)==HIGH){
myState=0;
}
break;
}
delay(10);
}

No entiendo mucho de esto, pero creo que cambiando la sirena por un chisme de esos de salida 5v a 12v y enchufando un claxon estaria listo. no?
:wink:
Gracias...

Angael

Una pregunta sin animo de ofender ¿me da la sensacion que no controlas mucho de electronica verdad?

Es que si es asi yo te aconsejaria fueras mas despacio o con proyecto mas pequeño, empezando por cosas basicas.

Tranki. No ofendes. Pero es algo que me ha gustado de siempre y claro, hay que aprender. Esto no es poner piezas y ya esta. Pero pense que una alarma estaria bien para empezar. Ademas me interesaria montarla...
Si no es mucha molestia. Donde me estoy equivocando?

Te comento:

Un claxon es de los cacharros que mas bateria consume, muchos amperios... tendrias que conectarlo directo a bateria, una bateria de moto, con suerte es de 9A/h imagina lo cortito que vas de potencia electrica.

Un arduino conectado sin modo sleep, cosa que tendras que hacer para poder ir leyendo el acelerometro y el receptor de radiofrecuencia te va a consumir unos cuantos miliamperios, un par de dias conectado y si tu moto es de las que tiene la luz fija al arranque probablemente no puedas.
Calcula por ejemplo a grosso modo 300mA /h x 24 horas = 7.2A. si son dos dias 0.3 x 48 = 14.4A.

Aparte deberias añadirle un modulo de alimentacion con filtro y proteccion para alimentar el arduino, que ni te imaginas la porqueria de interferencias que lleva la tension de un vehiculo (moto o coche) aparte del margen en que se mueve.

Por otro lado, emplearias varias disciplinas, lectura de acelerometro y comprobacion, lectura de receptor de radio y transmision, lectura y manejo de gps... control de salidas o entradas... son varias cosas que juntas suponen mucho codigo e hilar muy fino.

No esta mal como proyecto pero tendrias que empezar paso a paso y poco a poco modulo por modulo.

Eso incluye toda la programacion...

¿Tienes pensado luego como meterias todos los modulos en una caja y en la moto? recuerda que no tenemos espacio (salvo los propietarios de Goldwin o Bmw)

¿una placa encima de otra o vas a diseñar una global?

Y todo sellado y sujeto...

Intento plantear el escenario, no desanimarte, al contrario, espero que pelees mucho con el arduino y todo lo que lleva alrededor...

Pues no queria meterle tantas cosas.
Habia pensado en un segundo claxon, conectarlo a la bateria. Pero que se activara despues de que el acelerometro registrara variacion de posicion.
Seria, solo el arduino, con el voltaje reducido.
Enganchado a los pines el acelerometro.
Y a otro pin la salida de 5v a 12v para activar el claxon de alarma.

Gracias!