Show Posts
Pages: [1]
1  International / Español / Re: electronica impresora 3D - SAV MkI on: December 06, 2013, 07:52:25 am
Woow..
Como siempre felicitaciones!!.

Un porducto hermoso.. =)

Lastima que desde Argentina ultimamente es imposible participar de estas campañas.. y el envio seria mas caro que el producto.. jaja..

Te hago una consulta..¿Porque de la eleccion del micro AT90USB1286?. Un ATMEGA32U4 no les alcanzaba?.

Saludos,
2  International / Español / Re: ordenar números... on: October 29, 2012, 10:11:21 pm
Por dios!. smiley-wink
Hace al menos 7 años que programo en C y siempre tuve que hacer mis propias implementaciones del quicksort().. Nunca supe que habia una funcion generica!. jajaja

Gracias!.
3  International / Español / Re: Función para partir y unir un float on: June 18, 2012, 06:56:16 pm
Sin mirar muhco tu codigo..
Y si enviás como dos intetegers directamente?? La parte entera como tal, y la real la "convertis" a un entero.. Algo parecido se usa para imprimir floats en LCDs..

mm. Ejemplo..

float = 2.25

entero = int(2.25); // entero = 2
enviar(entero);

real = (float - entero) * 100;  // real = 25
enviar(real);

Despues tenes que hacer algo parecido para recuperar el dato.
4  International / Español / Re: Programacion de Arduino/AVR en C on: November 15, 2011, 05:37:22 pm
Una cosita mas...
Les comento que uso mucho linux, y cansado de usar la terminal para compilar y cargar los archivos empece a hacer un pequeño Ide en gambas 3. No se ilucionen muhcoo.. Es basicooooo!. smiley-wink

Les paso el ejecutable, y el proyecto comprimido.

¿Que se puede hacer?
* Escribir, editar, guardar, codigos.
* Compilar y cargar el codigo. Cargar hex generados en otro programa
* Una consola serial.
* Un par de ejemplos. (Blink, Blink without delay, y serial)

Limitaciones!!?? Uff..
* Por defecto, solo compila y carga para arduino UNO. (Modificable facilmente en el codigo)
* Solo se puede usar un solo archivo de codigo. Podria hacerce.
* No existe resaltado de codigo, ni numeros de lineaaaaa!!! smiley-sad
* ...

Bueno.. En realidad, por esta ultima limitacion., que podra parecer una boludeces, pero para mi no lo es, estoy planteandome hacerlo un Gtk y C, porque no es tan facil hacerlo en gambas.. :S
Sino.. otra opcion, es hacer un plugin para geany o gedit.. estoy evaluando las posibilidades..

Pero si quieren hacer unas pruebas a esto, bienvenidos.. Se aceptan criticas y sugerencias!. jaja

P.d.: Sobre compilacion y carga de los programas estoy por hacer un tutorial, con cosas que aprendi al respecto, cuando hice esto. smiley
5  International / Español / Re: Programacion de Arduino/AVR en C on: November 15, 2011, 05:26:19 pm
Bueno.. Te quedo alguna duda??? =)

Hoy solo quiero pasarles un par de links que encontre..

* http://www.olimex.cl/present.php?page=tut_avr_mt_intro&c=1
Basado en un kit sobre un atiny2313, pero los codigos son completamente compatibles con arduino (1). Y desarrolla todo excepto PWM e i2c.

* http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewforum&f=11
Ultimamente estuve leyendo muhco los tutoriales de avrfreaks. De verdad son muy buenos. smiley

* http://webdelcire.com/wordpress/
Un buen blog donde entre tantas cosas desarrolan un robot velocista sigue lineas. Hablan tambien un poco de fisica, de motores, ruedas, sensores, etc. todo orientado a este robot.

(1) Al menos en teoria, solo hay que cambiar los nombres de los puertos digitales y hacerlo concordar con nuestros pines. El resto de los registros de configuración son los mismos sea cual sea el micro.
6  International / Español / Re: Programacion de Arduino/AVR en C on: November 03, 2011, 12:31:51 pm
Otro tuto. Este se llama: ¿Cómo definir un PIN como una simple variable?. Les va a servir para entender mejor como se utilizan los puertos en el articulo anterior.

En resumen, les puedo decir que con Gcc, no hay forma de leer el estado de un solo pin directamente. por ejemplo para leer un pin en arduino hacemos: "estado = digitalRead(buttonPin);", o  en C hacemos: "estado = PIND & 0xXX ;"

