TODOPIC

Misceláneas - Interés General => Off Topic => Mensaje iniciado por: champilton en 28 de Agosto de 2014, 00:09:34

Título: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: champilton en 28 de Agosto de 2014, 00:09:34
Hola camaradas de TODOPIC

En esta ocasion no vengo a pedir la ayuda sobre algun problema tecnico, sino a pedir su opinion, punto de vista, contar experiencias etc. en cuanto a una cuestion que creo es algo debatida pero aun no me queda clara una postura.
PICś o Arduino? que es mejor?

Hace algunos años cuando comence a incursionar en la programacion de PICs creia que era lo maximo mover un servo a traves del pic. Ahora se comunicar un PIC con labview y utilizar algunos sensores. sin embargo me doy cuenta (al estar buscando informacion para ir avanzando mas en PICs) que hay demasiada, mucha, incontable informacion de Arduino en la red, que muchos migran de los microcontroladores convencionales a arduino, que arduino tiene una forma de ser programado mas facilmente, y que se ahorra el hecho de tener que comprar un programador para descargar el programa.... Yo me siento comodo con los PIC (no soy muy ducho en ello, pero me gusta programarlos y hacer mis intentos) pero ultimamente me he visto tentado a sumergirme en el mundo de arduino... no digo que este mal probar otros microcontroladores, pero podria adquirir conocimientos mas avanzados de PIC en vez de comenzar con arduino (tambien tomo en cuenta que yo utilizo mikroc y mucha informacion esta en c18, ccs, o en assembler)... y es donde comienzo a dudar. Hay cosas como comunicacion PIC-Android de la que no encuentro mucho, o bien fuentes explicadas como las hay de arduino (inimaginables ejemplos y hasta algunas aplicaciones para android donde se programa al arduino)
tambien tomo en cuenta que el arduino solo puede programar un par de tipos de micros atmel, mientras que al programar un PIC uno elije que familia se adaptara a sus necesidades.
en mi opinion arduino es un poco mas para "divertirse" hacer proyectos de robotica de un par de semanas, y despues desmontarlos y realizar otros... mientras que cuando se trabaja con un PIC es para tener algo que trascienda, un brazo robotico que quede diseñado, estructurado y montado con su placa y su controlador listo para usarse cuando se quiera con tan solo conectarlo a la corriente.... pero aun asi me gustaria saber que opinan de este tema, del Arduino y de los PICs

Gracias de antemano por sus opiniones y espero no aburrir con mi extenso texto   :)
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 28 de Agosto de 2014, 04:44:14
Yo creo que conocer Arduino nunca está de más.
Es muy sencillo y, como dices, tiene muchos ejemplos y aplicaciones publicados.
En una hora puedes hacer montajes relativamente complejos y que funcionen.

La elección entre Arduino y PIC depende del proyecto que quieras hacer.
Conociendo los dos podrás elegir mejor.

Un saludo.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: MerLiNz en 28 de Agosto de 2014, 09:57:24
El arduino no es mas que una placa con un microcontrolador, luego el codigo es mas sencillo pero menos optimo, si quieres por ejemplo leer un adc, enviar spi... tienes las funciones ya hechas sin embargo no puedes modificar la forma en la que hacerlo.

Con un pic tienes el 100% del control, puedes hacer lo que quieras a tu gusto (sin tener que depender de las funciones que ya trae el arduino).

Sin contar que un arduino ya tiene su placa echa, ahora si le quieres añadir componentes entonces tendras que hacer otra placa e interconectarlas, sin embargo con un pic haces la placa diseñada para el uso que desees, si por ejemplo necesitas un proyecto pequeño que no ocupe espacio no te quedara mas remedio que recurrir al arduino nano y si es demasiado grande entonces te quedaras atascado en el proyecto.

Yo sinceramente nunca he usado un arduino, todo el mundo me pregunta "y arduino sabes usarlo??" y yo digo, no, se usar un microcontrolador, casi todos se quedan "¿?¿¿?".

Sobre el tiempo de programacion pues si, hacerlo con un pic es mas lento porque tienes que escribir las funciones tu mismo, sin embargo una vez hecho esto la programacion se hace sobre si solo.

Yo te recomiendo que sigas con los pics y/o pruebes incluso otros microcontroladores, el beneficio de aprender a usar un pic es que con un empujoncito te puedes pasar a atmel, freescale, ti... con poco esfuerzo. Sin embargo si aprendes arduino y sigues ahi el dia que necesites algo mayor tendras que aprender todo desde 0 y te resultara mas dificil. Si aprendes a usar familias de 16 y 32bits pues mejor, con el tiempo veras que todos los microcontroladores funcionan "parecido".
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: manwenwe en 28 de Agosto de 2014, 10:21:00
Cada vez que un ingeniero programa un Arduino dios mata a un gatito :P. Es broma :lol:. De cualquier forma, una plataforma que no tiene depurador no me inspira confianza. También es de ley decir que es open-hardware real porque aunque las placas son algo caras puedes clonarlas fácilmente ya que te dan esquemático/layout, no como la RPI que es open-hardware de "chichinabo": ni layout ni nada... y un schemático en pdf :?

Un saludo!
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: planeta9999 en 28 de Agosto de 2014, 10:40:09

en mi opinion arduino es un poco mas para "divertirse" hacer proyectos de robotica de un par de semanas, y despues desmontarlos y realizar otros... mientras que cuando se trabaja con un PIC es para tener algo que trascienda, un brazo robotico que quede diseñado, estructurado y montado con su placa y su controlador listo para usarse cuando se quiera con tan solo conectarlo a la corriente....



Exacto, es un producto orientado a estudiantes y gente que empieza y no quiere profundizar ni en la electrónica, ni en el software. Además el micro que montan da para muy poco, señal de reloj baja, poca flash, poca ram, da para hacer cuatro experimentos chumineros o para controlar otras placas por SPI o I2C.

Cada producto tiene su aplicación, yo tengo por aquí un Arduino, que compré para curiosear, como es tan barato, pero todos mis desarrollos los hago con PIC32MX, y también tengo en mente usar los ARM STM32 y los PIC32MZ. Y no acaba ahí la cosa, tambien tengo Raspberry y Beaglebone Black, que voy a utilizar en proyectos en los que necesito gestionar video de alta resolución.

Al final cada producto tiene su aplicación, Arduino tiene su cuota de mercado, su público, pero no es una alternativa a los PIC, o mejor dicho no es una alternativa a un diseño personalizado, con tu PCB hecho a medida, con micros mucho más potentes. En cuanto al software, en cuanto tienes tu biblioteca de rutinas bien organizada, no tienes nada que envidiarle a todo el entramado de software y rutinas que emplean en Arduino.

A los que nos gusta la electrónica, al final terminamos tocando todos los palos, evaluando las prestaciones y clasificando cada producto, quien sabe si algún día le encontraré una aplicación práctica a los Arduino, por ahora no, para mi es solo un juguete curioso que tenía que probar, por el famoseo que lo rodea, una vez probado lo catalogo como juguete para estudiantes y prácticas de colegio.


Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: manwenwe en 28 de Agosto de 2014, 10:49:50
Cada producto tiene su aplicación, yo tengo por aquí un Arduino, que compré para curiosear, como es tan barato, pero todos mis desarrollos los hago con PIC32MX, y también tengo en mente usar los ARM STM32 y los PIC32MZ. Y no acaba ahí la cosa, tambien tengo Raspberry y Beaglebone Black, que voy a utilizar en proyectos en los que necesito gestionar video de alta resolución

What is BeagleBone Black?
BeagleBone Black is a low-cost, community-supported development platform for developers and hobbyists. Boot Linux in under 10 seconds and get started on development in less than 5 minutes with just a single USB cable.

WHAT IS A RASPBERRY PI?

The Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It is a capable little computer which can be used in electronics projects, and for many of the things that your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video.We want to see it being used by kids all over the world to learn how computers work, how to manipulate the electronic world around them, and how to program.


