El hilo del arduino(aut. y robotica industrial)

Fyn4r

Para programar la raspberry recomiendo python, no le falta de nada aunque obviamente cada uno lo que vea más cómodo xd

Y si, el dúo con un arduino es genial

2 respuestas
Igneus

#331 Ni hablar, en c + ensamblador como los autenticos machotes :clint:

1
raid

#331 Para programar en la raspberry pi, puedes en python, en c, en... uff, en lo que quieras. Decían antes que como lleva un S.O. hay que tener muy presente sus pros y sus contras.

Lo que suele hacer la gente es programar el GPIO (en c / python) ahora, por ejemplo se me ocurre que puedas tener una interfaz web proporcionada por el servidor apache instalado también en la raspberry y esta pueda actuar con GPIO.

Yo por ejemplo, monté una web que me iba enseñando capturas de pantalla a través de una webcam en la misma raspberry pi (una por minuto), pero si la webcam detectaba un movimiento en la imagen, empezase a enviar fotogramas por ftp a un servidor.

Programando los GPIO de la raspberry quería poner dos punteros laser apuntando a unas fotoresistencias, y que cuando se abriese el circuito, enviar un whatsapp a mi teléfono. Bueno, aquello quedó en agua de borrajas por falta de tiempo, aunque llegué a reunir información de todo lo que pudiese necesitar (incluso la api de whatsapp en lengaje php para el servidor)

2 respuestas
Fyn4r

#333 ya, en el fondo es linux, como dice el colega de arriba en ensamblador si hace falta xD

1 respuesta
CrIpI

#333 #334 C esta bien y aprovechar esta oportunidad para aprender python me pareceria buena.

Por que dices fynar lo de "dúo con un arduino es genial" ???

Os parece buena opcion entonces Raspberry?

2 respuestas
Fyn4r

#335 porque es facil conectar un arduino a una raspberry (con la historia esta de GPIO) y establecer una conexion serial entre ellos (o eso tengo entendido vamos, tengo la raspberry desde hace 2 días aun no probé nada xd)

A mi la raspberry (o algun chisme del estilo) me parece cojonuda aunque en principio es un bicho orientado a algo distinto de una placa como arduino, stellaris, etc.

No sabría decirte y si bien son "baratos" quieras que no con 2 chorradas pones el gasto en 3 cifras xD

1 respuesta
gonya707

#336 Sí, yo creo que ese es el principal problema xD

Tengo un monton de placas de desarrollo para hacer mis chorradas pero el Raspberry Pi lo veo caro como placa de desarrollo, y en principio lo de tener Linux no me interesa en absoluto.

Es barato para lo que es, pero para aprender a programar microcontroladores y hacer cosillas quiza es un poco sobredimensionado.

raid

#335 Efectivamente, ya lo ves en los otros comentarios.

A cada cosa su funcionalidad.

Usar una raspberry pi para encender un led... es demasiado despilfarro. Ahora, yo por ejemplo, otra utilidad que le dí, me monté un servidor de mapas (si, tipo google maps y tal, pero propio, con mi propia cartografía y mis propias bases de datos).
Como puedes intuir, una raspberry pi es un ordenador en pequeñito, lleva su S.O. (generalmente Linux, no sé si hay otras distribudiones disponibles que no sean linux) y un buen uso podría ser tener tu propio servidor Linux (en plan mini, claro) de bajo coste y bajo consumo eléctrico.

Si quieres encender leds, programar en assembler o en C como mucho. Jugar con entradas y salidas analógicas y digitales, sensores de diversos tipos, etc... Lo suyo es un microcontrolador con su típica placa de desarrollo y a correr.

Arduino
PIC
MSP Texas Instruments Launchpad
Motorola HC12 (con esta hice algo en la uni, pero resultaba carísima si la querías comprar)
Stellaris (me ha parecido leer posts atrás...)

Aprovecho el hilo para preguntar aqui en plan heavy:

