programacion - secuencia de leds con pic 16f887
Comenzando con los PIC de programación(o productos similares) (14)
Comenzando con la programación de PIC''s ...
Ya que ha mencionado los PIC, agregaré dos centavos recomendando un completo programa de programación Embedded C y el Microchip PIC de Barnett, O''Cull y Cox. Fragmentos en google books
El libro utiliza el compilador CCS.
Ah, y cuando te incrustas, olvídate de TODO, te enseñaron en la clase de programación.
Sip. Además, la documentación es más escasa. Además, los IDE para el desarrollo integrado son notablemente más simplistas (aunque parecen más arcanos) que los IDE para el desarrollo de PC.
¿Cómo empiezo a programar los PIC (o productos similares)?
Preferiblemente en C. ¿Cuáles son algunos buenos kits para principiantes, tutoriales, libros, etc.? Tal vez algunas pequeñas ideas de proyectos robóticos.
Actualmente estoy jugando con procesadores PIC como un pasatiempo, con un tiempo muy ajustado y un presupuesto en efectivo. Recibí el kit de inicio de Microchip de Farnell (pagué £ 20, pero todavía es menos de £ 30).
Una cosa importante a tener en cuenta es que, si bien el kit viene con un zócalo de 14 pines, programará chips más grandes, actualmente estoy usando el 20 pin 16F690 .
Yo uso el compilador HI-TECH C, que tiene una versión gratuita que es excelente.
También utilizo la placa USB de Velleman , que obtuve de Maplin por £ 30. Es un poco lento, pero le permite hablar con el PIC desde su PC.
Los procesadores PIC pueden no ser los mejores, pero son fáciles de usar y baratos.
Aunque ha pasado algún tiempo sobre la pregunta, me gustaría compartir un buen enlace de tutorial para aquellos que buscarían este tema en .
Gooligum Electronics - Tutoriales PIC
Ellos explican las cosas muy bien, creo.
Casi todos los números de Make Magazine tienen al menos un proyecto de robótica. Su blog también está lleno de ideas.
Como estoy muy acostumbrado a Delphi, los productos de mikroElektronika fueron muy atractivos para mí. He realizado un par de proyectos usando MikroPascal (muy similar a la sintaxis de Delphi) usando sus programadores y tableros de desarrollo EasyPIC.
Se encuentran en algún lugar del este de Europa, pero nunca tuve problemas para enviar sus productos a los EE. UU.
Aquí hay un enlace a su página web:
Esperemos que no me echen a perder por decir esto, pero me parece que el ensamblador es mucho más fácil para el PIC que cualquier otra cosa. Estoy hablando del PIC, no del PIC 32, que es una cosa completamente diferente.
Por lo general, frecuento SparkFun para tablas tanto Olimex como no Olimex (SparkFun). A veces hay enlaces a ejemplos de trabajo, a veces no, hay que darse una vuelta.
Me corté los dientes con el PIC pero hace mucho que los dejé atrás. El conjunto de instrucciones era terriblemente ineficiente y no lo "entendieron" cuando se trataba de juntas de desarrollo. Parece que ahora lo "entienden", hay un montón de tablas en ese rango de $ 20 a $ 50 con las que uno puede mojarse los pies, en realidad tal vez demasiadas tablas. Lamentablemente un día tarde y ollar corto para mí personalmente.
Usted querrá algo similar al AVR Butterfly, un puñado de diferentes gadgets a bordo para aprender a programar, y / o un tablero casi desnudo, solo el chip, el reloj / la alimentación, preferiblemente las comunicaciones UART o UART a través de USB (de esa manera obtendrá poder también). Nota: SparkFun tiene una serie de soluciones para eso, tableros pequeños que se enchufan al final de un cable USB y el otro lado es UART y energía y tierra. Con el tablero simple puede agregar sus propios LED y lo que sea sin tener que quitar o deshabilitar los gadgets gee whiz que venían con el tablero de evaluación. En un momento en que utilicé un UART SPI ya que golpear SPI era más fácil que golpear los bits UART.
Comenzaría por parpadear los LED, tanto contando las instrucciones como la cantidad de relojes en un bucle y aprendiendo a usar el temporizador en el chip. Luego aprenda a escalar el reloj del sistema u otros divisores de reloj. Luego me metería en el UART o arrancaría una salida en serie para que sus programas puedan comunicarse con usted. Luego intente recibir datos en serie / UART, con un UART si está allí, pero también al sondear un pin de E / S y usar un temporizador o contar relojes, y también usar interrupciones, interrumpir un cambio de estado en el pin si es posible . Aprenda a usar pull-ups, obtenga un sensor de temperatura de un cable de Dallas Semiconductor o algo parecido y no solo descargue el código de trabajo. Averigüe cómo comunicarse con él (puede muy bien derretir una o más partes al hacer esto, tanto el PIC como los sensores de temperatura, comprar extras de todo).
Todas y más de estas habilidades básicas son necesarias para hacer robótica. Hmmm, pisar ese motor no es diferente a golpear un bus UART o SPI, solo un poco diferente ...
Dice robótica en su publicación, pero antes de comenzar o cuando compre y mire los tableros disponibles y descargue y lea las hojas de datos de los chips (antes de comprar uno), realmente necesita encontrar un proyecto simple. Para mí fue un receptor de infrarrojos, apunte el control remoto de su televisor al PIC más un par de partes de la radio shack (bueno, una parte) y luego un parpadeo del LED para mostrar lo que recibí o más tarde lo golpeé en un UART. Finalmente, pude analizar completamente diferentes protocolos de IR y, por diversión, aún lo hago de vez en cuando con diferentes microcontroladores.
Encontrar un proyecto que reciba algo, un sensor, etc. es probablemente más fácil de hacer en casa sin una gran cantidad de equipo especial. Básicamente es solo cuestión de tiempo, dependiendo del dispositivo. Simplemente muestrea el pin de entrada a cierta velocidad y de alguna manera te lo envías a ti mismo, donde puedes graficarlo o examinarlo, y te das cuenta de que se está ejecutando como 4 veces más lento de lo que pensaba. Me pregunto por qué es eso, y / o si simplemente cambio este código aquí para adaptarlo a una velocidad más lenta, entonces mi receptor funcionará.
Si está intentando emitir algo, es probable que desee algún tipo de osciloscopio o analizador lógico para "ver" su salida, e incluso con un alcance el dispositivo puede que simplemente no acepte sus datos. Eventualmente, querrá tener un proyecto que genere algo, por lo que tendrá que estar preparado para eso. Dependiendo de la interfaz con la que desee interactuar, puede obtener dos placas de microcontrolador y una salida de datos como si estuviera hablando con el dispositivo y tener el otro monitor y recibir los datos como si fuera un analizador lógico, lo que le brinda una forma para "ver" los datos por $ 20 en lugar de $ 20,000.
Ah, y cuando te incrustas, olvídate de TODO, te enseñaron en la clase de programación. El PIC y los semi compiladores de conejo y otros compiladores no van a ser verdaderos compiladores de C, pero sí una especie de compiladores de C (algunos pueden ser compatibles con algún estándar, pero para incrustados no NECESITAS eso). Reglas como no gotos, no variables globales, un retorno por función, las funciones deben ser menores que X líneas de código, etc. Estas pueden o pueden tener un propósito en una computadora, pero muchas de ellas le harán mucho daño en el mundo integrado. Asegúrese de que puede desmontar o, básicamente, ver las instrucciones creadas por su código C. Con una ROM y RAM a veces muy limitadas, no desea utilizar de 10 a 100 veces más recursos de los que realmente necesitaba. O tiene que comprar una parte más grande solo por su estilo de codificación. Al igual que con los LED parpadeantes para aprender a usar los pines de E / S, aprender a programar para incrustados es igual de importante antes de entrar en un proyecto real. Lo bueno de esto es que probablemente puedas obtener un compilador gratuito o de demostración y comenzar a aprender esto antes de comprar cualquier hardware. Probablemente hay simuladores de PIC por ahí también con los que puede pasar un paso por el código para comprender lo que está sucediendo.
Mi conclusión es que no debe limitarse al PIC, comprar en sparkfun.com, comprar unos tableros de evaluación diferentes de $ 20 con diferentes chips (AVR, PIC, MSP430 y definitivamente algunos de los basados en ARM), jugar con todos de ellos. Determine sus fortalezas y debilidades y / o sus favoritos según su estilo de codificación personal. Cada persona tiene una forma un poco diferente de implementar E / S, temporizadores e interrupciones, etc.
La mayoría de los proveedores de compiladores de C para PIC tienen buenos chips de inicio de bajo costo con versiones gratuitas del compilador que generalmente se limitan a un procesador particular (el que está en el kit o algunos más), el elemento más caro será el ICD (
Éstos incluyen:
- Pastilla
- CCS
- DE ALTA TECNOLOGÍA
- más ... incluso hay algunos compiladores de código abierto PIC C / C ++.
Comencé con CCS, pero no me gusta mucho su compilador de C, pero no hago suficiente trabajo de pago de PIC para molestar al cambio ... todavía.
Para ser honesto, no me molestaría con los PIC en estos días, en lugar de mirar los IC con núcleos ARM7. Estos son potentes, bastante fáciles de usar, se pueden programar con herramientas gratuitas (GCC) y ahora son baratos. No dice dónde se encuentra, pero si está en Europa, considere comprar una placa de desarrollo de esta empresa.
Si crees que un núcleo ARM7 es demasiado complejo, observa la familia MSP430. Compré un kit de desarrollo MSP430 fabricado por Texas y vendido por Farnell por aproximadamente £ 12 y que también incluía un compilador de C ligeramente lisiado.
Podrías echar un vistazo a los kits de inicio de Rabbit . Ofrecen una variedad de kits de inicio de bajo costo para probar una determinada tecnología como inalámbrica, bluetooth, sensores, etc. Sería divertido involucrarse en la programación integrada creando un dispositivo genial.
Mis colegas usaron algunos kits de conejo hace unos años para comenzar su desarrollo.
Un par de enlaces útiles:
(wiki de la comunidad, así que por favor agregue más)
Una forma de comenzar es usando uno de los kits de inicio de PIC ofrecidos por Microchip . Por lo general, son una placa de demostración que viene con un PIC incluido, que se puede usar para programar el microcontrolador y también realizar algunos proyectos simples con los LED y los elementos que se incluyen en la placa, junto con una versión de evaluación de un compilador de C.
Existen varias familias de PIC, desde microcontroladores de 8 pines y 8 bits que solo tienen 256 palabras de memoria, microcontroladores de hasta 32 bits con cientos de KB de RAM y flash basados en un núcleo ARM. Por lo tanto, probablemente sería una buena idea averiguar primero cuáles serán los requisitos (de los libros y tutoriales) antes de decidir qué familia de microcontroladores PIC usar.
Buscar algo a lo largo de la línea de " PIC robotics
" en una librería en línea como Amazon producirá muchos libros sobre el uso de PIC para robótica. Sin embargo, se debe tener en cuenta que muchos libros pueden usar compiladores BÁSICOS u otros que no sean lenguaje C para programar el microcontrolador, por lo que probablemente sería una buena idea mirar primero el contenido del libro para asegurarse de que proporciona C ejemplos
Además, debe tenerse en cuenta que puede haber algunas incompatibilidades entre los compiladores de C (bibliotecas disponibles y similares), por lo que sería una buena idea verificar que el compilador de C que tiene y los ejemplos de código que se incluyen en el libro realmente funcionarán. El uno al otro. Esta parte podría ser una de las partes más frustrantes de comenzar con la incrustación de programación.
AVRs lugar de PIC para mi proyecto de microcontrolador de hobby y me decidí por un proyecto ''no trivial'' de un robot hexápodo "desde cero" (sin kits) con electrónica y firmware personalizados en ensamblaje ... El blog está here , va bien pero lentamente :)
Encontré que los tutoriales en SparkFun eran muy buenos y no SparkFun mucho en SparkFun .
Hay una gran comunidad de AVR en AVRFreaks con muchas cosas tutoriales, más para C que ensamblador, para ser honesto.
Dwengo tiene algunos buenos tutoriales y kits de inicio para comenzar con los PIC en C, incluidos algunos proyectos de robótica.