Tampoco es que haya mucha diferencia con Arduino, es decir y en mi opinion: RPI y BBB son "tan para hobistas" con lo es Arduino...
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Darkman_A en 28 de Agosto de 2014, 11:08:12
Hola.
Creo que estas haciendo mal la pregunta y/o la comparacion.
Es como comparar una tenaza con una palita de jardineria ..... o un PIC con un horno microondas.
La consulta seria, por ejemplo, entre un PIC y un microcontrolador Atmel; y ademas tendria que ser con microcontroladores de iguales o similares caracteristicas, por la diversidad de modelos que fabrica cada empresa.
Por un lado uno es un microcontrolador y el otro es una plataforma de desarrollo. Con el primero puedo hacer el segundo, con el segundo no puedo hacer el primero ( como con el PIC y el horno de microondas )
Hay desarrollos parecidos (o clones ) de Arduino con PICs Link (http://www.microchip.com/pagehandler/en-us/chipKIT-Development-Platform.html)
Yo programo PIC y Arduino. Al Arduino lo utilizo como una plataforma de desarrollo rapida, o como una herramienta. Por ejemplo, si tengo que hacer que se active un pulsador a 500 metros y no tengo a nadie que me ayude. Armo algo rapido con un Arduino, lo uso y luego lo desarmo.
Pareciera que lo que se programa todo es lo mismo, un microcontrolador, una plataforma de desarrollo, un PLC (me han dicho, "para que estudias los PIC si estan los PLCs"), etc.
Pregunto, ¿Que es mejor un PIC o la PC donde estas leyendo esto?....

Saludos
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: planeta9999 en 28 de Agosto de 2014, 11:12:06

Tampoco es que haya mucha diferencia con Arduino, es decir y en mi opinion: RPI y BBB son "tan para hobistas" con lo es Arduino...


Pues hay dos diferencias importantes, el entorno de desarrollo prefabricado de Arduino que no existe ni para Raspberry ni para Beaglebone, y la complejidad del hardware que dificulta mucho que uno pueda hacer su propio PCB para montar un hardware similar al de Raspberry o Beaglebone.

Yo puedo diseñar y ensamblar mis propias placas con TQFP100 con PI32MX, PIC32MZ, ARM STM32, también con los Atmel de Arduino, pero veo demasiado complejo trabajar con BGA y con pasivos tan extremadamente pequeños como los que montan estos SOC, para ese hardware no tengo más remedio que usar productos prefabricados como Raspberry o Beaglebone, sino no tendría acceso a esas soluciones.

Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Pinolillo16 en 28 de Agosto de 2014, 12:36:48
Que tal champilton veo que si hay controversia en esto  :D pero estoy muy de acuerdo con la mayoria sobre todo lo que comenta planeta9999, si aprendes a programar un micro de la familia 16F o 18F, es relativamente sencillo cambiar a los micros de 16 o 32 bits, pese a que arduino a incorporado ARM en alguna de sus tarjetas de desarrollo sigue siendo algo limitante usarlo, y como dicen a un micro (sea pic,avr,arm,freescale o ti) puedes sacarle todo el jugo que necesites, adecuarlo a tus diseños y usar el que mejor se acomode a tus necesidades.

Esa es mi opinion amigo pero siempre es importante escuchar a todos sobre todo quienes ya llevan años en esto.

Saludos
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: manwenwe en 28 de Agosto de 2014, 12:51:29

Tampoco es que haya mucha diferencia con Arduino, es decir y en mi opinion: RPI y BBB son "tan para hobistas" con lo es Arduino...


Pues hay dos diferencias importantes, el entorno de desarrollo prefabricado de Arduino que no existe ni para Raspberry ni para Beaglebone, y la complejidad del hardware que dificulta mucho que uno pueda hacer su propio PCB para montar un hardware similar al de Raspberry o Beaglebone.

Yo puedo diseñar y ensamblar mis propias placas con TQFP100 con PI32MX, PIC32MZ, ARM STM32, también con los Atmel de Arduino, pero veo demasiado complejo trabajar con BGA y con pasivos tan extremadamente pequeños como los que montan estos SOC, para ese hardware no tengo más remedio que usar productos prefabricados como Raspberry o Beaglebone, sino no tendría acceso a esas soluciones.



Todo es ponerse. Aunque requiere tiempo y dinero que quizá invertido en otra cosa sea más rentable.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 28 de Agosto de 2014, 15:14:16
Veo que hay bastantes opiniones contrarias al Arduino.

Creo que es importante, para hacerse una idea, explicar qué es exactamente Arduino.
Me centraré en el hardware del Arduino UNO, que es el más popular.

Arduino es una plataforma hardware y un entorno de desarrollo que facilita el desarrollo rápido de aplicaciones basadas en microcontroladores de Atmel.


1.- La placa tiene como microcontrolador principal un Atmega328P de Atmel (http://www.atmel.com/devices/atmega328.aspx)

Velocidad
Este micro trabaja en Arduino a 16MHz y ejecuta la mayoría de las instrucciónes en un ciclo de reloj (un poco menos de 16 millones de instrucciones por segundo)
Su velocidad máxima es de 20MHz (casi 20 millones de instrucciones por segundo). Esta velocidad de ejecución es bastante alta para un micro de 8 bits.
Ningún micro de 8 bits de Microchip le supera, ni tampoco le superan muchos micros de 16bits.
Por lo tanto creo que este micro tiene una velocidad bastante alta dentro de su gama.
(Compararlo con un micro de 16 ó 32 bits de altas prestaciones es como comparar un coche y una avioneta, es hacer trampa)

Memoria
La memoria de programa es de 32Kb
La memoria de ram es de 2Kb
La memoria de eprom es de 1Kb
Las cantidades son comparables a muchos micros de 8 bits, incluso tiene más que la mayoría.


Periféricos
Si en algo se puede decir que Microchip es claramente superior es en algunos periféricos que integran sus últimos micros (CTMU, CLC, más temporizadores o comparadores)
Por otra parte, con sus 6 salidas PWM, el micro de Atmel supera en número a todos los micros de Microchip.


En resumen, el micro es comparable, y en muchos aspectos superior, a la mayoría de los micros de gama alta de 8 bits (PIC18) de Microchip.



2.- Programador
Es verdad que Arduino parece tener un programador dentro de su placa, Pero no es cierto.
El circuito USB que trae el Arduino UNO es un conversor USB a RS232 con niveles TTL. Este circuito no puede programar nada, sólo comunicar datos entre el PC y el Atmega.
El micro del Arduino viene ya preprogramado con un Bootloader. Este Bootloader acepta los datos que llegan del PC y los programa dentro de sí mismo.
Si partimos de un microcontrolador vacío, la placa Arduino no funciona.

Por otro lado, una vez que tenemos un Arduino funcionando, es sumamente sencillo fabricar un programador con él, de manera que podedemos programar otros microcontroladores Atmega328 vacíos con lo que queramos:

(http://duino4projects.com/wp-content/uploads/2013/06/Using-the-Arduino-Uno-to-program-ATTINY84-20PU-circuit.jpg) (http://duino4projects.com/wp-content/uploads/2013/06/Using-the-Arduino-Uno-to-program-ATTINY84-20PU-circuit.jpg)



3.- Entorno de desarrollo
Este entorno muy sencillo sirve en realidad para programar en c. Es cierto que se han hecho esfuerzos para simplificar el entorno y la programación, pero lo que programas sigue siendo c
El lenguaje C es muy potente y quizá la mejor opción para programar un micro de esta envergadura.
Por debajo del entorno de desarrollo, el compilador es un toolchain de GNU C. Esto asegura el soporte y la calidad del software. Tiene pocos bugs, continuidad en el software, acceso al código del compilador, etc. No olvidemos que GNU C es el compilador del Linux.

He leído muchas críticas sobre el entorno de desarrollo y no las entiendo.
El entorno es sólo una opción. Te da algo más (que no tiene Microchip) y que está muy bien.

Por otra parte nadie esta obligado a utilizar el entorno de desarrollo de Arduino

Creo que este punto es importante. Lo explicaré con un ejemplo. Imagínate que criticas un coche descapotable, con capota extensible:
 - "Si llueve te mojas"
 - Hombre, pues claro. Sobre todo si no cierras la capota.


Con Arduino pasa lo mismo. El entorno de desarrollo puedes utilizarlo si quieres o cerrarlo y utilizar otro entorno de desarrollo distinto. Nadie te obliga.

"Es que viene con librerías preprogramadas y eso te hace la vida más fácil" Si, pero nadie te obliga a utilizarlas y hacerte la vida sencilla.
CCS viene con muchas librerías para PIC y por eso es el preferido de muchos, pero tú puedes hacerte en CCS las librerías por tu cuenta si quieres. Nadie te está obligando, sólo es una facilidad que se te ofrece. (En el caso de CCS, pagando. En el caso de Arduino, es gratuíto)



4.- Placa de desarrollo
Arduino es una placa de desarrollo. Esto hace que tenga ciertas características. Por ejemplo tienes que conectar otras placas para completar su funcionalidad.
Microchip también tiene placas de desarrollo. Esto es así porque las placas de desarrollo te facilitan la vida a la hora de desarrollar nuevas aplicaciones.
Es una ventaja contar con placas de desarrollo en ambas plataformas.

Ahora viene lo bueno. Una vez que has desarrollado tu aplicación, puedes sacar el microcontrolador de la placa de desarrollo e insertarlo en una placa diseñada por tí.
Esto ya lo conocéis con PIC, pero tambien se puede hacer con el Atmega328. De hecho el micro ni siquiera está soldado a la placa. Se puede retirar con un simple destornillador en pocos segundos.

Y ¿qué le pasa al Atmega328 fuera del Arduino?... Absolutamente nada. Sigue funcionando igual. De hecho si incorporas una comunicación RS232 entre el PC y el Atmega328, podrás seguir programando tu placa diseñada a medida como si fuera un Arduino  :shock:

 - ¿Esto significa que puedo programar mi placa hecha a medida con un Atmega328, con el entorno Arduíno?  
 - Si, si así lo deseas. O puedes programarla con cualquier otro entorno compatible para micros Atmel.



Vamos, que lo que ofrece Arduino son muchas facilidades para programar un Atmega328, que es un micro estupendo, y no te obliga ni te limita absolutamente para nada en ningún aspecto.


Saludos.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 28 de Agosto de 2014, 15:35:24
Se me olvidaba.
En realidad el lenguaje de programación no es exactamente C... Es C++

Esto significa que puedes programar en C99 sin más y sin preocuparte de otras características.

Pero, sólo si tu quieres, también puedes utilizar todas las características de C++. Especialmente útil es el manejo de las clases  (plantillas, encapsulación, herencia, sobrecarga de operadores, etc.)

Saludos.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 28 de Agosto de 2014, 17:06:49
En Arduino también se puede programar en Assembler embebido en el código C:

Código: [Seleccionar]
  asm("nop");

Si intentas programarlo, el entorno no reconoce la instrucción asm y no cambia de color, pero se compila perfectamente.

También se puede tener acceso directo a los registros del microcontrolador en lenguaje C.
Por ejemplo para acceder directamente a los registros de los timer (http://sphinx.mythic-beasts.com/~markt/ATmega-timers.html):

Código: [Seleccionar]
 TCCR1A = (outmode_A << 6) | (outmode_B << 4) | (mode & 3) ;
  TCCR1B = (capture_mode << 6) | ((mode & 0xC) << 1) | clock_mode ;


Esta capacidad del entorno está escondida a propósito y en la red casi no se encuentran ejemplos.
Esto se ha hecho para que el destinatario natural del Arduino (alguien que comienza) no se encuentre con dificultades que le asusten o le echen para atrás.

Todo está encapsulado con funciones que intentan que parezca que programar un Arduino es algo fácil.


En realidad, aunque no está documentado en la documentación de Arduino, es muy sencillo acceder a toda la potencia del compilador y a toda la complejidad de programar un micro tan potente.

Hay proyectos para programación en tiempo real multitarea basados en FreeRTOS: https://code.google.com/p/duinos

Proyectos de visualización de transformadas de fourier en tiempo real: http://www.arduinoos.com/2010/10/fast-fourier-transform-fft

Y cualquier cosa que puedas imaginar hacer con un PIC18, seguramente se puede hacer con un Arduino.


Saludos.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 28 de Agosto de 2014, 17:19:00
De cualquier forma, una plataforma que no tiene depurador no me inspira confianza.

Es cierto que el entorno por defecto de Arduino no tiene un depurador moderno que merezca ese nombre.
Por supuesto sí se podría depurar "enchufandole" al micro un programador de verdad con esa capacidad de depuración y trabajando en otro entorno.

En cualquier caso se puede depurar sin problemas en el entorno estandar de Arduino con técnicas más rudimentarias, pero no menos potentes:

1.- Utilizar la instrucción printf() para enviar al PC variables de depuración por el puerto serie. Es un poco lento, pero funciona perfectamente.
2.- Cuándo no se puede tolerar un retardo, se pueden utilizar los pines de salida y un osciloscopio o, incluso, un simple polímetro que calculará el tiempo medio que está un pin a estado alto.
3.- Pulsadores externos que paren la ejecución en cierto punto o que la lancen a partir de un punto.


Esto no sustituye la comodidad de un depurador. Pero utilizándo estas técnicas de forma adecuada se puede depurar cualquier programa.


Saludos.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 28 de Agosto de 2014, 18:02:01
Además el micro que montan da para muy poco, señal de reloj baja, poca flash, poca ram, da para hacer cuatro experimentos chumineros o para controlar otras placas por SPI o I2C.

Hoy los microcontroladores nos dan tanta potencia, que nos hemos olvidado de qué se puede hacer con 32Kb de programa:


   El ordenador de a bordo de una nave espacial Apollo 11: http://downloadsquad.switched.com/2009/07/20/how-powerful-was-the-apollo-11-computer

   La primera versión del sistema operativo Unix, sobre un ordenador PDP7: http://en.wikipedia.org/wiki/PDP-7

   Primeras versiones del sistema operativo MS-DOS: http://es.wikipedia.org/wiki/MS-DOS

   La calculadora programable HP-41C, primera en ofrecer caracteres alfanuméricos.
   Fué llevada en 7 misiones del transbordador espacial para calcular la órbita de reentrada en caso de fallo del ordenador principal de a bordo: http://en.wikipedia.org/wiki/HP-41

Si eres un autentico hacker del assembler, con sólo 4096 bytes, se pueden hacer verdaderas virguerías. Eso es lo que ocupa esta intro:


Saludos.

 
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: PalitroqueZ en 28 de Agosto de 2014, 18:02:50
....
Exacto, es un producto orientado a estudiantes y gente que empieza y no quiere profundizar ni en la electrónica, ni en el software.

....

yo también estoy de acuerdo con esta respuesta. observen que en el mismo sitio lo dicen:

"...It's intended for artists, designers, hobbyists and anyone interested in creating interactive objects or environments..."
Código: [Seleccionar]
Fuente: http://arduino.cc/en/pmwiki.php?n=
pues como todo en esta vida, depende del uso que le vayas a dar a los micros, no defenderé arduino (porque no lo conozco) pero tampoco defenderé a los pic (que si los conozco). Es cuestión de hacer pruebas y ver cuál resulta mas conveniente en el entorno que se trabaje.

Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 28 de Agosto de 2014, 18:15:54
Arduino está pensado para acercar la electrónica y la informática a gente que no tiene conocimientos de base.
Pretende hacer los proyectos electrónicos sencillos, para poder empezar sin que sea obligatorio profundizar en electrónica ni en software.

Pero eso no significa que no puedas profundizar en los conocimientos. Con Arduíno puedes empezar de cero y terminar haciendo cosas tan complejas como con cualquier PIC18.

La ventaja de Arduino es que comieza en el nivel cero y por sólo 20 euros (hardware y software incluido).
Con el PIC comienzas en el nivel 5. Tienes que comprar un programador, hacerte tu placa de desarrollo, programar en C básico y accediendo a registros... Y cuesta más dinero.

Con los dos puedes llegar al nivel 10. (Por poner una escala)


Para alguien con experiencia, el poder hacer un proyecto rápido de usar y desmontar, también es una gran ventaja.


El inconveniente que yo le veo al Atmega328 es que no incorpora ciertos periféricos muy interesantes que sí tienen algunos PIC: PWM avanzado, CCP, CTMU, CLC


Saludos.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 28 de Agosto de 2014, 19:00:43
El problema creo que está en que algunos ven que Arduino empieza en el nivel 0 y dicen: "esto es SÓLO para principiantes"
Pero Arduino comienza en el nivel 0 y termina en el nivel 10

El desarrollo a medida de PIC comienza en un nivel alto y por eso parece más complejo que Arduino, pero no llega más alto de lo que puede llegar un desarrollo basado en Arduíno.

Esa es la idea que quería transmitir. Arduino no es simple. Comienza en un nivel simple, pero se puede complicar hasta dónde quieras.

Si tu ves a alguien tumbado en la playa, no se te ocurre decir que ese señor "es bajo".
Ese señor "está bajo" pero no es bajo, si se levanta puede ser más alto que tú.

Arduino se vende "tumbado" para que parezca bajo y no asuste. Pero si lo levantas, es tan alto o más que cualquier placa basada en PIC18.

No confundamos ser con estar.


Saludos.

PD. Para muestra un botón.
Librería de manejo de displays TFT. Viene de forma estandar en el entorno Arduino para que el que quiera realice las modificaciones que desee.
Esto es una diferencia con respecto a CCS u otros compiladores, con librerias cerradas. En Arduino las librerías son abiertas para que puedas modificarlas.
Eso no significa que las librerías sean sencillas:

Código: [Seleccionar]
/******************************************************************
 This is the core graphics library for all our displays, providing
 basic graphics primitives (points, lines, circles, etc.). It needs
 to be paired with a hardware-specific library for each display
 device we carry (handling the lower-level functions).
 
 Adafruit invests time and resources providing this open
 source code, please support Adafruit and open-source hardware
 by purchasing products from Adafruit!
 
 Written by Limor Fried/Ladyada for Adafruit Industries.
 BSD license, check license.txt for more information.
 All text above must be included in any redistribution.
 ******************************************************************/

#include "Adafruit_GFX.h"
#include "glcdfont.c"
#include <avr/pgmspace.h>

void Adafruit_GFX::constructor(int16_t w, int16_t h) {
  _width = WIDTH = w;
  _height = HEIGHT = h;

  rotation = 0;    
  cursor_y = cursor_x = 0;
  textsize = 1;
  textcolor = textbgcolor = 0xFFFF;
  wrap = true;
  
  strokeColor = 0;
  useStroke = true;
  fillColor = 0;
  useFill = false;

}


// draw a circle outline
void Adafruit_GFX::drawCircle(int16_t x0, int16_t y0, int16_t r,
     uint16_t color) {
  int16_t f = 1 - r;
  int16_t ddF_x = 1;
  int16_t ddF_y = -2 * r;
  int16_t x = 0;
  int16_t y = r;

  drawPixel(x0, y0+r, color);
  drawPixel(x0, y0-r, color);
  drawPixel(x0+r, y0, color);
  drawPixel(x0-r, y0, color);

  while (x<y) {
    if (f >= 0) {
      y--;
      ddF_y += 2;
      f += ddF_y;
    }
    x++;
    ddF_x += 2;
    f += ddF_x;
  
    drawPixel(x0 + x, y0 + y, color);
    drawPixel(x0 - x, y0 + y, color);
    drawPixel(x0 + x, y0 - y, color);
    drawPixel(x0 - x, y0 - y, color);
    drawPixel(x0 + y, y0 + x, color);
    drawPixel(x0 - y, y0 + x, color);
    drawPixel(x0 + y, y0 - x, color);
    drawPixel(x0 - y, y0 - x, color);
    
  }
}

void Adafruit_GFX::drawCircleHelper( int16_t x0, int16_t y0,
               int16_t r, uint8_t cornername, uint16_t color) {
  int16_t f     = 1 - r;
  int16_t ddF_x = 1;
  int16_t ddF_y = -2 * r;
  int16_t x     = 0;
  int16_t y     = r;

  while (x<y) {
    if (f >= 0) {
      y--;
      ddF_y += 2;
      f     += ddF_y;
    }
    x++;
    ddF_x += 2;
    f     += ddF_x;
    if (cornername & 0x4) {
      drawPixel(x0 + x, y0 + y, color);
      drawPixel(x0 + y, y0 + x, color);
    }
    if (cornername & 0x2) {
      drawPixel(x0 + x, y0 - y, color);
      drawPixel(x0 + y, y0 - x, color);
    }
    if (cornername & 0x8) {
      drawPixel(x0 - y, y0 + x, color);
      drawPixel(x0 - x, y0 + y, color);
    }
    if (cornername & 0x1) {
      drawPixel(x0 - y, y0 - x, color);
      drawPixel(x0 - x, y0 - y, color);
    }
  }
}

void Adafruit_GFX::fillCircle(int16_t x0, int16_t y0, int16_t r,
     uint16_t color) {
  drawFastVLine(x0, y0-r, 2*r+1, color);
  fillCircleHelper(x0, y0, r, 3, 0, color);
}

// used to do circles and roundrects!
void Adafruit_GFX::fillCircleHelper(int16_t x0, int16_t y0, int16_t r,
   uint8_t cornername, int16_t delta, uint16_t color) {

  int16_t f     = 1 - r;
  int16_t ddF_x = 1;
  int16_t ddF_y = -2 * r;
  int16_t x     = 0;
  int16_t y     = r;

  while (x<y) {
    if (f >= 0) {
      y--;
      ddF_y += 2;
      f     += ddF_y;
    }
    x++;
    ddF_x += 2;
    f     += ddF_x;

    if (cornername & 0x1) {
      drawFastVLine(x0+x, y0-y, 2*y+1+delta, color);
      drawFastVLine(x0+y, y0-x, 2*x+1+delta, color);
    }
    if (cornername & 0x2) {
      drawFastVLine(x0-x, y0-y, 2*y+1+delta, color);
      drawFastVLine(x0-y, y0-x, 2*x+1+delta, color);
    }
  }
}

// bresenham's algorithm - thx wikpedia
void Adafruit_GFX::drawLine(int16_t x0, int16_t y0,
   int16_t x1, int16_t y1,
   uint16_t color) {
  int16_t steep = abs(y1 - y0) > abs(x1 - x0);
  if (steep) {
    swap(x0, y0);
    swap(x1, y1);
  }

  if (x0 > x1) {
    swap(x0, x1);
    swap(y0, y1);
  }

  int16_t dx, dy;
  dx = x1 - x0;
  dy = abs(y1 - y0);

  int16_t err = dx / 2;
  int16_t ystep;

  if (y0 < y1) {
    ystep = 1;
  } else {
    ystep = -1;
  }

  for (; x0<=x1; x0++) {
    if (steep) {
      drawPixel(y0, x0, color);
    } else {
      drawPixel(x0, y0, color);
    }
    err -= dy;
    if (err < 0) {
      y0 += ystep;
      err += dx;
    }
  }
}


// draw a rectangle
void Adafruit_GFX::drawRect(int16_t x, int16_t y,
   int16_t w, int16_t h,
   uint16_t color) {
  drawFastHLine(x, y, w, color);
  drawFastHLine(x, y+h-1, w, color);
  drawFastVLine(x, y, h, color);
  drawFastVLine(x+w-1, y, h, color);
}

void Adafruit_GFX::drawFastVLine(int16_t x, int16_t y,
int16_t h, uint16_t color) {
  // stupidest version - update in subclasses if desired!
  drawLine(x, y, x, y+h-1, color);
}


void Adafruit_GFX::drawFastHLine(int16_t x, int16_t y,
int16_t w, uint16_t color) {
  // stupidest version - update in subclasses if desired!
  drawLine(x, y, x+w-1, y, color);
}

void Adafruit_GFX::fillRect(int16_t x, int16_t y, int16_t w, int16_t h,
   uint16_t color) {
  // stupidest version - update in subclasses if desired!
  for (int16_t i=x; i<x+w; i++) {
    drawFastVLine(i, y, h, color);
  }
}


void Adafruit_GFX::fillScreen(uint16_t color) {
  fillRect(0, 0, _width, _height, color);
}

// draw a rounded rectangle!
void Adafruit_GFX::drawRoundRect(int16_t x, int16_t y, int16_t w,
  int16_t h, int16_t r, uint16_t color) {
  // smarter version
  drawFastHLine(x+r  , y    , w-2*r, color); // Top
  drawFastHLine(x+r  , y+h-1, w-2*r, color); // Bottom
  drawFastVLine(  x    , y+r  , h-2*r, color); // Left
  drawFastVLine(  x+w-1, y+r  , h-2*r, color); // Right
  // draw four corners
  drawCircleHelper(x+r    , y+r    , r, 1, color);
  drawCircleHelper(x+w-r-1, y+r    , r, 2, color);
  drawCircleHelper(x+w-r-1, y+h-r-1, r, 4, color);
  drawCircleHelper(x+r    , y+h-r-1, r, 8, color);
}

// fill a rounded rectangle!
void Adafruit_GFX::fillRoundRect(int16_t x, int16_t y, int16_t w,
int16_t h, int16_t r, uint16_t color) {
  // smarter version
  fillRect(x+r, y, w-2*r, h, color);

  // draw four corners
  fillCircleHelper(x+w-r-1, y+r, r, 1, h-2*r-1, color);
  fillCircleHelper(x+r    , y+r, r, 2, h-2*r-1, color);
}

// draw a triangle!
void Adafruit_GFX::drawTriangle(int16_t x0, int16_t y0,
int16_t x1, int16_t y1,
int16_t x2, int16_t y2, uint16_t color) {
  drawLine(x0, y0, x1, y1, color);
  drawLine(x1, y1, x2, y2, color);
  drawLine(x2, y2, x0, y0, color);
}

// fill a triangle!
void Adafruit_GFX::fillTriangle ( int16_t x0, int16_t y0,
 int16_t x1, int16_t y1,
 int16_t x2, int16_t y2, uint16_t color) {

  int16_t a, b, y, last;

  // Sort coordinates by Y order (y2 >= y1 >= y0)
  if (y0 > y1) {
    swap(y0, y1); swap(x0, x1);
  }
  if (y1 > y2) {
    swap(y2, y1); swap(x2, x1);
  }
  if (y0 > y1) {
    swap(y0, y1); swap(x0, x1);
  }

  if(y0 == y2) { // Handle awkward all-on-same-line case as its own thing
    a = b = x0;
    if(x1 < a)      a = x1;
    else if(x1 > b) b = x1;
    if(x2 < a)      a = x2;
    else if(x2 > b) b = x2;
    drawFastHLine(a, y0, b-a+1, color);
    return;
  }

  int16_t
    dx01 = x1 - x0,
    dy01 = y1 - y0,
    dx02 = x2 - x0,
    dy02 = y2 - y0,
    dx12 = x2 - x1,
    dy12 = y2 - y1,
    sa   = 0,
    sb   = 0;

  // For upper part of triangle, find scanline crossings for segments
  // 0-1 and 0-2.  If y1=y2 (flat-bottomed triangle), the scanline y1
  // is included here (and second loop will be skipped, avoiding a /0
  // error there), otherwise scanline y1 is skipped here and handled
  // in the second loop...which also avoids a /0 error here if y0=y1
  // (flat-topped triangle).
  if(y1 == y2) last = y1;   // Include y1 scanline
  else         last = y1-1; // Skip it

  for(y=y0; y<=last; y++) {
    a   = x0 + sa / dy01;
    b   = x0 + sb / dy02;
    sa += dx01;
    sb += dx02;
    /* longhand:
    a = x0 + (x1 - x0) * (y - y0) / (y1 - y0);
    b = x0 + (x2 - x0) * (y - y0) / (y2 - y0);
    */
    if(a > b) swap(a,b);
    drawFastHLine(a, y, b-a+1, color);
  }

  // For lower part of triangle, find scanline crossings for segments
  // 0-2 and 1-2.  This loop is skipped if y1=y2.
  sa = dx12 * (y - y1);
  sb = dx02 * (y - y0);
  for(; y<=y2; y++) {
    a   = x1 + sa / dy12;
    b   = x0 + sb / dy02;
    sa += dx12;
    sb += dx02;
    /* longhand:
    a = x1 + (x2 - x1) * (y - y1) / (y2 - y1);
    b = x0 + (x2 - x0) * (y - y0) / (y2 - y0);
    */
    if(a > b) swap(a,b);
    drawFastHLine(a, y, b-a+1, color);
  }
}

void Adafruit_GFX::drawBitmap(int16_t x, int16_t y,
     const uint8_t *bitmap, int16_t w, int16_t h,
     uint16_t color) {

  int16_t i, j, byteWidth = (w + 7) / 8;

  for(j=0; j<h; j++) {
    for(i=0; i<w; i++ ) {
      if(pgm_read_byte(bitmap + j * byteWidth + i / 8) & (128 >> (i & 7))) {
drawPixel(x+i, y+j, color);
      }
    }
  }
}


#if ARDUINO >= 100
size_t Adafruit_GFX::write(uint8_t c) {
#else
void Adafruit_GFX::write(uint8_t c) {
#endif
  if (c == '\n') {
    cursor_y += textsize*8;
    cursor_x = 0;
  } else if (c == '\r') {
    // skip em
  } else {
    drawChar(cursor_x, cursor_y, c, textcolor, textbgcolor, textsize);
    cursor_x += textsize*6;
    if (wrap && (cursor_x > (_width - textsize*6))) {
      cursor_y += textsize*8;
      cursor_x = 0;
    }
  }
#if ARDUINO >= 100
  return 1;
#endif
}

// draw a character
void Adafruit_GFX::drawChar(int16_t x, int16_t y, unsigned char c,
   uint16_t color, uint16_t bg, uint8_t size) {

  if((x >= _width)            || // Clip right
     (y >= _height)           || // Clip bottom
     ((x + 5 * size - 1) < 0) || // Clip left
     ((y + 8 * size - 1) < 0))   // Clip top
    return;

  for (int8_t i=0; i<6; i++ ) {
    uint8_t line;
    if (i == 5)
      line = 0x0;
    else
      line = pgm_read_byte(font+(c*5)+i);
    for (int8_t j = 0; j<8; j++) {
      if (line & 0x1) {
        if (size == 1) // default size
          drawPixel(x+i, y+j, color);
        else {  // big size
          fillRect(x+(i*size), y+(j*size), size, size, color);
        }
      } else if (bg != color) {
        if (size == 1) // default size
          drawPixel(x+i, y+j, bg);
        else {  // big size
          fillRect(x+i*size, y+j*size, size, size, bg);
        }
      }
      line >>= 1;
    }
  }
}

void Adafruit_GFX::setCursor(int16_t x, int16_t y) {
  cursor_x = x;
  cursor_y = y;
}


void Adafruit_GFX::setTextSize(uint8_t s) {
  textsize = (s > 0) ? s : 1;
}


void Adafruit_GFX::setTextColor(uint16_t c) {
  textcolor = c;
  textbgcolor = c;
  // for 'transparent' background, we'll set the bg
  // to the same as fg instead of using a flag
}

 void Adafruit_GFX::setTextColor(uint16_t c, uint16_t b) {
   textcolor = c;
   textbgcolor = b;
 }

void Adafruit_GFX::setTextWrap(boolean w) {
  wrap = w;
}

uint8_t Adafruit_GFX::getRotation(void) {
  rotation %= 4;
  return rotation;
}

void Adafruit_GFX::setRotation(uint8_t x) {
  x %= 4;  // cant be higher than 3
  rotation = x;
  switch (x) {
  case 0:
  case 2:
    _width = WIDTH;
    _height = HEIGHT;
    break;
  case 1:
  case 3:
    _width = HEIGHT;
    _height = WIDTH;
    break;
  }
}

void Adafruit_GFX::invertDisplay(boolean i) {
  // do nothing, can be subclassed
}


// return the size of the display which depends on the rotation!
int16_t Adafruit_GFX::width(void) {
  return _width;
}
 
int16_t Adafruit_GFX::height(void) {
  return _height;
}



uint16_t Adafruit_GFX::newColor(uint8_t r, uint8_t g, uint8_t b) {
  return ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3);
}


void Adafruit_GFX::background(uint8_t red, uint8_t green, uint8_t blue) {
  background(newColor(red, green, blue));
}

void Adafruit_GFX::background(color c) {
  fillScreen(c);
}

void Adafruit_GFX::stroke(uint8_t red, uint8_t green, uint8_t blue) {
  stroke(newColor(red, green, blue));
}

void Adafruit_GFX::stroke(color c) {
  useStroke = true;
  strokeColor = c;
  setTextColor(c);
}

void Adafruit_GFX::noStroke() {
  useStroke = false;
}

void Adafruit_GFX::noFill() {
  useFill = false;
}

void Adafruit_GFX::fill(uint8_t red, uint8_t green, uint8_t blue) {
  fill(newColor(red, green, blue));
}

void Adafruit_GFX::fill(color c) {
  useFill = true;
  fillColor = c;
}


void Adafruit_GFX::text(const char * text, int16_t x, int16_t y) {
  if (!useStroke)
    return;
  
  setTextWrap(false);
  setTextColor(strokeColor);
  setCursor(x, y);
  print(text);
}

void Adafruit_GFX::textWrap(const char * text, int16_t x, int16_t y) {
  if (!useStroke)
    return;
  
  setTextWrap(true);
  setTextColor(strokeColor);
  setCursor(x, y);
  print(text);
}


void Adafruit_GFX::textSize(uint8_t size) {
  setTextSize(size);
}

void Adafruit_GFX::point(int16_t x, int16_t y) {
  if (!useStroke)
    return;
  
  drawPixel(x, y, strokeColor);
}

void Adafruit_GFX::line(int16_t x1, int16_t y1, int16_t x2, int16_t y2) {
  if (!useStroke)
    return;
  
  if (x1 == x2) {
    if (y1 < y2)
      drawFastVLine(x1, y1, y2 - y1, strokeColor);
    else
      drawFastVLine(x1, y2, y1 - y2, strokeColor);      
  }
  else if (y1 == y2) {
    if (x1 < x2)
      drawFastHLine(x1, y1, x2 - x1, strokeColor);
    else
      drawFastHLine(x2, y1, x1 - x2, strokeColor);
  }
  else {
    drawLine(x1, y1, x2, y2, strokeColor);
  }
}

void Adafruit_GFX::rect(int16_t x, int16_t y, int16_t width, int16_t height) {
  if (useFill) {
    fillRect(x, y, width, height, fillColor);
  }
  if (useStroke) {
    drawRect(x, y, width, height, strokeColor);
  }
}

void Adafruit_GFX::rect(int16_t x, int16_t y, int16_t width, int16_t height, int16_t radius) {
  if (radius == 0) {
    rect(x, y, width, height);
  }
  if (useFill) {
    fillRoundRect(x, y, width, height, radius, fillColor);
  }
  if (useStroke) {
    drawRoundRect(x, y, width, height, radius, strokeColor);
  }
}

void Adafruit_GFX::circle(int16_t x, int16_t y, int16_t r) {
  if (r == 0)
    return;
  
  if (useFill) {
    fillCircle(x, y, r, fillColor);
  }
  if (useStroke) {
    drawCircle(x, y, r, strokeColor);
  }
}

void Adafruit_GFX::triangle(int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t x3, int16_t y3) {
  if (useFill) {
    fillTriangle(x1, y1, x2, y2, x3, y3, fillColor);
  }
  if (useStroke) {
    drawTriangle(x1, y1, x2, y2, x3, y3, strokeColor);
  }
}

#if defined(__SD_H__)  // Arduino SD library

#define BUFFPIXEL 20

void Adafruit_GFX::image(PImage & img, uint16_t x, uint16_t y) {
  int      w, h, row, col;
  uint8_t  r, g, b;
  uint32_t pos = 0;
  uint8_t  sdbuffer[3*BUFFPIXEL]; // pixel buffer (R+G+B per pixel)
  uint8_t  buffidx = sizeof(sdbuffer); // Current position in sdbuffer

  // Crop area to be loaded
  w = img._bmpWidth;
  h = img._bmpHeight;
  if((x+w-1) >= width())  w = width()  - x;
  if((y+h-1) >= height()) h = height() - y;

  /*
  // Set TFT address window to clipped image bounds
  setAddrWindow(x, y, x+w-1, y+h-1);
  */
  
  for (row=0; row<h; row++) { // For each scanline...
    // Seek to start of scan line.  It might seem labor-
    // intensive to be doing this on every line, but this
    // method covers a lot of gritty details like cropping
    // and scanline padding.  Also, the seek only takes
    // place if the file position actually needs to change
    // (avoids a lot of cluster math in SD library).
    if(img._flip) // Bitmap is stored bottom-to-top order (normal BMP)
      pos = img._bmpImageoffset + (img._bmpHeight - 1 - row) * img._rowSize;
    else     // Bitmap is stored top-to-bottom
      pos = img._bmpImageoffset + row * img._rowSize;
    if(img._bmpFile.position() != pos) { // Need seek?
      img._bmpFile.seek(pos);
      buffidx = sizeof(sdbuffer); // Force buffer reload
    }

    for (col=0; col<w; col++) { // For each pixel...
      // Time to read more pixel data?
      if (buffidx >= sizeof(sdbuffer)) { // Indeed
        img._bmpFile.read(sdbuffer, sizeof(sdbuffer));
        buffidx = 0; // Set index to beginning
      }

      // Convert pixel from BMP to TFT format, push to display
      b = sdbuffer[buffidx++];
      g = sdbuffer[buffidx++];
      r = sdbuffer[buffidx++];
      //pushColor(tft.Color565(r,g,b));
      drawPixel(x + col, y + row, newColor(r, g, b));
      
    } // end pixel
  } // end scanline

}

#endif
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: elgarbe en 28 de Agosto de 2014, 20:14:53
....
Exacto, es un producto orientado a estudiantes y gente que empieza y no quiere profundizar ni en la electrónica, ni en el software.

....

yo también estoy de acuerdo con esta respuesta. observen que en el mismo sitio lo dicen:

"...It's intended for artists, designers, hobbyists and anyone interested in creating interactive objects or environments..."
Código: [Seleccionar]
Fuente: http://arduino.cc/en/pmwiki.php?n=
pues como todo en esta vida, depende del uso que le vayas a dar a los micros, no defenderé arduino (porque no lo conozco) pero tampoco defenderé a los pic (que si los conozco). Es cuestión de hacer pruebas y ver cuál resulta mas conveniente en el entorno que se trabaje.



coincido en este punto. cada cosa fue pensada y diseñada para un entorno mas o menos amplio (estrecho). Arduino fue concebido para hobby y pequeños montajes sin tener que diseñar y fabricar el hardware. Sabiendo que con el espíritu del open hard y soft crecería mucho y vendería millones de unidades.
Pero veámoslo de esta optica, productos finales que tengan un arduino como core debe haber algunos, que tengan un micro Atmel o PIC debe haber millones.

Tambien podemos pensarlo desde la siguiente óptica, la bicicleta fue diseñada para transportar personas en cortas distancias, de su casa al trabajo, al comercio, etc. Sin embargo hay gente que recorre miles de kilómetros en ellas... pero no debemos equivocarnos, si bien se puede recorrer kilometros en bicicleta, la mayoria elegimos el automovil para esa tarea.
Acá es lo mismo, Arduino tiene un micro muy potente y seguramente deben poder hacerse cosas super complejas con un Arduino, pero en mi opinion no es para lo que se lo "inventó"

Yo a mis alumnos de secundaria, cuando queremos hacer algun proyecto simple, les doy un arduino y en un par de clases, sin mas, salen trabajando solos y eso es espectacular! pero cuando quiero resolver algun proyecto un poco mas avanzado o con vistas comerciales, sin duda que voy por el lado de un pic o un atmel o un arm

mi granito de arena!
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: hector915 en 29 de Agosto de 2014, 01:48:46
Todo muy claro Picuino :) aunque prefiero los pics por que se debe tener mas persistencia a la hora de aprender y desarrollar las habilidades, una placa de arduino tiene la mayoria de las cosas implementadas.

Saludos.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 29 de Agosto de 2014, 06:16:34
Yo suelo programar PIC y muy poco Arduino.
La mayoría de las librerías me las programo yo a mano.

La razón, en mi caso, consiste en que con PIC tengo más variedad de micros a mi disposición (con mayor variedad en los periféricos)
Que el soporte técnico es mejor en Microchip porque tiene muy buena documentación para los PIC de 8 bits y además está este foro.
Las librerías las programo así, no por desarrollar habilidades, sino para entenderlas mejor y poder optimizarlas.

En cualquier caso, reconozco en Arduíno una herramienta de prototipado muy buena, mucho mejor en muchos aspectos que las de Microchip:

http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=DV164130
(http://www.microchip.com/_ImagedCopy/DM164130-9.png)

http://www.microchip.com/DevelopmentTools/ProductDetails.aspx?PartNO=TCAD001
(http://www.microchip.com/_ImagedCopy/TCAD001%20large.jpg)


Y a muchos ya nos gustaría tener para PIC una plataforma semejante:

  Barata (10 Euros la placa UNO comprada a los chinos)
  De hardware libre para poder modificarla
  Con un entorno de desarrollo sencillo, con muchas librerías y gratuíto (CCS cuesta dinero o lo tienes que piratear  :? )
  Con shields a medida y relativamente baratos (no todos) para hacer un montón de cosas (Ethernet, control de motores, Wifi, Xbee, TFT y muchas más)
  Con un compilador de C++ GNU muy estable (En el caso de Microchip, retiran del mercado el C18 y te quedas sin soporte para nuevos micros)
  Con herramientas estándar de programación como FreeRTOS (solo soportado parcialmente por los PIC18)
 

Saludos.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: elgarbe en 29 de Agosto de 2014, 08:38:26
En cualquier caso, reconozco en Arduíno una herramienta de prototipado muy buena, mucho mejor en muchos aspectos que las de Microchip:


 ((:-)) ((:-))
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: jhozate en 29 de Agosto de 2014, 13:24:52
Yo creo que la comparación iba un poco mas orientada a herramientas de desarrollo, la plataforma de arduino carece de un debugger, pero tal como dijo picuino y como lo hago yo es hacer uso de printf.

En arduino es posible manejar los registros a pie, pero esa no es la metodología de desarrollo con arduino, sino usar sus librerías y hacer uso de funciones cómodas al desarrollador.  Como bien se dijo, depende de la situación, si es por tiempo de ingeniería arduino ahorra muchisimo en cuanto a tiempo de  desarrollo y el tiempo es muy valioso, también se ahorra tiempo en implementación de Hardware. 

En cuanto a el microcontrolador como tal, me enseñaron a mi que uno de los temas a tener en cuenta cuando se selecciona un micro son el numero de registros temporales de trabajo, Lo que en PIC se llama el regristro W,  y en eso un ATMEGA328P es superior a muchos PIC de la seria 16F y 18F.
Por aca, me pusieron a leer algo de arduino Why Arduino is not the right educational tool (http://www.hackvandedam.nl/blog/?p=762)

Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: PalitroqueZ en 29 de Agosto de 2014, 15:23:49
....

Yo a mis alumnos de secundaria, cuando queremos hacer algun proyecto simple, les doy un arduino y en un par de clases, sin mas, salen trabajando solos y eso es espectacular! pero cuando quiero resolver algun proyecto un poco mas avanzado o con vistas comerciales, sin duda que voy por el lado de un pic o un atmel o un arm

mi granito de arena!

+1
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: RedPic en 29 de Agosto de 2014, 15:56:21
....

Yo a mis alumnos de secundaria, cuando queremos hacer algun proyecto simple, les doy un arduino y en un par de clases, sin mas, salen trabajando solos y eso es espectacular! pero cuando quiero resolver algun proyecto un poco mas avanzado o con vistas comerciales, sin duda que voy por el lado de un pic o un atmel o un arm

mi granito de arena!

+1

+1 +1  :mrgreen:

En mi trabajo actual me traen prototipos, test y pruebas realizados con Arduino y me piden que los haga, complete y desarrolle con PIC.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: MerLiNz en 29 de Agosto de 2014, 16:15:27
Tampoco es necesario tener la ostia de registros W, simplemente con tener los suficientes sobra, para que quieres 20 registros si vas a usar solo 6?? Un microcontrolador se elige segun el proyecto que quieras hacer, no vas a buscarte un pic con 10 pwms si solo usas 2, ni tampoco un pic de 100 pines si usas solo 10, la idea es escoger lo adecuado segun lo que queramos hacer.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 29 de Agosto de 2014, 20:52:58
En cuanto a los registros, el Atmega dispone de dos que permiten implementar pilas en toda la ram.
Esto facilita mucho la programación de alto nivel (paso de parámetros, funciones recursivas)

En el micro de Atmel toda la memoria es lineal (no está separada en bancos como en el PIC)

Estas características facilitan mucho la tarea al compilador. Yo creo que es por esta razón que existe un toolchain GNU para Atmel y no existe para los pic de gama media y baja (8 bits)

Con los sistemas operativos pasa lo mismo. FreeRTOS está implementado para PIC24 (micros de 16 bits), pero sólo parcialmente para PIC18 y no hay implementación para PIC16.
Sin embargo si que existe implementación completa para el Atmega.
La segmentación de memoria y la pila de programa dedicada y pequeña (32 posiciones máximo) limitan mucho a los PIC de 8 bits a la hora de hacer programación "Avanzada".

Los micros de Atmel no tienen esos problemas.




Conozco casos en los que Arduino se utiliza en el montaje de la aplicación final.
No creo que esto ocurra con otras plataformas de prototipado para 8 bits, como las de PIC.
Arduino lo utilizan artistas que quieren dar algo de interactividad o automatización a sus obras. Conozco casos de Arduinos que han terminado dentro de una obra en una exposición.
Tiene muchas ventajas. Es barato, muy flexible y el artista tiene todo el control.
Una placa "custom", hecha a medida, cuesta mucho más dinero, es mucho más difícil de programar y no tiene flexibilidad para hacer cambios.
No conozco ninguna PICkit 3 Starter Kit que se utilice en un producto final.



En otros casos, como dice RedPic, con Arduino se puede hacer un prototipo rápido que funcione y, una vez demostrada la funcionalidad, se puede pasar a hacer la placa final.
Esta placa final se puede hacer con PIC o con Atmel. Esto no es nuevo, también lo hacemos muchos de nosotros con otras herramientas semejantes:
   Placa protoboard (esta si que no se usa en los montajes finales)
   Placas estandar perforadas
   Wire Wrap (lo anunciaban como mejor que las protoboard, pero nunca llegué a cogerle el gusto)
   Placas de desarrollo
   Placas de entrenamiento (Training) más completas
   Etc.




Muchas placas se hacen con Atmel. Todos los controladores de motores brushless que conozco (ESC) utilizan micros Atmel. Seguro que conocéis muchos más ejemplos porque los AVR se venden como churros.
A propósito de ventas, desde 2010 las ventas de microcontroladores de 32 bits han superado a los de 8 bits y venden el doble de dinero. ¿Qué opináis de eso?

(http://www.electronicspecifier.com/cms/images/old/www/pr40665a3.jpg)


Saludos.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Jorge555 en 30 de Agosto de 2014, 18:17:20
El problema real de Arduino es que lo acaban usando muchos estudiantes para realizar su proyecto de final de carrera de "ingeniero electrónico" x_x. Como ya te han comentado Arduino está bien para la gente de 12-17 años que están en el instituto o empiezan con la electrónica, o para la gente que quiere hacer algo, no está especializado en electrónica, y necesita de un microcontrolador para realizar ese "algo" con un lenguaje de programación cuyo nivel de abstracción es muy alto, por lo que se va a poder usar el microcontrolador sin tener que mirar el datasheet.

Si tu objetivo es aprender electrónica o trabajar en eletrónica usa un microcontrolador pic, avr o la familia que sea sin el entorno de Arduino. Si tu objetivo es hacer algo invirtiendo el mínimo tiempo en aprender a usar el microcontrolador, y sin la necesidad de tener un control total sobre éste y pudiendote permitir un código no óptimo, pues Arduino es lo ideal. Si quieres empezar en este mundo y tienes cero conocimientos Arduino también es una buena opción.

Si lo tuyo es la electrónica, la pregunta es si te interesa pasarte de PIC a AVR, yo te diría que no, que pases de pic a un cortex-m0 ó m3 que es lo que más de va a ver en los próximos años, ya que todo lo que puedes hacer con un pic lo puedes hacer con un Arduino (AVR de 8 bits), por lo que quizás no te merece la pena el cambio en cuanto a inversión de tiempo. Cada familia de microcontroladores tiene sus ventajas, sin animo de empezar una guerra entre pic y avr comento desde mi punto de vista:

Ventaja de los pics:

- Programa de samples de Microchip, vamos que para prototipar o para aprender los regalan, puedes pedirles todos los que quieras para tus proyectos que no te van a preguntar, los de Atmel no son tan generosos con los samples y es difícil que te los manden.
- pickit siendo un debugger de bajo coste.

Ventaja de los AVR:

- IDE gratuito, tienes todas las herramientas necesarias sofware para usarlos gratis con el Atmel Studio, en los pics el IDE hay que pagarlo, la versión del ide de microchip no es gratuita (si no ha cambiado que hace tiempo que no lo miro).
- El debugger es más caro que en los pics, el más barato cuesta sobre los 50 euros, y el JTAGICE3 que es el programador que mejor sale comprar y vale para casi todo lo de Atmel está sobre los 100.

En cuanto al micro, ventajas de los AVR:

- La memoria no está páginada como en los pic, no hay que estar cambiando de bano.
-  Los pic solo tienen un registro de trabajo W, mientras que los AVR tienen unos cuantos.
- Los pic tienen dos vectores de interrupción si no recuerdo mal, por lo que hay que estar mirando que periférico lo ha disparado, los AVR tienen bastantes vectores de interrupción, uno propio para la mayoría de periféricos por lo que muchas veces no hay que hacer pooling.
- EL stack de los AVR está al final de la RAM y crece hacia abajo, por lo que puede ser bastante mayor que en los pics que está limitado. Cuando se lleva ocupada más de un 70% del valor de la SRAM de los AVR es no recomendable que siga creciendo, ya que se puede mezclar el stack con la ram.
- EL pic necesita 4 ciclos de reloj para ejecutar una instrucción y el AVR solo un ciclo para la mayoría de instrucciones, con un cristal de 16 MHz que llevan por ejemplo los Arduinos se suelen tener 16 MIPS.
- En los AVR todos los piner de entrada tienen un disparado smichtt.

Seguro que algo me dejo.

En cuanto a hardware del micro y entorno de desarrollo para mi gusto me quedo con los AVR respecto a los PIC. Si el precio del micro es importante y queremos programa de samples + IDE pirateado los PICs son una opción, pero si queremos pagar los micros desde mi punto de vista los AVR son mejor alternativa, pero vamos, cuestión de gusto.

Os dejo unos enlaces de mi página respecto al tema de Arduino y AVR por si son de ayuda para los que quieran pasar a AVR.

Diferencias entre usar el entorno de Arduino respecto al de AVR: http://webdelcire.com/wordpress/archives/2866

El que quiera pasar de Arduino a AVR: http://webdelcire.com/wordpress/archives/2905 http://webdelcire.com/wordpress/archives/2973

Y sobre cómo empezar con los AVR, esto lo documente cuando empecé con ellos por lo que no sé qué tal estará: http://jmnlab.com/AVR.html

Saludos.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: MerLiNz en 30 de Agosto de 2014, 19:06:43
El ide de microchip es gratis, almenos desde que aprendi a usar los pics, en este caso usaba el MPLAB y ahora sacaron el MPLABX que es tipo eclipse, lo unico que hay que pagar son los compiladores (XC8, 16, 32).
Lo de los 4 ciclos de reloj por 1 instruccion realmente no lo veo un inconveniente ni ventaja, si es cierto que los atmel de 8 llegan a trabajar hasta 20mips, pero los ultimos pics que sacaron hacen unos años trabajan a 16mips, seguramente en un futuro saquen algo mas potente.
Tambien se te olvido mencionar que los pics tienen mas perifericos que los atmel, cosa que a pesar de que no sean tan veloces ayuda bastante al desarrollo y la optimizacion.

Y por ultimo, no se mucho de atmel, sin embargo creo que no suelen innovar tanto como microchip, estos estan ultimamente sacando mayor variedad de pics en todas sus familias, el tiempo que llevo han sacado un dspic33e buenisimo, sacaron tambien el 18f46kxx y ahora estan trabajando en el pic32mz (ya lo han sacado, pero no estan a la venta, solo en demostracion). En atmel todo ese tiempo creo que no ha sacado ninguna version mas de ninguna mcu (almenos en su version de 8bits).
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Jorge555 en 30 de Agosto de 2014, 19:21:28
Me refiero al entorno de desarrollo con el compilador incluido, ya que en raros casos vamos a hacer todo el desarrollo en ASM, es lo bueno de Atmel que en todas sus familias de microcontroladores 8,16 y 32 bits te da unas herramientas de calidad gratis para el desarrollo del firmware.

Una ventaja de los pics 16F es que son ideales para aprender ensamblador ya que tienen muy poquitas instrucciones.

En cuanto a micros pues si ha salido alguno que otro últimamente en 8 bits de avr,  y en el tema de periféricos pues ya habría que entrar a comparar los de uno con lo de otro. En cuanto a la frecuencia del cristla pues hay que mirarlo desde temas de consumo, habría que comparar también el consumo de uno y el de otro, pero vamos creo que las ventajas principales son las anteriores, y teniendo herramientas de desarrollo para ambos a mi me gusta bastante más los micros de Atmel, y aún teniendo samples de PIC para prototipar o montar un par de placas placas prefiero comprar micros de Atmel, pero vamos cuestión de gustos.

En las universidades de estados unidos en los proyectos de las asignaturas de microcontroladores se usaba AVR en muchas y no pic, aquí en España al contrario, en todos los centros educativos se han usado PICs y en casi ninguno o ninguno AVR. Ahora ya hay nuevas alternativas más interesantes a PIC y AVR en 8 bits en estos centros como pueden ser los ARM.

Otro aspecto que no hemos nombrado es la comunidad, en español la comunidad online de los pics es muy fuerte mientras que de AVR no hay casi nada y en inglés ambas, la de avrfreaks es muy buena.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: KALLITOS en 30 de Agosto de 2014, 19:42:24
Depende de lo que quieras hacer.
Para mí, usar PIC silvestre, armar la placa segun las necesidades, programar lo mas que se pueda con codigo propio (puedes tomar como ejemplo el codigo de los demás y poder encontrar los errores y aprenderás más).
Arduino nunca lo he usado, pero por lo que he leído, nunca me metería con ellos.

Saludos.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: manwenwe en 30 de Agosto de 2014, 19:48:16
El problema real de Arduino es que lo acaban usando muchos estudiantes para realizar su proyecto de final de carrera de "ingeniero electrónico" x_x. Como ya te han comentado Arduino está bien para la gente de 12-17 años que están en el instituto o empiezan con la electrónica, o para la gente que quiere hacer algo, no está especializado en electrónica, y necesita de un microcontrolador para realizar ese "algo" con un lenguaje de programación cuyo nivel de abstracción es muy alto, por lo que se va a poder usar el microcontrolador sin tener que mirar el datasheet.

El problema no es del alumno, es del profesor que es tan mediocre que por ir de "modernillo" le permite hacer un PFC con un Arduino: y conozco a más de uno de cerca.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: planeta9999 en 30 de Agosto de 2014, 19:49:04
ahora estan trabajando en el pic32mz (ya lo han sacado, pero no estan a la venta, solo en demostracion).


El PIC32MZ, si que está a la venta, al menos algunas referencias como el PIC32MZ2048ECG100, que tienes en Amidata con plazo de entrega 24 horas, también lo tienes disponible como sample gratuito en la web de Microchip.

Yo hace poco, compré en Amidata una tarjeta PIM con un PIC32MZ2048EC, por 20 Euros, para probarlo en mi Explorer16. Aún no he tenido ocasión de probarlo, porque supongo que no estará soportado por MPLAB y C32, solo por MPLABX y el compilador XC32.



Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Jorge555 en 30 de Agosto de 2014, 20:03:32
Si el problema es que se permite, comprendo que se pueda permitir si es una parte secundaria de un proyecto, pero si es una parte importante del desarrollo pues no tiene sentido que una persona que va a ser técnico/ingeniero en electrónica, o cualquier otra formación, se le permita usar un Arduino para desarrollar un proyecto de electrónica.

En cuanto a micros de 32 los de atmel últimamente están con los ARM, y puestos a aprender a usar un micro mayor yo me iría a una ARM.

El problema aquí puede ser el entorno de desarrollo keil, iar, codewarrior son impagables. lpc tiene una versión gratis limitada a 256k de programa, y coocox está muy bien pero no soporta todos los micros de las principales familias y no me acaba de convencer, prefiero usar algo de un fabricante o "más profesional".

El entorno de Atmel tb está bastante bien pero todavía no hay mucha documentación disponible de su uso por gente en internet, os dejo un enlace muy bueno para empezar con los cortex-m0 de atmel: http://experimentjmcg.wordpress.com/2014/04/21/samd20-blinky-example-from-scratch-a-tutorial/

Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: jhozate en 30 de Agosto de 2014, 20:15:13
tampoco es necesario un microcontrolador lleno de perífericos si todos no se van a usar , eso  haría el proyecto mas costoso. Puede ser que los micros ofertados por AVR suplan acaso la mayoria de las necesidades y lo de microchip sea un tema de mercadeo, igual microcontrolador ideal es el que se ajusta a las necesidades.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: PalitroqueZ en 30 de Agosto de 2014, 20:16:19
es interesante tocar el punto de los proyectos de grado en las instituciones educativas, particularmente yo no pondría trabas a la hora de escoger tecnologias para cumplir un objetivo, de todas formas los proyectos de grado son prototipos que permitirán alcanzar la graducación, por supuesto este escenario varía dependiendo de los objetivos que el tutor academico y/o industrial imponga.

para mi el tipo de tecnología no importa, lo que en realidad importa es el tiempo y el dinero que se invierta en ese proyecto.

Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 30 de Agosto de 2014, 20:22:20
El problema real de Arduino es que lo acaban usando muchos estudiantes para realizar su proyecto de final de carrera de "ingeniero electrónico" x_x. Como ya te han comentado Arduino está bien para la gente de 12-17 años que están en el instituto o empiezan con la electrónica, o para la gente que quiere hacer algo, no está especializado en electrónica, y necesita de un microcontrolador para realizar ese "algo" con un lenguaje de programación cuyo nivel de abstracción es muy alto, por lo que se va a poder usar el microcontrolador sin tener que mirar el datasheet.

El nivel de abstracción del lenguaje de Arduino es alto...  y también bajo.

Creo que esa idea no cala en la gente porque la publicidad de Arduino intenta convencer sólo de un punto de vista.

No existe un lenguaje de Arduino, en el entorno de Arduino se programa en C++ estandar, ni más ni menos. (exactamente en GNU C++)

El entorno viene con funciones y macros para hacer más fácil las cosas, pero sigue siendo C++

En el entorno estandar se puede programar en código máquina embebido y llamar directamente a los registros del microcontrolador.
Esto es el nivel más bajo que se puede conseguir con cualquier microcontrolador (al menos hasta que permitan alterar el microcódigo)



Por otra parte, la placa Arduino se puede programar con el entorno Eclipse, que no tiene fama de ser para teenagers:
http://playground.arduino.cc/code/eclipse


Saludos.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 30 de Agosto de 2014, 20:34:04
El problema no es del alumno, es del profesor que es tan mediocre que por ir de "modernillo" le permite hacer un PFC con un Arduino: y conozco a más de uno de cerca.

No tiene por que ser un problema usar Arduino en un Proyecto Fín de Carrera. El proyecto puede ser muy serio utilizando Arduino.

No olvidemos que Arduino es un entorno de desarrollo. Si se quiere que el alumno, además de hacer el proyecto diseñe una PCB, se le puede pedir que pase su prototipo a una PCB final con todo integrado.



También hay placas Arduino hechas a medida (custom). Aquí una del MIT, que tiene bastante fama como universidad de tecnología:

http://academy.cba.mit.edu/2013/students/yudin.anton/projects/arduino_board.html

(http://academy.cba.mit.edu/2013/students/yudin.anton/%2bdownload/images/projects/arduino_board/photo01.jpg)

Saludos.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: MerLiNz en 30 de Agosto de 2014, 21:01:47
ahora estan trabajando en el pic32mz (ya lo han sacado, pero no estan a la venta, solo en demostracion).


El PIC32MZ, si que está a la venta, al menos algunas referencias como el PIC32MZ2048ECG100, que tienes en Amidata con plazo de entrega 24 horas, también lo tienes disponible como sample gratuito en la web de Microchip.

Yo hace poco, compré en Amidata una tarjeta PIM con un PIC32MZ2048EC, por 20 Euros, para probarlo en mi Explorer16. Aún no he tenido ocasión de probarlo, porque supongo que no estará soportado por MPLAB y C32, solo por MPLABX y el compilador XC32.





No sabia que estaban a la venta, aun asi, no los compraria, segun he leido tienen bugs en el silicio por lo cual puedes estar pagando por una mcu que te de problemas y no saber de donde vienen esos problemas (simplemente sea fallo de la mcu).

Sobre los perifericos, no es que haya pics llenos de perifericos que no se usen, en cada familia existe una mcu con distintos perifericos o con todos incluidos, es ya tu decision que usar segun se vea conveniente, pero una mcu con perifericos a patadas siempre sera mejor que una mcu que tengas tu que implementar los perifericos por software.

Los proyectos de fin de carrera sinceramente no los he entendido nunca, he visto gente que hacen cosas excesivamente simple (por ejemplo un control de un motor de agua para el llenado de un deposito y que se apague cuando este lleno), yo como no he hecho ninguna carrera no se que nivel exigen sin embargo a veces veo cosas muy muy pobres. Pero sinceramente si alguien estudia electronica y hace un control de este tipo con arduino es para "darle un librazo en el lomo", que una persona que esta estudiando algo tan profundo haga este tipo de simpleza...
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: elgarbe en 31 de Agosto de 2014, 19:03:44
Para aquellos que quieren imponer la guerra entre pic y avr, miren, escuchen y aprendan


Incluso el tema que se ha propuesto es cambiar de PIC a ardunio... no se porque salen con la comparativa de atmel vs microchip.

Me parece que muy pocos tienen dudas para que sirve cada cosa (arduino y un pic).

Entonces, enfocando al tema del asunto, doy mi respuesta:

Si ya sabes usar los PIC, entonces PASARTE a Arduino no tiene ningún sentido. Lo que podrías hacer es usar Arduino para PROTOTIPOS que te demandaran poco tiempo en cuanto a hardware. Si lo que tu haces es hobby, entonces con prototipos hechos con Arduino estaras super conforme. Si lo tuyo es hacer un producto final, una vez tengas tu prototipo con Arduino funcionando, has tu diseño con un AVR o un PIC o el micro con el que te sientas más cómodo. En mi opinion no hace falta elegir entre uno y el otro, podes convivir con ambos y sacar lo mejor de cada uno. Ten en cuenta que si Arduino se publicita como algo para hobby es por que es algo para hobby, que algunos lo usen para productos finales no lo convierte en la mejor opcion para eso.

Saludos!
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: elgarbe en 31 de Agosto de 2014, 19:16:32
Muchas placas se hacen con Atmel. Todos los controladores de motores brushless que conozco (ESC) utilizan micros Atmel. Seguro que conocéis muchos más ejemplos porque los AVR se venden como churros.
A propósito de ventas, desde 2010 las ventas de microcontroladores de 32 bits han superado a los de 8 bits y venden el doble de dinero. ¿Qué opináis de eso?

(http://www.electronicspecifier.com/cms/images/old/www/pr40665a3.jpg)


Saludos.

A lo mejor no interpreto bien los gráficos, pero creo que los micros de 8 bits venden mas unidades que los de 32bits.
La tecnología de 32 bits se ha hecho mas barata a un ritmo superior que la de 8bits, sumado a su popularizacion (ARM sobre todo) es que ha mejorado el mercado de los 32 bits:

2009: USD 0,86 en 8bits y USD 3,5 en 32 bits
2013: USD 0,65 en 8 bts y USD 1,55 en 32 bits

Sds.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: elreypic2 en 31 de Agosto de 2014, 21:58:25
Que tal a todos,

Pues en mi opinion creo que eso de cambiar de PIC a arduino no tiene sentido  para mi. Mas bien es, cual microcontrolador es mejor para el proyecto en cuestion.
Arduino es una buena forma de aprender AVR ya que es un entorno C++ y eso es interesante para mi. Ya que el lenguaje C se usa practicamente para cualquier microcontrolador desde los de 8 bits hasta los de 32bits.
Cada microcontrolador tiene sus ventajas y desventajas, y algunas hasta dependen del pais (En algunos es muy dificil conseguir AVR, en otros los PIC).
Consegui este video que vi hace algun tiempo, acerca de la comparación de AVR vs PIC, veanlo es muy interesante.


Saludos

elreypic.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 01 de Septiembre de 2014, 05:20:44
Un proyecto muy interesante de mejora de un regularímetro de la industria textil:

http://www.pablogindel.com/2012/12/arduino-en-la-industria

Utiliza varias herramientas, muchas de ellas del entorno Arduino:
    Placa Arduino UNO
    Java
    Processing
    NetBeans
    Eclipse
    Circuito analógico a medida (preamplificador y filtro)
    Encoder digital
    Placa de relés para Arduino.


Saludos.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 01 de Septiembre de 2014, 05:25:53
Un producto interesante. Un autómata industrial basado en Arduino:

http://www.industrialshields.com/index.php?route=common/home


Arduino Industrial:

http://tienda.ray-ie.com/home/53-arduplcm.html



Saludos.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 01 de Septiembre de 2014, 05:31:23
Consegui este video que vi hace algun tiempo, acerca de la comparación de AVR vs PIC, veanlo es muy interesante.


Muy interesante, que pena que esté sólo en inglés.

Saludos.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: PalitroqueZ en 01 de Septiembre de 2014, 11:57:24
Código: [Seleccionar]
Cambiar de PIC a Arduino. buena o mala idea
¿y esta pregunta no se respondería si microchip (y tienen que ser ellos) sacasen una versión hardware libre con un pic32 y un compilador con un lenguaje amigable y que sea posible la conexión de modulos independendientes?
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: jhozate en 01 de Septiembre de 2014, 12:04:41
de hecho la apuesta de microchip  son los Chipkit Uno32 (http://www.microchip.com/DevelopmentTools/ProductDetails.aspx?PartNO=TDGL002) y son compatibles con los shield arduino
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: xocas en 01 de Septiembre de 2014, 12:05:48
Me parece que esa solución no tuvo mucho éxito amigo Pedro:
ChipKit UNO32 (http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,892,893&Prod=CHIPKIT-UNO32)
ChipKit MAX32 (http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,892,894&Prod=CHIPKIT-MAX32)

Edito: oppss, perdón, te he pisado la respuesta
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: AleSergi en 01 de Septiembre de 2014, 12:35:44
Código: [Seleccionar]
Cambiar de PIC a Arduino. buena o mala idea
¿y esta pregunta no se respondería si microchip (y tienen que ser ellos) sacasen una versión hardware libre con un pic32 y un compilador con un lenguaje amigable y que sea posible la conexión de modulos independendientes?
Eso no lo hacía el "pingüino" Che?
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: PalitroqueZ en 02 de Septiembre de 2014, 00:00:49
pos fijate que no sabía que microchip había sacado ese módulo   :z)

(http://www.todopic.com.ar/foros/imgtiny/2m7vk35.jpg)
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: champilton en 02 de Septiembre de 2014, 23:58:30
no crei que fuera a ser tan comentado este tema, pero al ver los diferentes criterios y puntos de vista, creo que podria seguir con los PIC y sacarle mas jugo a sus bits, de todos modos aun me falta incursionar mas alla de los 16F ... quizas en algun tiempo libre pruebe arduino, y como muchos han comentado y como yo tmbn creo, lo utilizaria cuando requiera hacer un prototipo rapido que no me lleve mas de un par de horas. Al igual que muchos pienso que para un nivel universitario, en especial si se estudia una ingenieria electronica, arduino no deberia ser la base de los proyectos pues existen cosas en los desarrollos que debemos conocer como la palma de nuestra mano, y con arduino al facilitar muchas cosas, se omite el conocimiento de dichas partes.

me internare en arduino un dia de estos, no estara de mas conocerlo, por ahora tengo planes de saber mas y mas en cuanto a PICs

Gracias a todos por sus respuestas y enlaces  :) los vere en cuanto pueda.

 ((:-))
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 03 de Septiembre de 2014, 06:23:21
no crei que fuera a ser tan comentado este tema
Es que este es un foro dedicado a los PIC y Atmel es uno de sus grandes competidores. Puede llegar a ser una cuestión de religión.


me internare en arduino un dia de estos, no estara de mas conocerlo, por ahora tengo planes de saber mas y mas en cuanto a PICs

Conocer Arduino no lleva más de dos horas. Internarse en los detalles, es tan difícil como pueda serlo una placa con PIC.


Al igual que muchos pienso que para un nivel universitario, en especial si se estudia una ingenieria electronica, arduino no deberia ser la base de los proyectos pues existen cosas en los desarrollos que debemos conocer como la palma de nuestra mano, y con arduino al facilitar muchas cosas, se omite el conocimiento de dichas partes.

Depende de qué proyecto y de qué parte del proyecto. En la mayoría de los proyectos durante la carrera, Arduíno puede ser lo más adecuado. Por eso lo inventaron profesores universitarios para sus alumnos.


Arduino facilita las cosas, pero no omite el conocimiento de las partes internas del microcontrolador (se puede programar en ensamblador y acceder directamente a los registros del microcontrolador)
Las librerías que te hacen la vida más sencilla no te impiden que tú programes a bajo nivel lo que quieras.
Muchos piensan como tú y luego utilizan pics programados con CCS para facilitar las cosas o utilizan el stack USB o Ethernet de Microchip (a ver quien es el guapo que lo programa por su cuenta)

Saludos.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: ASTROCAR en 28 de Septiembre de 2014, 10:46:58
hola buen dia, la placa arduino usa un microcontrolador y un pic es un microcontrolador claro està que de diferentes familias ambos pero son microcontrolador , si diseñas una placa para pic y pones los puertos bien distribuido como lo hicieron con arduinio y le colocas un bootloader tienes ya casi lo mismo ahora solo te falta el ide para trabajar el pic y listo no veo cual es el problema ahora si quieres comparar el microconlador de un hardware arduino con un pic en particular ya es otra la cosa.


Arduino es toda una plataforma hardware y software, en cambio pic es solo el microcontrolador que pasa con arduino que centraliso todo y hay solo lo que esta en su plataforma por eso tienes las librerias que tiene pero si pic hace lo mismo igual se crearia las librerias y todo lo demas de heccho ccs lo tiene, pero pic lo puedes programar en c, basic y cualquier leguanje  que quiera por decirlo de esa manera y si sacas el microcontrolador de arduino tambien podras hacerlo lo mismo logico que si atmel puedes programarlo en c, basic asm.

En conclusion, arduino es bueno para lo que fue pensado y pic es una familia de microcontrolador como lo es atmel solo que arduino hiso su plataforma y logro entrar en el mercado y sigue ofreciendo la publicidad necasaria aparte de brindar la comodidad  de hacer sus proyecto ya sea industriales o de hobbie pero proyecto al fin. pic tambien pudo hacer hecho lo mismo pero no salio un italiano haciendo lo mismo primero porque recuerden que el que lanzo arduino no tenia nada que ver con atmel solo que tomo esa familia de microcontrolador por sus razon en el momento pero pudo hacer tomado un pic o un arm. yo lo que noto es que arduino es una revolucion que ahorita esta perpetuada mas nada pero hay plataformas como raspberry, meb con arm los chipuno de pic solo que quien es mas visto ahora arduino mas nada.

Saludos y el que haga su  mejor proyecto que lo diseñe pensando en optimizar todo los recuerso, sea con la familia de microcontrolador que eligan.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: jesalf en 08 de Diciembre de 2014, 15:56:04

El problema no es del alumno, es del profesor que es tan mediocre que por ir de "modernillo" le permite hacer un PFC con un Arduino: y conozco a más de uno de cerca.

Jajaja este comentario me hizo el día... yo también conozco a más de uno.

En lo personal he usado poco el arduino, solo para saber de que se habla y poder opinar sobre el tema. Si bien es cierto que tiene muchas ventajas yo no lo usaría para enseñar a programar microcontroladores.  De las personas que conozco que usan arduino, un 95 % no tiene ni la menor idea de lo que hacen (o como hacen) las funciones que descargan libremente de internet, simplemente buscan quien ya hizo su trabajo y solo lo aplican.

Por otro lado, he visto como han dañado los arduino porque los usuarios no saben y creo que ni les dan importancia a las características eléctricas del arduino.

Actualmente se pueden conseguir herramientas de bajo costo con microcontroladores de mayor capacidad de memoria, más periféricos, mayor velocidad de procesamiento, precargados con un bootloader... obviamente con los contras de compiladores de paga, una mayor curva de aprendizaje o que se tienen que conectar a un proto board que al final es igual en los arduino.

http://www.mikroe.com/stm32/clicker-2/
http://www.mikroe.com/mini/pic32/

Para la duda con la que se inicio este tema, cambiar de PIC a arduino, mi recomentación es NO. Si lo que quiere es aprender a usar otro microcontrolador u otra herramienta yo te recomendaría aprender a programar microcontroladores de otras marcas y/o familias.

Saludos.










Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 08 de Diciembre de 2014, 19:38:25
De las personas que conozco que usan arduino, un 95 % no tiene ni la menor idea de lo que hacen (o como hacen) las funciones que descargan libremente de internet, simplemente buscan quien ya hizo su trabajo y solo lo aplican.

Yo soy usuario de Arduino.
Tengo bastante idea de lo que hago, y como yo hay muchos más.
Creo que sería más interesante que comentases sobre ese 5% de personas que conoces, que saben lo que se hacen con Arduino.


Actualmente se pueden conseguir herramientas de bajo costo con microcontroladores de mayor capacidad de memoria, más periféricos, mayor velocidad de procesamiento, precargados con un bootloader... obviamente con los contras de compiladores de paga, una mayor curva de aprendizaje o que se tienen que conectar a un proto board que al final es igual en los arduino.

http://www.mikroe.com/stm32/clicker-2/
http://www.mikroe.com/mini/pic32/

Eso es como comparar una moto con un camión.


Solo un argumento sobre el precio:

   Arduino a Nano a 2,68 EUR   :shock:

   http://www.ebay.es/itm/NEW-Nano-V3-0-ATmega328-Controller-Board-5V-16M-CH340G-USB-Driver-For-Arduino-/141433274102?pt=AU_B_I_Electrical_Test_Equipment&hash=item20ee147ef6

   (http://img.dxcdn.com/productimages/sku_81877_3.jpg)

P.D. Modifico con otro más barato.



En cuanto a mis recomendaciones sobre Arduino:

   1º Es conveniente informarse mejor sobre esta plataforma con tantas posibilidades.

   2º No utilices una sola plataforma en exclusiva.
       Si eres usuario de PIC o de ARM, ¡puedes utilizar Arduino también! es muy fácil y muy barato comenzar.

   3º No tengas complejos. No te vas a convertir en un usuario ignorante por usar Arduino.
       Para mí resulta obvio, pero creo que es necesario comentarlo.


Saludos.
Título: Re: Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 08 de Diciembre de 2014, 20:20:51
Aquí un ejemplo de proyecto fin de carrera empleando Arduino:

Modelos numéricos y algoritmos para navegación en interiores empleando redes de sensores (http://e-archivo.uc3m.es/handle/10016/11154)


Adjunto índice general:


Código: [Seleccionar]
1. Introducción . . . . . . . . . . . . . . . . . . . . . . .  1
1.1. Redes de sensores . . . . . . . . . . . . . . . . . . . . 1
1.2. Localización y navegación . . . . . . . . . . . . . . . . 2
1.3. Objetivos del proyecto . . . . . . . . . . . . . . . . .  3
1.4. Organización de la memoria . . . . . . . . . . . . . . .  3
2. Escenario experimental                          5
2.1. Contexto del experimento . . . . . . . . . . . . . . . .  5
2.2. Descripción del escenario . . . . . . . . . . . . . . . . 5
2.3. Obtención de observaciones para modelización . . . . . .  6
2.4. Trayectorias experimentales . . . . . . . . . . . . . . . 9
3. Descripción de los datos                         11
3.1. Conjuntos de datos . . . . . . . . . . . . . . . . . . . 11
3.2. Descripción de los ficheros de datos . . . . . . . . . . 12
3.2.1. Ficheros de datos de modelización . . . . . . . . . .  12
3.2.2. Ficheros de datos de prueba . . . . . . . . . . . . .  13
3.3. Estudio de los datos de modelización . . . . . . . . . . 13
3.3.1. Potencia recibida frente a distancia . . . . . . . . . 13
3.3.2. Media y varianza muestral de las observaciones . . . . 15
3.3.3. Histogramas de las observaciones . . . . . . . . . . . 18
3.4. Estudio de los datos de prueba . . . . . . . . . . . . . 21
3.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . 23
4. Modelos numéricos                           25
4.1. Definición de las ecuaciones del sistema . . . . . . . . 25
4.2. Modelo de movimiento . . . . . . . . . . . . . . . . . . 26
4.3. Modelo de observación . . . . . . . . . . . . . . . . .  28
4.3.1. Ecuación de observación . . . . . . . . . . . . . . .  28
4.3.2. Modelo logarítmico . . . . . . . . . . . . . . . . . . 29
   Definición del modelo . . . . . . . . . . . . . . . . . .  30
   Cálculo de los parámetros del modelo . . . . . . . . . . . 31
   Curvas de ajuste . . . . . . . . . . . . . . . . . . . . . 32
4.3.3. Modelos Polinómicos . . . . . . . . . . . . . . . . .  34
   Definición del modelo . . . . . . . . . . . . . . . . . .  34
   Cálculo de los parámetros del modelo . . . . . . . . . . . 35
   Curvas de ajuste . . . . . . . . . . . . . . . . . . . . . 36
4.3.4. Interpolación de la varianza de observación . . . . .  38
4.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . 40
5. Algoritmos de localización                        43
5.1. Filtro de Kalman Extendido . . . . . . . . . . . . . . . 44
5.1.1. Introducción al Filtro de Kalman . . . . . . . . . . . 44
5.1.2. Fases del algoritmo . . . . . . . . . . . . . . . . .  45
5.2. Filtro de partículas . . . . . . . . . . . . . . . . . . 46
5.2.1. Introducción al filtro de partículas . . . . . . . . . 46
5.2.2. Fases del algoritmo . . . . . . . . . . . . . . . . .  48
5.3. Ejemplos de aplicación de los algoritmos . . . . . . . . 49
5.3.1. Ejemplo unidimensional lineal . . . . . . . . . . . .  49
5.3.2. Ejemplo unidimensional no lineal . . . . . . . . . . . 51
5.4. Linealización de los modelos de observación . . . . . .  52
5.4.1. Modelo logarítmico . . . . . . . . . . . . . . . . . . 53
5.4.2. Modelo Polinómico . . . . . . . . . . . . . . . . . .  54
5.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . 55
6. Simulaciones                                57
6.1. Simulaciones con datos sintéticos . . . . . . . . . . .  57
6.1.1. Número de partículas . . . . . . . . . . . . . . . . . 57
6.1.2. Error de estimación de los algoritmos . . . . . . . .  59
6.1.3. Ejemplo: una trayectoria aleatoria . . . . . . . . . . 63
   Modelo polinómico de tercer orden . . . . . . . . . . . .  63
   Modelo logarítmico . . . . . . . . . . . . . . . . . . . . 65
6.1.4. Primera trayectoria de prueba . . . . . . . . . . . .  67
   Modelo polinómico de tercer orden . . . . . . . . . . . .  67
   Modelo logarítmico . . . . . . . . . . . . . . . . . . . . 69
6.1.5. Segunda trayectoria de prueba . . . . . . . . . . . .  70
   Modelo polinómico de tercer orden . . . . . . . . . . . .  71
   Modelo logarítmico . . . . . . . . . . . . . . . . . . . . 72
6.2. Pruebas con datos experimentales . . . . . . . . . . . . 73
6.3. Conclusiones . . . . . . . . . . . . . . . . . . . . . . 78
7. Conclusiones y trabajo futuro                  81
7.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . 81
7.1.1. Modelos . . . . . . . . . . . . . . . . . . . . . . .  82
7.1.2. Algoritmos . . . . . . . . . . . . . . . . . . . . . . 83
7.1.3. Simulaciones . . . . . . . . . . . . . . . . . . . . . 83
7.1.4. Pruebas experimentales . . . . . . . . . . . . . . . . 85
7.1.5. Resumen . . . . . . . . . . . . . . . . . . . . . . .  86
7.2. Líneas futuras de trabajo . . . . . . . . . . . . . . .  87
A. Presupuesto . . . . . . . . . . . . . . . . . . . . . . .  89
A.1. Recursos materiales . . . . . . . . . . . . . . . . . .  89
A.2. Recursos humanos . . . . . . . . . . . . . . . . . . . . 90
Referencias . . . . . . . . . . . . . . . . . . . . . . . . . 91


Los profesores que han dirigido un PFC así no me parecen ni mediocres ni que vayan de modernillos.


Repito: utilizar Arduino no te convierte en un usuario ignorante.


Saludos.
Título: Re:Cambiar de PIC a Arduino. buena o mala idea
Publicado por: micro_pepe en 22 de Abril de 2020, 17:03:50
Leyendo un articulo sobre Arduino, dice que es buena idea hacer una donación de vez en cuando, o comprar placas originales, ya que de momento es software y hardware libre ¿imagináis que puede pasar si hiciesen el IDE de pago? ¿lo creéis posible?

Yo suelo usar PIC, el IDE permite depurar, y puedes hacer debug con un PICKIT o un ICD, hay más variedad de micros, el tema de los fuses me gusta más sobre todo para proteger el código... Y Arduino principalmente para probar algunos periféricos, y luego adaptar librerías a PIC, o si quiero hacer algo rápido, o complejo como un servidor web, o cosas así.

Saludos!!!
Título: Re:Cambiar de PIC a Arduino. buena o mala idea
Publicado por: KILLERJC en 22 de Abril de 2020, 17:59:00
Citar
Los profesores que han dirigido un PFC así no me parecen ni mediocres ni que vayan de modernillos.


Repito: utilizar Arduino no te convierte en un usuario ignorante.

Cuando pregunte si podia utilizar una placa de desarrollo, ya que el micro era un TQFP 100 , y mas algunos componentes que no eran simple de conseguir aca, me dijeron que no... Si o si placa realizada por mi mismo... Distintas universidades, distintos docentes, distintas politicas.
Título: Re:Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 22 de Abril de 2020, 18:34:35
Depende de dónde quieran dedicar más esfuerzo. Si el desarrollo hardware no es importante se puede recomendar una placa de desarrollo. Por otro lado si el desarrollo hardware se considera una competencia básica a adquirir, se puede recomendar que se diseñe desde cero.
Incluso el mismo docente puede recomendar ambas cosas dependiendo del proyecto.

Yo mismo hago cosas con Arduino y también hago cosas con PCB diseñados a medida por mí. En otras ocasiónes empecé con un arduino y terminé diseñando ese mismo proyecto con un PCB a medida. Ambas opciones son compatibles a la vez.

Saludos.
Título: Re:Cambiar de PIC a Arduino. buena o mala idea
Publicado por: Picuino en 22 de Abril de 2020, 19:00:17
Leyendo un articulo sobre Arduino, dice que es buena idea hacer una donación de vez en cuando, o comprar placas originales, ya que de momento es software y hardware libre ¿imagináis que puede pasar si hiciesen el IDE de pago? ¿lo creéis posible?

Yo suelo usar PIC, el IDE permite depurar, y puedes hacer debug con un PICKIT o un ICD, hay más variedad de micros, el tema de los fuses me gusta más sobre todo para proteger el código... Y Arduino principalmente para probar algunos periféricos, y luego adaptar librerías a PIC, o si quiero hacer algo rápido, o complejo como un servidor web, o cosas así.

Saludos!!!

El IDE no van a hacerlo de pago porque es open source. Basado en wiring que también tiene licencia libre.
De todas formas puedes utilizar otros IDE más profesionales.
https://aprendiendoarduino.wordpress.com/2016/11/06/otros-ides/

Saludos.