Bienvenido, Invitado |
Tienes que registrarte para poder participar en nuestro foro.
|
|
|
Arduino Digispark + batería de LiPo de 3,7V |
Enviado por: lloyder - 23-09-2015, 05:54 PM - Foro: Arduino
- Respuestas (1)
|
|
Buenas, tengo entre manos un Arduino Digispark y me gustaría alimentarlo con una batería de LiPo. Tengo el cargador para administrar bien la carga de la batería, pero el caso es que no se muy bien como conectar la salida de la batería (salida del mismo cargador) que oscila entre 3,7 y 4,2V dependiendo de si está cargando o no. Sabéis si se puede alimentar el digispark con menos de 5V? Por la pata Vin capaz?
Dejo el enlace del digispark que he comprado ( alimentado por el Usb va perfecto)
Gracias.
http://www.aliexpress.com/item/Free-ship...32241.html
|
|
|
D-Limoneno para impresión 3D |
Enviado por: Filament2print - 23-09-2015, 03:47 PM - Foro: Tiendas colaboradoras
- Sin respuestas
|
|
El D-limoneno ( http://www.filament2print.com/producto/d-limoneno/ ) es un disolvente natural biodegradable que se extrae del aceite de las cáscaras de los cítricos. El D-Limoneno se utiliza para la disolución de los filamentos HiPS (poliestireno). ( http://www.filament2print.com/producto/h...ina-750gr/ )
El HiPS es un filamento que usado entre otros usos como material de soporte debido a su especial característica de disolución en D-Limoneno. El filamento HiPS se disuelve en un plazo de 12 a 24 horas al ser sumergido en D-Limoneno (sin necesidad de ninguna acción mecánica).
Se obtienen grandes resultados de la combinación de ABS con HiPS (como material de soporte). El HiPS se disuelve completamente en D-limoneno y sin embargo el D-Limoneno no interactúa con el ABS. Es necesario disponer de una impresora con doble extrusor.
|
|
|
problema con el modulo L298 |
Enviado por: homer32 - 23-09-2015, 12:28 PM - Foro: Arduino
- Respuestas (1)
|
|
Hola,
me pasa una cosa muy rara y no se que puede ser.
cargo el sketch a la placa arduino (es para controlar dos motores, utilizo un modulo con un L298).
conecto el monitor serial y me da unos valores correctos, miro la salidas que van conectadas al Enable del modulo L298 y con el osciloscópio y dan un pwm correcto. Miro las salidas que van conectadas a In1, In2, In3, In4, y parece que cambian correctamente para cambiar de sentido de giro.
hasta aquí todo parece correcto, ahora viene lo raro, desconecto el usb y conecto una fuente de alimentación a 9V para alimentar arduino y el modulo L298, se encienden las luces del arduino (on, L y la del driver que controla los motores)y no hace nada, miro con el osciloscopio y no tengo señal de pwm a la salida del arduino ni señal en los pines de dirección.
Alguien sabe que puede estar pasando?
Código: /* codigo del blog de roboblogs, lectura de la IMU con el filtro complementario
falta incorporar el control PID i salida de los motores */
#include <Wire.h>
//Direccion I2C de la IMU
#define MPU 0x68
//Ratios de conversion
#define A_R 16384.0
#define G_R 131.0
//Conversion de radianes a grados 180/PI
#define RAD_A_DEG = 57.295779
//MPU-6050 da los valores en enteros de 16 bits
//Valores sin refinar
int16_t AcX, AcY, AcZ, GyX, GyY, GyZ;
//Angulos
float Acc[2];
float Gy[2];
float Angle[2];
int llanta_I= 10;
int llanta_D= 11;
void setup()
// Se inicia la comunicación por I2C con el dispositivo MPU, y se “activa” enviando el comando 0.
// También se inicia el puerto de série para ver los resultados.
{
Wire.begin();
Wire.beginTransmission(MPU);
Wire.write(0x6B);
Wire.write(0);
Wire.endTransmission(true);
Serial.begin(9600);
pinMode (llanta_I, OUTPUT);
pinMode (llanta_D, OUTPUT);
}
void loop()
{
//Leer los valores del Acelerometro de la IMU
Wire.beginTransmission(MPU);
Wire.write(0x3B); //Pedir el registro 0x3B - corresponde al AcX
Wire.endTransmission(false);
Wire.requestFrom(MPU,6,true); //A partir del 0x3B, se piden 6 registros
AcX=Wire.read()<<8|Wire.read(); //Cada valor ocupa 2 registros
AcY=Wire.read()<<8|Wire.read();
AcZ=Wire.read()<<8|Wire.read();
//Se calculan los angulos Y, X respectivamente.
Acc[1] = atan(-1*(AcX/A_R)/sqrt(pow((AcY/A_R),2) + pow((AcZ/A_R),2)))*RAD_TO_DEG;
Acc[0] = atan((AcY/A_R)/sqrt(pow((AcX/A_R),2) + pow((AcZ/A_R),2)))*RAD_TO_DEG;
//Leer los valores del Giroscopio
Wire.beginTransmission(MPU);
Wire.write(0x43);
Wire.endTransmission(false);
Wire.requestFrom(MPU,4,true); //A diferencia del Acelerometro, solo se piden 4 registros
GyX=Wire.read()<<8|Wire.read();
GyY=Wire.read()<<8|Wire.read();
//Calculo del angulo del Giroscopio
Gy[0] = GyX/G_R;
Gy[1] = GyY/G_R;
//Aplicar el Filtro Complementario
Angle[0] = 0.98 *(Angle[0]+Gy[0]*0.010) + 0.02*Acc[0]; //filtro angulo X
Angle[1] = 0.98 *(Angle[1]+Gy[1]*0.010) + 0.02*Acc[1]; //filtro angulo Y
//Mostrar los valores por consola
//Serial.print("Angle X: "); Serial.print(Angle[0]); Serial.print("\n");
//Serial.print("Angle Y: "); Serial.print(Angle[1]); Serial.print("\n---------\n");
delay(10); //Nuestra dt sera, pues, 0.010, que es el intervalo de tiempo en cada medida
/* ____________________________
control de los motores
____________________________
*/
int atras=0;
int adelante=0;
int ab= floor (3*(float (Angle[1]))); // convierto el angulo Y a un valor que va de 257 a -257 y lo guardo en la variable (ab)
// Serial.print(ab); Serial.print("\n---------\n");
ab= (ab*3); /* se multipica por 3 para que el valor ab (que es el pwm de los motores) llege a los 255 o -255 más rapidamente,
aproximadamente a los 30 grados
*/
if (ab < -255)
{
ab=-255;
}
if (ab > 255)
{
ab=255;
}
if (ab>0){
atras= ab; // PWM de los motores atras (las dos ruedas funcionan al tiempo)
}
if (ab<=0){
adelante=(-1*ab); // PWM los motores van hacia adelante
}
Serial.println(atras);
Serial.println("\n-------------/n");
Serial.println(adelante);
// Sentido de giro de los motores
if (adelante != 0){ // no se permite que se envie el comando hacia adelante y hacia atras al tiempo
if (atras == 0){
analogWrite(llanta_I,adelante);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
analogWrite(llanta_D,adelante);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
}
}
if (atras != 0){ // no se permite que se envie el comando hacia adelante y hacia atras al tiempo
if (adelante == 0){
analogWrite(llanta_I,atras);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
analogWrite(llanta_D,atras);
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
}
}
// Serial.print(ab); Serial.print("\n---------\n");
}
|
|
|
Problema CC3D atom.No reconoce COPTERCONTROL, AYUDA !!!!!! |
Enviado por: isergi - 23-09-2015, 12:12 PM - Foro: RadioControl
- Respuestas (1)
|
|
Buenos dias a todos, he instalado una cc3d atom en un robocat y no me sale la opcion de conexión USB : COPTERCONTROL.
Tengo una cc3d normal y nunca he tenido ningun problema, al conectar el usb flashea pero ni en el wizard ni en el boot del firmware me deja hacer nada, tengo la version correcta de openpilot 15.02.02 ..... no se que tengo que hacer, alguna sugerencia maestros
|
|
|
|