¿Es el BeagleBone una buena plataforma para aprender Embedded C?

Un poco, tal vez. Sería mejor para ese propósito si lo diseñaras. Los usuarios finales de BeagleBones son realmente eso; usuarios finales, a pesar de que podrían estar utilizándolo programándolo. Los verdaderos expertos en sistemas integrados son los que lo desarrollaron para que no tenga que pasar por todo el dolor y la agonía del proceso de diseño. Es un poco como la diferencia entre la persona que prepara Mac & Cheese de una caja, frente a la persona que hace su propia pasta con la harina que molió y los huevos que recogió de los pollos que cultivó, la salsa de los ingredientes crudos que cultivó en el jardín. , y el queso que hizo con la leche que obtuvo de las vacas que crió. Ambos terminan con una comida en un plato, solo uno tuvo una comprensión mucho más profunda del proceso de preparación de alimentos.

Dicho esto, hay mucho que aprender de Beagles, Pis y Arduinos. El nivel de programación en C no está tan cerca del hardware como lo que yo llamaría C. realmente incrustado. Si el aprendizaje es su objetivo, entonces debería mirar esas plataformas con la intención de comprender cómo ya hacen lo que hacen. hacer cuando enciendes el poder. Tal vez escriba una extensión en un gestor de arranque para que descargue un kernel de su teléfono inteligente a través de Bluetooth o cree un controlador que baste algún tipo de protocolo en un puerto GPIO. Ese tipo de cosas realmente te enseñará algo. Y sí, suena difícil. Porque es difícil. Por eso compramos esas cosas.

Es difícil hacer gran parte de cualquier cosa incrustada sin tener en tus manos algunos dispositivos electrónicos. Si valoras aprender algo de eso, obtendrás un gran valor de los pequeños tableros.

Depende de lo que quieras aprender exactamente. Al igual que Raspberry Pi, es básicamente similar a una PC con Linux, Android o Windows. Es bastante similar a una PC normal, solo que más pequeña y limitada. Pero tiene un procesador gráfico, USB, red y mucha memoria.

Pero un sistema integrado no necesita un monitor, USB o Internet en la mayoría de los casos. BeagleBone y Raspberry Pi generalmente son excesivas para los sistemas integrados. Debería buscar más en los dispositivos Arduino y compatibles con Arduino. El Arduino Yun en realidad sería muy interesante, ya que combina tanto el Arduino con un sistema Linux separado a bordo de un procesador / módulo separado. Esta sería la opción más óptima, ya que aún puede usar el sistema operativo Linux para algunas de las lógicas que necesita y mezclarlo con las funciones normales de Arduino.

Pero para los sistemas embebidos y la programación embebida, básicamente debería comenzar con un dispositivo que solo tenga un montón de pines y nada más. A partir de ahí, comenzará a explorar cómo puede agregar funciones como la comunicación a través de Internet, Bluetooth o incluso el teclado / mouse / pantalla básico. Tanto agregando hardware como escribiendo software y utilizando bibliotecas adicionales.

Pero supongamos que desea hacer un dispositivo de riego automático de plantas. Todo lo que necesita es un sensor que mida la cantidad de agua que tiene una planta y si está por debajo de un umbral predefinido, puede activar una bomba para agregar más agua. No necesita un teclado, monitor o incluso Internet, a menos que desee que le envíe un correo electrónico que necesita para llenar el depósito de agua. Lo mismo con otras cosas que puede construir a partir de sistemas integrados. En general, desea una configuración mínima, por lo que los megabytes de RAM que tiene el Beaglebone ya pueden ser excesivos, ya que su código puede necesitar solo unos 20 kilobytes.

¿Y el PICKit? No he escuchado mucho al respecto, pero es básicamente un programador para microcontroladores PIC. Eso significa que necesitaría un sistema secundario con un controlador para programar.

Tal vez considere usar Digispark, que es un dispositivo muy económico y compatible con Arduino para su programación integrada. Solo tiene 6 pines para usar, pero es muy útil y puede conectarlo directamente al puerto USB de su computadora.

BeagleBone es definitivamente una buena plataforma para aprender Embedded C. Sin embargo, si recién está comenzando, le recomendaría Arduino. Arduino tiene una comunidad en línea mucho más grande, por lo que hay más códigos de muestra y más personas para responder preguntas.

Raspberry Pi también es bastante popular si quieres aprender la programación de nivel C del sistema operativo (Linux).