Bueno siguiendo el tutorial logramos saltarnos las "limitaciones" de Gcc y crear una variable que se refiera especificamente a un pin de nuestro microcontrolador, a la cual podemos leerla y escribirla directamente. De esta forma, por ejemplo si queremos encender un LED cuando pulsamos un boton, (Una vez configurado los pines y definidas estas variables) podriamos hacer directamente:

while (1) {
    LED_PORT = BUTTON_PIN;
}

O para simplemente encender un led podemos hacer: LED_PORT = 1;

Muuy simple. ¿No?

Bueno. la libreria anterior para el uso de los LCD usa intensivamente esta caracteristica.

Saludos.

p.d:. Si les interesa, esto tambien lo pueden hacer en arduino!. smiley-wink
7  International / Español / Re: Programacion de Arduino/AVR en C on: November 02, 2011, 08:31:45 pm
Hola gente..
Hoy les paso algo mas interesante. Un tuto para usar las clasicas pantallas HItachi 2x16. smiley

Una de las grandes ventajas de Arduino es la cantidad de librerias precreadas (como la liquidcristal), que nos permiten utilizar elementos externos sin saber exactamente nisiquiera como funcionan. smiley-wink
 
Bueno.. Al final del tutorial, obtendran las funciones lcd_init(), lcd_xy(), lcd_puts(), y lcd_clear(), muy similar a las usadas en arduino. y optimizadas para los LCD de 2x16, por lo que el codigo se simplifica apliamente, y es muy reducido. Igualmente.. Al final del posteo original van a encontrar el codigo para usar cualquier tamaño de pantalla.

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=102296

Lo reconosco, antes de llegar a esto, hay cosas mucho mas importantes para explicar!!! !, pero este tutorial es muy simple, y seguro lo entenderan.

Saludos.
Matias.

8  International / Español / Re: Tratar cadena recibida mediante RF (VirtualWire) on: October 26, 2011, 06:10:19 am
mmm.. ¿El problema es q no sabes como comparar los string?

Lo que te dice SrDonGato es correcto, pero si no tienes claro el concepto de una "cadena de caracteres" puede complicarte.

Podes usar eso (Aunque es una manganeta de arduino): http://arduino.cc/en/Tutorial/StringComparisonOperators
O el clasico strcmp de C: http://www.nongnu.org/avr-libc/user-manual/group__avr__string.html#ga46f3cbd2de457c0fb340a1f379fc33ba

Saludos.
9  International / Español / Re: Tratar cadena recibida mediante RF (VirtualWire) on: October 25, 2011, 05:41:05 pm
No se que querras hacer, pero te recomendaria que armes un "protocolo" claro con palabras de tamaño fijo. De esta forma lees por ejemplo solo 5 bytes (Si definis el tamaño del protocolo en 5), y actuar al respecto. Luego los próximos 5 bytes, y asi sucesivamente.

La otra forma de hacerlo, si es que no tenes forma de coordinar la comunicación, es  enviar toda la información pertinente, y luego separarlos, para trabajar con ellos. ¿Quieres hacer esto?

Bueno.. Primer consejo, tene cuidado con el uso de la memoria. smiley-wink
Luego, la forma de lograrlo es intercalar entre palabra y palabra útil un carácter conocido, CONOCIDO!, pero que nunca vallas a encontrar dentro de las palabras. Bueno. Luego podes separar lo resibido por el puerto serial buscando ese caracter conocido dentro de tu string.

Hay diferentes formas de separarlos, pero recomendaria la funcion strtok, que es estandar y esta en AVR lib-c. Los interpretes de gcode hace esto por ejemplo.

Basicamente, le pasas el string a separar, y el caracter delimitador, y te devuelve un array con las palabras separadas.

strtok lib-c doc: http://www.nongnu.org/avr-libc/user-manual/group__avr__string.html#ga6ace85338eafe22a0ff52c00eb9779b8
EJemplo interprete gcode: http://code.google.com/p/rsteppercontroller/source/browse/trunk/parser.pde?r=7
Avr freaks tiene un buen ejemplo ahi: http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=79220

A todo esto.. no se si te diste cuenta, pero entre palabra y palabra ya estas recibiendo un caracter conocido, que es el caracter de fin de linea. '\n' smiley-wink
 
