El hilo del arduino(aut. y robotica industrial)

E

#450 porque o pones una resistencia a los leds o los fundes, y como decías que se calentaban mucho... xD

#448 https://www.elraro.eu/2015/11/19/arduino-sensor-shield-v5/ échale un ojo al diagrama del arduino sensor shield, en un principio sí que puedes conectarlo todo. Que servo vas a mover? Sabrás que los servos chupan mucho, y posiblemente tengas problemas de intensidad si vas a querer mover todo con el cable usb del arduino. Así que necesitarás corriente externa casi seguro.

1 respuesta
gonya707

#450 no deberias conectar directamente leds ni a 9 ni a 12, un led tiene una caida de tension como mucho de 2 voltios, y mas de eso lo estas forzando muchisimo.

Un led se ilumina por la corriente que le cruza, no por el voltaje que tira es siempre el mismo

el led siempre va a ser de unos 2 voltios, asi que la resistencia que pongas en serie se va a comer los otros 10. Si la resistencia es de 1k, la corriente que cruza esta malla es de 10/1k = 10mA, y 10 miliamperios es una corriente suficiente para que se ilumine

1 respuesta
VoPrak

#451 #452 :psyduck: Pues aquí en la ULPGC con este tipo de LEDs siempre hemos trabajado dando 9 (v) de entrada, cierto es que durante poco tiempo. De lo poco que me han enseñado aquí, lo que comenta #452 lo tenía claro, pero tenía al LED este que calienta como una especie mágica que no se funde con 9 (v). Y no estoy de coña :D, en el laboratorio funcionaba.

#451 El servo que voy a utilizar es el típico que te viene con un Starter Kit, lo quiero para subir y bajar una puerta de garaje (de cartón muy pequeña). Pero sí es cierto que no estoy teniendo en cuenta el consumo total de todo, era algo que no me lo había planteado.

LED mágico:

DjScream3

Cada led es un mundo y claro que puede alimentarse con 9v sin resistencias, mira la hoja de características y lo cumples y ya

hay cientos de tipos de LEDs y conexiones

ArThoiD

Existen leds que se alimentan directamente a 9 y 12 V que llevan resistencias ya incorporadas.

23 días después
S

buenas, he preguntado ya a gonya pero por no darle todo el mal a el pregunto tambien por aqui y ademas alomejor tambien le sirve a alguien mas.

Tengo un sensor de proximidad y me gustaria que cuando se activase, en mi portatil (tengo conectado el arduino por usb) se abriese un archivo de musica.
Aunque creo que la duda podria ser mas amplia: ¿Se puede abrir o modificar archivos del portatil a partir de arduino? Por ejemplo, Si 3 = HIGH, escribir "done" en un .txt y cosas asi?

Gonya me ha remitido a unos tutoriales de "Processing" pero no me esta quedado claro del todo. Alguien mas quiere aportar?

Un saludo!

2 respuestas
Napier

#456 quizá con Python usando el módulo PySerial y mandando comandos que vaya leyendo un script

ArThoiD

#456 Esto debería servirte, según la descripción hace exactamente lo que pides:

http://playground.arduino.cc/Interfacing/GoBetwino

1 1 respuesta
S

#458 wow, con processing ya estaba pillando algo pero esto parece exactamente lo que busco. Gracias a todos!

Stoner_rox

Buenas, sé que el hilo va de arduino, pero al ver lo de automatización y r.industrial he decidido preguntarlo aquí. ¿Qué lenguaje(s) de programación se usa en los autómatas programables? O sea, más tipo industrial.

1 respuesta
morfen69

#460 Depende del fabricante y modelo pero de todas formas suelen tener cosas en común. Como generalmente se usan para controlar Sistemas de Eventos Discretos mediante Máquinas de Estados Finitos (e.g. un sensor detecta el producto en la posición adecuada entonces se activa un brazo neumático para empujarlo a otro sitio, etc), la mayoría de lenguajes están pensados para funciones lógicas.

En los PLC de Siemens de la serie 200 y 300 se puede programar en varios lenguajes. Por ejemplo, puedes usar KOP que es una versión (gráfica) de lógica de contactos; también tienes AWL, en la que puedes hacer los mismo que en KOP pero por comandos. En la serie 300 y 400 se puede usar Grafcet (como una Red de Petri), en la que dibujas un diagrama de la máquina de estados que has diseñado; en cada estado se producen acciones (abrir válvula, bajar brazo, etc) y las transiciones (sensor detecta objecto, temporizador llega a 0, etc) se encargan de evolucionar el estado actual al siguiente que le corresponda.

Además, los PLC de Telemecanique (así como los Siemens 400) permiten añadir funciones en "C" (if-else con entradas digitales, switch con variables internas...) que pueden ser activadas en el Grafcet.

Luego esta el tema de comunicaciones, en la que cada fabricante te vende sus módulos (Profibus DP/AP, AS-i, CAN, etc) y te da una librería con funciones ya hecha, así que sólo hay que "llamarlas" (o integrarlas en tu diagrama).

3 respuestas
Stoner_rox

#461 Vale, muchas gracias!

VoPrak

Yo lo que pude ver en las prácticas de empresas que he hecho (para la Universidad) son todo programas visuales. "Programación gráfica" eso decían los ingenieros de por allí ... de todas formas #461 te ha contestado de lujo.

1 respuesta
morfen69