Sería complicado reproducir un fichero mp3 usando un micro de estos???
A ver que igual se me está yendo la castaña con la pregunta eh?
Que se necesitaría?

  • lector de tarjeta SDcard
  • un altavoz
  • un Arduino (u otro tipo de placa+micro)

Tengo en cuenta que para empezar, un mp3 es un fichero comprimido, así que se necesitará cierto software en forma de librería para ir descomprimiendo, lo cual seguramente consumirá recursos de hardware.

Es una burrada pensar esto con micros verdad??? o no??

1 respuesta
gonya707

#338 Nah, puedes perfectamente. Decodificar mp3 es a muy grandes rasgos hacer un puñao de transformadas de fourier y es un algoritmo que está optimizadisimo para que los microprocesadores lo hagan sin despeinarse.

Decodificar el mp3 no es el problema que deberia preocuparte, si no como dar salida, tendrias tres opciones

  • Usar algun protocolo serie rapido como USB o Firewire (vale, USB no es que sea la ostia de rapido pero para dos canales de audio vale)

  • Usar 32 GPIO (supongo que sera audio estéreo con muestras de 16 bit) , ponerlos a funcionar a 44100 Hz (muestreo de calidad CD) y usar dos DAC paralelo de 16 bit para obtener las señales de audio.

  • Usar PWM a saco como hacen los amplificadores clase D. Simplemente pones un PWM a funcionar a una frecuencia brutal mientras el ancho de ciclo simboliza la amplitud de la muestra. La pega con esto es que necesitarias PWM con resolucion de 16 bit si no quieres perder calidad y tanta resolucion no es muy habitual en un micro, pero con menos puede sonar igualmente.

  • Se me ha ocurrido otra por el camino, usar el PWM para hacer una modulación sigma-delta, como hace el SACD

1 respuesta
raid

#339 Vale!!

Yo que yo veía dificil = fácil;
Lo que yo veía facil = difícil;
println("me acabo de cagar en los calzones" );
exit(1);

gonya707

Mas ofertillas por cyber monday:

Digispark, un stick USB compatible con Arduino pequeñisisisisimo por $6.95

https://www.tindie.com/products/digistump/digispark-the-tiny-arduino-enabled-usb-dev-board

Controlador por silbido $16.10

https://www.tindie.com/products/limpkin/the-whistled-control-your-lights-by-whistling/

Placa de desarrollo de AtMega $13.50

https://www.tindie.com/products/YT2095/atmega16-core-sanguino-arduino-robitics-ham-radio-general-purpose-breakout-board/

Enclosures para Raspberry Pi

https://www.tindie.com/stores/RaspberryPiCafe/

Placa de desarrollo para micros de Maxim

https://www.tindie.com/products/rajbex/io-experimenter-board-pcb/

3
raid

Oh, que bonita la caja de la raspberry, pero cuesta casi como la raspberry XD

El tema raspberry me ha recordado esta info que me pasó mi hermano

Aprovecho el hilo para solicitar vuestra ayuda.
Anoche estuve jugando con mi duemilanove y.... se me partió un trozo de cable de prueba en un pwm. Ahora no sé cómo sacarlo. no sé si ir con otro cable con la punta estañada y calentarlo a ver si se suelda y puedo extraerlo o cómo podría hacerlo.

#343 No me da para estirar con nada, dijéramos que se ha partido a 1/4mm por debajo del borde. Descarto cualquier intento con pinzas o similar. Lo único que se me ha ocurrido es intentar soldarlo a otro cable y tirar de él... pero es que voy a derretir el plástico... grrrr. Lo de usar la patilla de una resistencia o condensador, no sé, me arriesgo a hundir más el cable ¿no?

#344 Es el ángulo de la foto Está hundido por debajo del borde, por lo que unas pinzas no entran.

2 respuestas
E

#342 Prueba con unas pinzas para depilar, también se pueden sacar con la patilla de algún componente. Yo no calentaría por no derretir el plastico

1 respuesta
gonya707

Han venido los reyes :p