Saludos.
Matias.
10  International / Español / Re: Programacion de Arduino/AVR en C on: October 25, 2011, 10:42:44 am
Tampoco me gustan la traducciones literales, por eso insisto en aclararlo. Pero desgraciadamente, hay gente que se ofende si tomas sus articulos prestados sin mencionarlos, o por hacer obras derivadas (y tampoco especifican alguna licencia).. Por eso, y porque realmente no tengo mucho tiempo, prefiero traducirlos tal cual. Pido disculpas si queda algo muy confuso, hay unas pocas partes donde realmente no entendi completamente lo que quizo decir (Es muy liberal al escribir), y trate de respetar en mayor medida la idea del autor.

Me gustaria hacer millones de cambios, por eso, por lo pronto lo traduzco así, y se los paso al autor original. Por ahora que el haga lo que quiera, y cuando yo tenga mas tiempo juntare la mejor informacion/conocimientos que tenga, y lo formateare a mi gusto. smiley

Les paso otra traducción, que cubre los mismos temas que el documento que vos compartiste (Realmente no agrega nada nuevo, pero queria tenerlo):
* Manipulación directa de puertos. Usando los puertos digitales.
* (Segunda traducción al castellano de los artículos escritos aqui: http://hekilledmywire.wordpress.com/2011/02/23/)

La próxima traducción seguramente sera sobre "Operaciones matemáticas a nivel de bits y operadores lógicos". Un tema muy aburrido, ampliamente explicado tambien, pero es muyyyyyy importante saberlo.

Saludos.
Matias.

p.d: La semana proxima, arrancamos con cosas mas interesantes, como ADC y temporizadores. smiley-wink
11  International / Español / Re: Programacion de Arduino/AVR en C on: October 24, 2011, 01:20:35 pm
Bueno.. Me cag* escribiendo y cuando fui a publicarlo de dijo que no podia cargar mas de 1.9 megas, y asi perdi todo lo que escirbi.. smiley-sad

Pero basicamente le decia que:
Si lo que quieren es aprender mas a fondo sobre la programacion de microcontroladores les recomiendo el libro "Microcontroladores 8051" de MacKenzie. Obvio se refiere a la arquitectura 8051, que es muy diferente a la AVR, pero pronto se daran cuenta que la forma de utilizarlo es la misma sea cual sea el micro. Tendran sus diferencias (Diferentes registros, o cambira el paginado de la memoria, etc), pero la forma de inicalizar cada uno de los puertos es la misma, y las estrucuras de control no variara de micro a micro. De verdad el libro tiene muy buenos ejemplos y esta orientado a C, apoyandoce continuamente de las hojas de datos del micro. (Cosa que es muy impartante)

Bueno.. A lo que me interesa.
Le paso la primer traduccion del blog que les comente. Este corresponde al articulo "How to start using AvrStudio, C code and Arduino" (http://hekilledmywire.wordpress.com/2010/12/04/22/)

Este cubre la descarga e instalacion del IDE AVR Studio, y desarrolla el ejemplo basico Blik, explicando minimamente la metodologia de trabajo sobre el IDE, y como cargar al programa en el micro usando la linea de comandos. Si lo leen se convencerán que no es mucho mas complicado programnarlo en C, que usando arduino. Y tambien comprobaran que el codigo resultante es casi 10 veces mas chico. ¿Es una buena ventaja no?

Vuelvo a repetirles. Es un traducción bastante literal. Sin ningun tipo de modificaciones que me gustaria hacer. Como por ejemplo orientarlo al AVR Studio 5 que salio hace un tiempo. Escucho criticas y sugerencias. smiley-wink

Bueno, esto podria corresponderce al primer capitulo de los tutoriales que quiero escribir. Me gustaria agregar una mejor explicacion del maejo de registros (Aca entra tu articulo ionhs. smiley) y una mejor explicacion de los diferentes metodos de carga de los programas (Aca entra el tuto que traduje la semana pasada.) ¿Le parece bien?

Saludos.

p.d.: Por lo pronto, voy a seguir reuniendo informacion, y aprendiendo todo lo que pueda. Recien en el verano (de Argentina) me voy a dedicar a escribir los tutos reuniendo la mejor informacion que encuentre.
12  International / Español / Re: Controlar puerto Serie en Linux con C++ on: October 22, 2011, 12:18:57 pm
Mira.. programar los puertos en linux a bajo nivel es muy complicado. Alguno te va a decir q es escribir el archivo /dev/TTYusb, pero en la practica no es tan simple..

Bueno.. No se que libreria estas utilizando. Pero la principal ventaja caracteristica de C++ con respecto a C puro son las clases.. Por eso usa clases. smiley-wink.. Si te confunden, te convendria buscar algo en C.

Esto te puede servir supongo..
http://www.iearobotics.com/wiki/index.php?title=Tutorial:Puerto_serie_en_Linux

Esta libreria es bastante nueva, no esta en todas las distros aun, pero puedes compilarla facilmente.
http://libserial.sourceforge.net/

Tenia un par de links mas interesantes pero ahora no los encuentro. Cuando pueda los busco bien..

Igual, no se que querras hacer, pero te recomiendo mil veces hacerlo en gambas.. El componente Net, permite comunicacion serial directamente, y tiene un muy buen ejemplo. Si solo quieres obetener informacacion desde un arduino (tipo dataloger) y mostrarlo en una interface simple, yo no me meteria a programar los puertos, ni me complicaria programando la aplicacion en GTK o Qt. Ehmm.. en gambas podes lograr muy buenos resultados, y en todo caso, lo importante es lo que hiciste en el arduino, mostrar la informacion es lo de menos..

Saludos.

p.d.: Esta parece interesante, http://lnxcomm.sourceforge.net/ smiley-wink No lo conocia y lo acabo de encontrar
13  International / Español / Re: Programacion de Arduino/AVR en C on: October 21, 2011, 02:55:19 pm
amigo, la paguina: http://www.micro2c.com/categoria-Atmel-AVR-c2p0.html me ha ayudado mucho, les recomiendo mirar antes los videotutoriales de PIC porque ahi explica mucho de C y con los videotutoriales de Atmel se mete directamente a la la hoja de datos ya que se supone que han visto los videos de PIC.  gran esfuerzo la del creador de la pagina y al parecer tiene planeado empezar con videotutoriales de Arduino!

Saludos y animo con los tutoriales que somos muchos los que lo vamos a aprovechar y agradecer!
Parece interesante, pero me pide registrarmeeeee!! !!! :S jajaja.. el fin de semana trato de verlos..

Personalmente no me parece una manera dura mirarse el core, pero puede que la sea.... es algo personal...

Un buen libro: http://www.smileymicros.com/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=26
Otro link con ejemplos => http://www.piconomic.co.za/fwlib/_a_v_r___q_u_i_c_k___s_t_a_r_t___g_u_i_d_e.html
Lo de mirar el core, no es tan complicado, y puede ser muy util, pero quiero conseguir algo donde se pueda buscar informacion directamente, con ejemplos cortos y claros, sin tener que destripar codigos largos. =)

Yo hace un tiempo escribí un pequeño manual sobre las entradas y salidas digitales

Muy bueno.. Recien lo pude ver, y para entender los ejemplos basicos, no hace falta explicar nada mas. Ya te pido permiso, para usarlo cuando empiece con el tutorial.. =)