#463 Cierto, lo de programación gráfica es el Grafcet que comentaba ya que así es mucho más sencillo ver el flujo que lleva la máquina de estados (lo cual siempre ayuda a la hora de debuggear o variar el programa). Los otros lenguajes (AWL, KOP, FUP) son de versiones antiguas de PLCs pero que por desgracia aún se encuentran en muchas fábricas (vease en la GM, que tienen un caos bastante curioso con los Siemens 200).

2 respuestas
VoPrak

#464 ¡siemens please stahp!

1 respuesta
M

#464 Por desgracia? La desgracia es el crecimiento del SCL...
Creo que mezclas conceptos, el grafcet no deja de ser mas que un sistema y no un lenguaje. Tu puedes diseñar el funcionamiento de un programa en Grafcet y luego programarlo en KOP, AWL o FUP.

EDIT: Después de leer tu #461 Veo que te refieres con Grafcet al lenguaje S7-GRAPH, que no está mal, pero te aseguro que es un poco limitado y bastante engorroso a la hora de usarlo.

#465 Siemens > Allen >>>>>>>>>>>> Los demas.

1 respuesta
morfen69

#466 A mi el SCL me parece un adelanto ya que permite implementar algoritmos complejos en pocas líneas y, bajo mi punto de vista, es más fácil de debuggear ya que es similar a otros lenguajes que uso (como C).

Sobre el Grafcet me refería a que ahora puedes implementarlo directamente (el lenguaje de programación en Siemens es el GRAPH) en el programa sin tener que traducirlo tu mismo KOP, FUP o AWL, lo cual me parece un acierto ya que estos últimos suelen ser bastante lentos a la hora de desarrollo y dolorosos de debuggear; mientras que en GRAPH, echando un vistazo te suele valer para ver donde esta el problema.

11 días después
S

Buenas! Me he pillado una pantalla TFT para el arduino y estoy haciendo el mítico juego pong.
Todo me funciona perfecto excepto que cuando no le doy a la pelota y pierdo quiero que aparezca el mensaje GAME OVER durante unos segs y luego que me vuelva a la pantalla normal con las palas y la pelota para seguir jugando.
Pues no se como hacerlo. Una vez stoy en la pantalla de game OVER no se volver. He probado con return, con goto etc y ya me he quedado atascado.

Alguien me echa una mano?

1 respuesta
putoam0

#468 prueba con algo como

bool play = true;
loop(){
while(play){

 ...   

 // game over
 play = false;
}

// print game over
delay(3000);
play = true;
}

Espero que te sirva de orientación ;)

1 respuesta
ArThoiD

#469 El delay te sirve si no quieres hacer nada más durante ese tiempo, pero si necesitas tener otras funciones corriendo yo recomiendo hacer un timer casero, osea, una función que sólo reduzca un valor hasta llegar a 0 por ejemplo, y así puedes seguir con otras tareas.

Aunque si no necesita hacer nada nada más, el delay sería suficiente en principio.

1 respuesta
putoam0

#470 Si, solo quería orientarle en el tema del game over.
Si necesita delay sin interrupciones de código debería usar esto

1 1 respuesta
S

#471 muchas gracias pero sigo sin conseguirlo, la verdad esque soy un noob en esto osea que alomejor es algun error super basico que no veo.
explico un poco mejor la estructura del programita a ver si eso ayuda:

void.septup (donde pongo las variables, el color inicial del lcd etc)
void.loop (donde hago que se mueva la paleta cuando le doy a los botones y que se vaya borrando la posicion anterior en el lcd)

void.moveball aqui es donde tengo el problema

spoiler

y lo dicho, se queda en bucle game over todo el rato

1 respuesta
bLero

#472 actualiza ballY para que sea > 0 después del "delay(1000)" o sino siempre te entrará por ahi.

1 1 respuesta
S

#473 ya lo he probado pero lo que hace es verse el "Game over" y por detras la pelota moviendose jaja.

yo creo que lo tngo programado de tal forma que la unica manera que tengo es que se resetee todo y vuelva a empezar de 0, pero por ejemplo si quisiera que solo restara una vida y se mantengan los puntos no puedo hacerlo asi :(

EDIT: creo que estoy dando mucho mal con una cosa tan concreta, si os parece abro un threath en el foro de desarrollo y aprovecho pa poner un video tambien y eso, asi el que no tenga ni zorra puede aprender un poco y el que sepa mas que yo (como vosotros) tambien aporta

EDIT2: solucionado, por si a alguien le interesa:

spoiler
1 respuesta
ArThoiD

#474 Prueba a actualizar la pantalla tras el delay, es decir, sobreescribe el texto que tengas puesto, pinta toda la pantalla de "blanco".

11 días después
ZeroxCAT

Hola buenas, creéis que podría crear con AppInventor algo parecido a esto?

https://play.google.com/store/apps/details?id=appinventor.ai_el_profe_garcia.Arduino_Control_Car&hl=es

Es para controlar un robot Arduino mediante Bluetooth

VoPrak

Solucionado.

10 días después
covaga

Alguien tiene una plantilla de grafcet para visio u otro programa decente?

1 mes después
ciza

Para aquellos que sepais Lisp, este proyecto es super interesante

http://www.ulisp.com/

1 1 respuesta
luzius

#479 Gracias! Luego le echo un vistazo mas a fondo.