#342 joe, no lo veo tan profundo xD usa unas pinzas finitas, eso deberia salir facilmente

2 respuestas
ArThoiD

#344 Que tal esas placas? Son potentes??

Has pedido muestras o las has comprado?

1 respuesta
gonya707

#345 Ojala se pudieran pedir muestras de placas de desarrollo xDDDDD.

Tengo que probar aun el IDE y el lenguaje, ya os ire informando

Igneus

Me quedo por aquí a ver esos progresos. Yo al final pedí la que viene con giroscopio, acelerómetro y brújula (STM32F3) y ya me llegó, asi que también subiré alguna cosilla cuando tenga tiempo de probarla (solo la he sacado del paquete y he probado el firmware de prueba que viene con ella xD)

gonya707

Grabación de un sintetizador FM que hice con un Stellaris. Cuidado que esta muy alto.

Estoy escribiendo un artículo en mi blog pero estoy medio dormido y no proceso bien pensando en inglés ya XD

1
raid

Ya he solucionado #342

(me doy cuenta del escaso tiempo libre que tengo para estas cosas... joder, algo tan simple como dedicarle unos minutos a reparar mi arduino, me ha llevado semanas)

reparación

Aprovecho el post:

Alguien sabe de algún pequeño transformador (el tamaño importa) para pasar de 220VAC a 12VDC sin patillas de enchufe? lo conectaría directamente a la red eléctrica.
Lo que se me ha ocurrido es coger un transformador viejo (tipo como el de los teléfonos movil o similar) y desmontarlo para quedarme únicamente con la circuitería. Obviamente, si se vende algo encapsulado y en plan decente y no es muy caro... me lanzaría a ello.

2 respuestas
S

duda rapida!! las interrupciones funcionan igual con lenguaje arduino que con ensamblador? es decir, el programa esta ejecutando y cuando salte algo (que este en irq por ej, un boton) pasamos a la rutina de interrupcion?? gracias!
#349 lo k no hagas nunca es coger el trafo puente de 6 diodos y condensador aunque parezca facil porque puedes prepararla gorda xd

2 respuestas
B

#349 yo estuve a punto de darte esa solución lo malo es el resultado final que has obtenido

1 respuesta
gonya707

#350 Si funcionan así. Lo que no piedo asegurarte es que las interrupciones se desabiliten mientras estes dentro del handler de la interrupcion. Se que los pic lo hacen pero otros, como los arm, no.

pero vamos el funcionamiento tipico de las interrupciones es igual independientemente del lenguaje

raid

#350 Uff, no no... no me atrevo a tal cosa... soy demasiado inexperto como para atreverme.

#351 No ha quedado tan mal. Teniendo en cuenta que no podía acceder con ningún tipo de alicate ni nada... Además, en el primer intento no salió, se me petó antes la soldadura. Al segundo intento conseguí que soldara algo más fuerte y pude extraerlo (no salió precísamente suave, y temía bastante a que se me rompiese la soldadura otra vez).
Si, ha quedado feote, pero el pin 11 funciona sin problemas.

Lo que sí he aprendido es a no usar según que tipo de cable, porque vaya putada cuando ves que se parte a ran de conector.

#354 Si fueras una tia te buscaba para echarte un polvo. Vaya currada... Me voy para ese hilo a chafardear.

1
1 mes después
gonya707

Refloto esto para anunciaros que he hecho un tocho hilo introductorio para el desrrollo de hardware con microcontroladores en el foro de desarrollo y diseño

http://www.mediavida.com/foro/dev/programacion-desarrollo-microcontroladores-501665

Con esto espero que me dejen de llover MPs preguntando con que empezar a programar :D

3
neo-ns

Como se que sabeis mucho y yo de electronica ando jodido.. al tema!

Tenia un banco de pruebas del 1991 para motos "sacar cv, rpm, par motor" en un pc intel 133, conectado por puerto serie en una placa echa a mida en su dia por pci.

