dudas con IDE de arduino

Hola que tal comunidad mi duda es si alguien a intentado comunicar algún programa con arduino.

No me refiero a que si la comunicación es para leer valores por el serie de arduino y la PC si no para subir el código de arduino al chip que haga la función del IDE de arduino.

e comunicado arduino con python y java haciendo una interfaz gráfica para prender y apagar un led pero no tengo idea de como borrar el código y reescribirlo con alguna interfaz que uno cree.

no tengo idea de como borrar el código y reescribirlo con alguna interfaz que uno cree.

Extraigo este párrafo porque es el sobresaliente en tu consulta.
Puedes explicarte mejor.

Qué código quieres borrar y donde?

Bueno con borrar código, me refiero al código en lenguaje maquina que tiene el chip de atmega.

lo que quiero hacer es con algún otro lenguaje de programación cargar el código en C ("por ejemplo" ) que se escribe el el IDE de arduino y subirlo al chip sin usar el IDE oficial

Se me ocurrió ya que algunos programas en arduino que e usado solo es de cambiar algunos parámetros, y se me ocurrió si podría hacer algún entorno "echo por mi por ejemplo" donde con un botón se presione y cargue ya un codigo funcional directamente sin necesidad de escribirlo de cero y si fuera necesario cambiar algún parámetro no se como la velocidad de parpadeo de un led poner una especie de formulario donde des el valor de las veces que quieras que parpadee y cargarlo sin escribir mas.

Algo así como Visualino pero yo no quiero programar desde cero solo cargar codigo ya compilado y probado por mi al chip.

por eso mi duda que no tengo alguna idea de como establecer la comunicación al chip para borrar y cargar el codigo ya escrito en el chip atmega.

el problema es mas de programación de algún otro lenguaje pero pregunto aquí por si alguien a visto algo parecido

saludos

el unico modo es usando averdude y sus parámetros via usb.
Para lo cual debes subir el .hex correspondiente.

Si se me permite esta herejía, yo no uso para nada el IDE, sino que programo en C++, compilo con GNU GCC y cargo en la placa con AVRDUDE, eso es lo que hace el IDE pero así yo tengo todo el control.
Como curiosidad se puede programar en assembler (yo lo hago), optimizando tamaño y velocidad.

Todo no es de color de rosa. Hay que modificar/crearse librerias al margen de las oficiales porque dependen fuertemente del IDE.

Para gente que empieza es altamente desaconsejable.

Tu herejía puede ser la solución a lo que consulta!!
Bien Alfaville.

O tal vez podría prescindir de la vía de reprogramar todo si, tal como dice, se trata de modificar unos pocos parámetros del programa, almacenando dichos parámetros en EEPROM y proveyendo algún método para su modificación.

hola gracias por compartir sus conocimientos me han sido de ayuda lo de la EEPROM podría funcionar pero también mi idea es seguir practicando otros lenguajes junto con arduino y si es todo junto mejor :slight_smile:

Me gustaría probar la opción que dio Alfaville si tienes alguna pagina que tenga algún ejemplo de como es que usas AVRDUDE para estudiarla. Por el momento a seguir buscando como usar AVRDUDE por que aun no me queda muy clara la idea de como se usa

saludos

La página de avrdude es esta: link avrdude, pero ten paciencia porque el tema al principio se muestra un tanto confuso ya que funciona en linea de comandos.
Ademas necestaras un programador (acepta multitud de modelos) y se conectan al SPI de la placa.
Como pequeño bonus te diré que NO necesitas el bootloader para nada y puedes, por lo tanto, usar esa memoria para tus programas.

hola Alfaville estaba revisando este tema que estaban discutiendo algo parecido http://forum.arduino.cc/index.php?topic=142013.0

lo que estoy viendo es que desde la linea de comandos como dices, cargan un archivo .ino que son lo que crea el ide de arduino y con esta linea

C:\arduino-1.0.2-windows\arduino-1.0.2\hardware\tools\avr\bin>avrdude -C"C:\arduino-1.0.2-windows\arduino-1.0.2\hardware\tools\avr\etc\avrdude.conf" -F -v -p atmega2560 -c wiring -P\\.\COM3 -b115200 -D -U flash:w:"C:\Temperatura.ino":a

Lo que entiendo de esta forma es que con avrdude ya instalado en windows especifican en esa linea la dirección donde se encuentra el archivo .ino el puerto y el modelo del atmega y ya con eso solo le das enter y envía la información al chip

Por lo que me escribiste creo que tu no usas la placa del arduino que viene incluido en el paquete y solo usas el el puro chip atmega.

Voy a ver si con el ejemplo que vi puedo cargar el código al arduino ya que asi seria mas fácil con algún otro lenguaje modificar un un archivo en este caso el archivo .ino y después llamar el CMD y cargar el código

No lo he leido en su totalidad, pero el autor comete el error de seguir con el IDE de Arduino y usar el avrdude en modo nativo.

Los archivos .INO son un invento del IDE, en realidad el compilador espera un archivo con extension .C o .CPP que cumpla con el estandar de programación, es decir que tenga una función main(){} que sea la directora del programa.

El IDE encapsula todo esto para que a los principiantes les resulte más sencillo programar, pero al final el proceso debe dar un ejecutable (el que se carga en la placa).

El proceso es el siguiente:

  • Se crea un programa (sketch) con la sintaxis de Arduino que se apoya en el lenguaje C / C++, y ese programa fuente tiene la extensión .INO.
  • Cuando decidimos cargarlo, se compila usando un entorno java que da como resultado uno o varios archivos de extensión .O (objeto), luego se enlaza creando un .ELF, y por ultimo se convierte en un archivo de extensión .HEX. Todo eso se hace en el mismo proceso y es lo que causa el chorro de informacion que sale.
  • Por último se invoca al avrdude con todos los comandos y flags necesarios y se le referencia el archivo .HEX creado. Si no hay problema se carga en la placa y yá está listo nuestro programa para funcionar.

Por eso darle un archivo .INO al avrdude es indicio de una gran confusión.

Repito lo que dije anteriormente (post #4)

Alfaville:
Para gente que empieza es altamente desaconsejable.