A mi me interesa bastante el tema, de hecho yo estoy siguiendo tutoriales de extreme electronics, http://extremeelectronics.co.in/avr-tutorials/part-i-introduction/
Recien pude entrar. Anda muy intermitente la pagina.. Despues los voy a ver bien..

me parece muy interesante lo que se propone aquí. Seria algo asi como Arduino para avanzados, de forma que nos metemos un poco mas en el tema del micro.
una idea que se me ocurre es coger algunos de los ejemplos que vienen con arduino y desarrollar exactamente el mismo programa pero en C puro (no se si se llama así).
que os parece? por ejemplo el blink clasico, y todos estos programas sencillos.


Exactamente eso espero hacer.. y veo que hay interes en esto, asi que me dan las pilas suficiente para encararlo..

Gracias x todo.
Saludos.
14  International / Español / Re: Programacion de Arduino/AVR en C on: October 21, 2011, 12:27:30 pm
jaja...
Disculpen si costo leer todo lo que escribi.. smiley-wink

Bueno. Para que quede claro, mi idea es hacer un par de tutoriales sobre la programacion de micros Atmel en C, partiendo desde las placa arduino. Lo que habia pensado es reunir los tutoriales basicos de Arduino (http://arduino.cc/es/Tutorial/HomePage) y presentarlos en un mismo tutorial con sus esquivalentes en C.

Para el que dude, la programacion en C vs Arduino, como siempre es cuestion de gustos, pero les puedo asegurar que la mayoria de las funciones de arduino, pueden reemplazarce por solo un par de lineas de codigo en C. Es igual de simple, pera la diferencia obvio es que hay que comprender el funcionamiento de los registros. Es cuestion de interiorizarce un poco. tampoco es tan complicado.
Yo tambien suponia que Arduino era solo una capa fina de software, pero aun no me queda muy claro, porque los programas son mas grandes. Por ejemplo, el resultado del blink de arduino es "Binary sketch size: 1024 bytes", y haciendo lo mismo en C, pesa 172bytes. Una gran diferencia.. ¿No?

El IDE de atmel, AVR Studio, es muy facil instalarlo, esta lleno de ejemplos, y tambien se pueden usar librerias para controlar los display por ejemplo.

Gracias por los links.
Por lo pronto seguire estudiando un poco mas y seguire traduciondo los articulos en http://hekilledmywire.wordpress.com/ que me parecen bastante claros. Primero los voy a traducir tal cual se encuentran, como para retribuircelos al autor, y luego me gustaria reunir la mayor cantidad de informacion y lograr un buen tutorial.

Saludos.
15  International / Español / Programacion de Arduino/AVR en C on: October 20, 2011, 08:04:36 pm
Hola.. Nuevo en el foro, y también en el mundo de Arduino.

Les cuento, hace un par de meses me compre mi primer Arduino, y conseguí hacer un par de cosas interesantes. Por ejemplo recupere un viejo cartel de leds de 80x7 (El cual usaba un puerto serie DB9, y de por si, habían perdido el programa de control), y también "hice" un pequeño control de temperaturas para un galpón de pollos, controlando los ventiladores, cortinas y riego, censando la temperatura con dos LM35, muestra la temperatura actual con un display 2x20 (Actual, Maxima, Minima, y reset), y tiene posibilidad de configurar la temperatura ideal, y hasta puede comunicarle la temperatura actual a un programa echo en gambas que muestra un grafico con el histórico.

Este ultimo, hasta ahora "fue" solo un experimento, y aun me falta resolver un par de cosas.  Digo "fue", porque tuve que ponerme las pilas con la facu, y estuve con poco tiempo asi que por ahora abandone todo tipo de desarrollo. y digo que es un experimento, porque CREO que funciona como tiene que funcionar (y de echo me base en control de temperaturas de los galpones que ya tiene mi viejo), pero nunca hice la placa real para controlar los motores trifacicos, y tambien debo buscar una buena alternativa a los LM35 que varían "mucho" cuando encienden estos motores, y tambien tengo problemas con los cables de 20 metros. je. (Se escuchan sugerencias!-)

Bueno.. A nuestro tema..
Parte por la que abandone estos desarrollos, es que me di cuenta que los programas son muy grandes!!! (aunque todavia no llene ningun arduino.. jajaja) y leyendo varias paginas, pude confirmar que tambien es en mucho mas lento (40/60 veces) que usando C puro.
y bueno.. Le puedo confimar que soy un enfermito de C. Je. Nunca aprendi C++, ni java, etc.. pase de programar en Visual Basic a programar todos los puertos de la computadora en C para la facu, y al dia de hoy suelo progamar aplicaciones para linux con GTK y C, asi que estoy bastante acostumbrado al lenguaje.

Recién estoy empezando a usar la placa Arduino programandola en C, y me gustaria hacer y traducir algunos tutoriales sobre esto que me gustaria compartir, ya que no encontre informacion de esto en castellano.

En definitiva escribo, para ver a cuanta gente le intereza el tema, y si pueden ayudarme en lo que sea. =)

Por hoy les paso una traduccion (Muy literal, asi que agradeceria sugerencias para los terminos) de esta pagina http://www.javiervalcarce.eu/wiki/Program_Arduino_with_AVR-GCC, que me parecio interesante porque al menos habla de como leer los fusibles, y hace una introducción basica al uso de avrdude.

Esto es lo primero que traduje, pero en realidad empece a programar con esta otra pagina http://hekilledmywire.wordpress.com/2010/12/04/22/, y este es el tipo de tutorial que me gustaria hacer, aunque quisiera mejorarlo/actualizarlo y formatearlo tipo libro. Esta orientado a utilizar AVR Studio, que es un exelente ide, y es proporcionado de forma gratuita por la misma atmel.

¿A alguien les intereza??? ¿Vale la pena?

Saludos.
Matias.
Pages: [1]