El pc se jodio hace un tiempo y hace dias pense, coño... el arduino puede hacer todo y aprobechando que tengo el Arduino Leonado "el famoso de 9$" intentar leer datos y luego ya es otra historia.

El caso es que tengo un encoder de la marca Elcsis, se que 2 cables son para dar alimentacion en 5v, supongo que el blanco y el rojo. y los otros 4 para leer si rota a izquierda o derecha, actualmente solo tenia en uso el cable azul, blanco y rojo.

Yo lo que necesito es leer los datos de dicho encoder y tendre que hacer algun programa para exportar los datos a un archio o algun software para ver en tiempo real el encoder que me muestra.

De los cables puedo sacar un poco de referencia de aqui:

Por colores y version, que en el mio esta escrito: E5-600-5-BZ-CV-2,5

Tengo los canales A,B y C

pd: Por el 600 puedo entender que son 600 pulsos por vuelta?

neo-ns

Ahora tengo este codigo:

 int val; 
 int encoder0PinA = 3;
 int encoder0PinB = 4;
 int encoder0Pos = 0;
 int valor;
 int valoranterior;
 int encoder0PinALast = LOW;
 int n = LOW;

 void setup() { 
   pinMode (encoder0PinA,INPUT);
   pinMode (encoder0PinB,INPUT);
   Serial.begin (115200);
 } 

 void loop() { 
   n = digitalRead(encoder0PinA);
   if ((encoder0PinALast == LOW) && (n == HIGH)) {
     if (digitalRead(encoder0PinB) == LOW) {
       encoder0Pos--;
     } else {
       encoder0Pos++;
     }
     valor = encoder0Pos / 600.0;
     /* Serial.print (encoder0Pos); */
     if (valor != valoranterior)
       {
         valoranterior = valor;
         Serial.print (valor);
       }
     
} encoder0PinALast = n; }

Cada vez que da una vuelta entera el eje, suma uno, este es de 600ppr

Le veis algun fallo?

Ahora lo proximo esto es sacar esta informacion con algun programar y saber como vonterir esto en: rpm / cv / par motor

Pero no tengo ni idea.... no se si tengo que medir primero a 1000rpm por ejemplo cuanto me da en 1 minuto o que... ni idea.

edit: Con el valor sin dividir entre 600, si quiero sacar las rpm tendria que:

medir tiempo:

RPM = (pulsaciones * 60) / (tiempo medido * S "en este caso 600 por el ppr?" )

23 días después
Eldaran

Buenas

Llevo un par de días buscando un pack (arduino) para principiantes completito pero veo tal variedad y gama de precio que no tengo ni idea de si uno merece la pena o no... ¿Sabéis de algún pack, kit, starter o similar que esté a buen precio y sea completo?

Me había fijado en este:

http://www.ebay.es/itm/Kit-Pro-Arduino-Uno-Todos-los-productos-de-la-tienda-gratis-/301096664473?pt=LH_DefaultDomain_186&hash=item461ac27d99&_uhb=1

1 respuesta
gonya707

#357 en dealextreme tienes uno algo mas completo y barato, pero te tardaria como un mes en llegar

http://dx.com/es/p/arduino-uno-starter-kit-126383#.UwIrRkB5Mer

De todos modos copio y pego lo que dije la ultima vez sobre estos packs:

spoiler

Por cierto, si quieres informarte sobre alternativas y cosas de todo este mundillo tenemos otro hilo aqui:

http://www.mediavida.com/foro/dev/programacion-desarrollo-microcontroladores-501665

:D

1 respuesta
Eldaran

#358 Muchas gracias!

En verdad me he puesto a mirar packs para hacer varios proyectos de alguna guía de proyectos, aunque suene redundante xD

¿Sabéis de algún sitio, libro o similar que vengan proyectos sencillos para empezar?

1 respuesta
2 meses después
sonkxx

¿Este hilo se podría mover a Hw y Sw? lo digo porque esta muy de moda en aficionados de Hw
O crearse otro hilo alli xD

1 respuesta