Archivo de la categoría: microprocesador

Microcontrolador vs Microprocesador

Diferencia principal entre un microcontrolador (Arduino) y un microprocesador (Raspberry Pi) son las capacidades de entradas y salidas, así como el rendimiento de la CPU.

Analogía: Arduino es un Autómata programable, Raspberry Pi es un Ordenador, así que a la hora de decidirse que utilizar para un proyecto pensar que usaríamos un autómata o un Ordenador.

Un resumen de como funciona una MCU y como agregar un programa: http://www.electronicaestudio.com/microcontrolador.htm que es diferente a como funciona un microprocesador como los que tenemos en nuestro ordenador o portatil.

Para programación en tiempo real el HW a utilizar es el Arduino, para programación intensiva con gran cantidad de datos usaríamos una Raspberry Pi o un PC.

En un proyecto grande la elección es usar ambos, cada uno en la tarea que mejor hace. Por ejemplo, la recolección de datos, supervisión del entorno, envío de alarmas, accionar motores, etc.. lo dejaremos para el arduino, el tratamiento de los datos recogidos, el interfaz gráfico de usuario, envío de correos, etc… lo dejaremos para un ordenador o una raspberry pi o similar.

Diferencias entre el microprocesador y el microcontrolador, características al usarlos en la implementación de sistemas digitales programables:

  • CPU
  • Memorias RAM y ROM
  • Velocidad de Operación
  • Tamaño
  • Costes
  • Interferencias (ruido)
  • Tiempo de desarrollo

El uso de una u otra tecnología depende del fin que se espera, pues debido a sus características propias, los microcontroladores y los microprocesadores pueden adquirir variados y diferentes espacios de implementación, por ejemplo, los microprocesadores se han desarrollado fundamentalmente orientados al mercado de los ordenadores personales y las estaciones de trabajo, pues allí se requiere una elevada potencia de cálculo, el manejo de gran cantidad de memoria y una gran velocidad de procesamiento. Mientras que los microcontroladores están concebidos fundamentalmente para ser utilizados en aplicaciones puntuales, es decir, aplicaciones donde el microcontrolador debe realizar un pequeño número de tareas, al menor costo posible. En estas aplicaciones el microcontrolador ejecuta un programa almacenado permanentemente en su memoria, el cual trabaja con algunos datos almacenados temporalmente e interactúa con el exterior a través de las líneas de entrada y salida de que dispone.

Microprocesadores Microcontroladores
CPU El microprocesador tiene mucha más potencia de cálculo, por lo cual solamente realiza sus funciones con lo que tiene (datos) y su algoritmo o programa establecida. Es una de sus partes principales, la cual se encarga de dirigir sus operaciones.
Memorias RAM y ROM Son dispositivos externos que lo complementan para su óptimo funcionamiento. Las incluye en un solo circuito integrado.
Velocidad de Operación Rápida Lenta en comparación con la de un microprocesador
Tamaño La configuración mínima básica de un Microprocesador está constituida por un Microprocesador, una memoria RAM, una memoria ROM, un decodificador de direcciones, lo cual lo convierte en un circuito bastante engorroso. El Microcontrolador incluye todo estos elementos en un solo Circuito Integrado por lo que implica una gran ventaja en varios factores,  como por ejemplo, la disminución en el tamaño del circuito impreso por la reducción de los circuitos externos.
Costos Para el Microprocesador, el costo es muy alto en la actualidad. El costo para un sistema basado en Microcontrolador es mucho menor.
Interferencias Son más susceptibles a la interferencia electromagnética debido a su tamaño y a su cableado externo que lo hace más propenso al ruido. El alto nivel de integración reduce los niveles de interferencia electromagnética
Tiempo de desarrollo El tiempo de desarrollo de un microprocesador es lento. Por el contrario, el de un microcontrolador es rápido.

Un buen curso sobre microcontroladores es accesible desde http://www.itescam.edu.mx/portal/asignatura.php?clave_asig=MTF-1021&carrera=IMCT-2010-229&id_d=206. Se trata de una asignatura de microcontroladores.

Más información sobre microcontroladores: https://sites.google.com/site/electronicscience20/Micro/pic-asembler/2-microcontroladores

Raspberry Pi es un ordenador de placa reducida o (placa única) (SBC) de bajo coste, desarrollado en Reino Unido por la Fundación Raspberry Pi. El diseño incluye un System-on-a-chip Broadcom BCM2837, que contiene un procesador central (CPU) ARM1176JZF-S a 1.2 GHz quad-core ARMv8, un procesador gráfico (GPU) VideoCore IV, y 1GB de memoria RAM.

Los sistemas operativos soportados son distribuciones Linux para arquitectura ARM, Raspbian (derivada de Debian), RISC OS 5, Arch Linux ARM (derivado de Arch Linux) y Pidora (derivado de Fedora)

Web principal: http://www.raspberrypi.org/

Especificaciones técnicas: http://es.wikipedia.org/wiki/Raspberry_Pi#Especificaciones_t.C3.A9cnicas

El System-on-a-chip Broadcom BCM2835: http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf

Raspberry Pi:

GPIO:

También intel saca su alternativa a raspberry: http://www.intel.es/content/www/es/es/do-it-yourself/edison.html

Más información: https://aprendiendoarduino.wordpress.com/2016/06/25/arduino-vs-raspberry-pi-2/

Un sketch de Arduino no es un sistema operativo: https://es.wikipedia.org/wiki/Sistema_operativo. Un sistema operativo es un programa o conjunto de programas de un sistema informático que gestiona los recursos de hardware y provee servicios a los programas de aplicación de software, ejecutándose en modo privilegiado respecto de los restantes (aunque puede que parte de él se ejecute en espacio de usuario)

Se puede decir que el sketch de Arduino es la aplicación que gestiona directamente los recursos de HW sin necesidad de un SO o un kernel intermedio.

En el caso de raspberry Pi, el programa o sketch se ejecuta como una aplicación sobre un sistema operativo y para interaccionar con el HW necesita de la interacción con el sistema operativo.

Para entender qué es el microcontrolador dentro de Arduino, leer: https://aprendiendoarduino.wordpress.com/2015/02/25/como-conseguir-un-arduino-gratis/

¿Podría convertir un arduino en un ordenador? ¿Cómo? ¿Es práctico?. Arduino como un ordenador:

También es posible convertir un ordenador en un microcontrolador http://www.instructables.com/id/HackTurn-PC-into-a-microcontroller-for-free/?ALLSTEPS

Microcontroladores 8 bits y 32 bits

A principios de 1970 TI produjo el primero de los microcontroladores el TMS 1000. Aunque Intel hizo anteriormente el microcontrolador de 4 bits Intel 4004, necesitaba de una circuitería externa para funcionar, por lo que el TMS 1000 es considerado el primer microcontrolador completo en un chip.

El tamaño de la palabra es un aspecto importante en la arquitectura de procesadores. La mayoría de los registros de un Microprocesador/Microcontrolador tienen el tamaño de la palabra y las operaciones que hace la ALU es manejando operandos cuyo tamaño es el tamaño de la palabra, así como la cantidad de datos transferidos a memoria y dirección utilizada para designar una localización de memoria a menudo ocupa una palabra.

El tamaño de palabra de un microprocesador/microcontrolador influye principalmente en el tamaño de datos que puede manejar y la cantidad de memoria RAM que puede usar, así como la velocidad de procesamiento.

También los valores que pueden tomar las variables dependen del tamaño de la palabra. http://es.wikipedia.org/wiki/Palabra_%28inform%C3%A1tica%29

Arduinos con procesadores de 8 bits:

Arduinos o compatibles con procesadores de 32 bits:

Microcontrolador vs Microprocesador

Diferencia principal entre un microcontrolador (Arduino) y un microprocesador (Raspberry Pi) son las capacidades de entradas y salidas, así como el rendimiento de la CPU.

Analogía: Arduino es un Autómata programable, Raspberry Pi es un Ordenador, así que a la hora de decidirse que utilizar para un proyecto pensar que usaríamos un autómata o un Ordenador.

Un resumen de como funciona una MCU y como agregar un programa: http://www.electronicaestudio.com/microcontrolador.htm que es diferente a como funciona un microprocesador como los que tenemos en nuestro ordenador o portatil.

Para programación en tiempo real el HW a utilizar es el Arduino, para programación intensiva con gran cantidad de datos usaríamos una Raspberry Pi o un PC.

En un proyecto grande la elección es usar ambos, cada uno en la tarea que mejor hace. Por ejemplo, la recolección de datos, supervisión del entorno, envío de alarmas, accionar motores, etc.. lo dejaremos para el arduino, el tratamiento de los datos recogidos, el interfaz gráfico de usuario, envío de correos, etc… lo dejaremos para un ordenador o una raspberry pi o similar.

Diferencias entre el microprocesador y el microcontrolador, características al usarlos en la implementación de sistemas digitales programables:

  • CPU
  • Memorias RAM y ROM
  • Velocidad de Operación
  • Tamaño
  • Costes
  • Interferencias (ruido)
  • Tiempo de desarrollo

El uso de una u otra tecnología depende del fin que se espera, pues debido a sus características propias, los microcontroladores y los microprocesadores pueden adquirir variados y diferentes espacios de implementación, por ejemplo, los microprocesadores se han desarrollado fundamentalmente orientados al mercado de los ordenadores personales y las estaciones de trabajo, pues allí se requiere una elevada potencia de cálculo, el manejo de gran cantidad de memoria y una gran velocidad de procesamiento. Mientras que los microcontroladores están concebidos fundamentalmente para ser utilizados en aplicaciones puntuales, es decir, aplicaciones donde el microcontrolador debe realizar un pequeño número de tareas, al menor costo posible. En estas aplicaciones el microcontrolador ejecuta un programa almacenado permanentemente en su memoria, el cual trabaja con algunos datos almacenados temporalmente e interactúa con el exterior a través de las líneas de entrada y salida de que dispone.

Microprocesadores Microcontroladores
CPU El microprocesador tiene mucha más potencia de cálculo, por lo cual solamente realiza sus funciones con lo que tiene (datos) y su algoritmo o programa establecida. Es una de sus partes principales, la cual se encarga de dirigir sus operaciones.
Memorias RAM y ROM Son dispositivos externos que lo complementan para su óptimo funcionamiento. Las incluye en un solo circuito integrado.
Velocidad de Operación Rápida Lenta en comparación con la de un microprocesador
Tamaño La configuración mínima básica de un Microprocesador está constituida por un Microprocesador, una memoria RAM, una memoria ROM, un decodificador de direcciones, lo cual lo convierte en un circuito bastante engorroso. El Microcontrolador incluye todo estos elementos en un solo Circuito Integrado por lo que implica una gran ventaja en varios factores,  como por ejemplo, la disminución en el tamaño del circuito impreso por la reducción de los circuitos externos.
Costos Para el Microprocesador, el costo es muy alto en la actualidad. El costo para un sistema basado en Microcontrolador es mucho menor.
Interferencias Son más susceptibles a la interferencia electromagnética debido a su tamaño y a su cableado externo que lo hace más propenso al ruido. El alto nivel de integración reduce los niveles de interferencia electromagnética
Tiempo de desarrollo El tiempo de desarrollo de un microprocesador es lento. Por el contrario, el de un microcontrolador es rápido.

Un buen curso sobre microcontroladores es accesible desde http://www.itescam.edu.mx/portal/asignatura.php?clave_asig=MTF-1021&carrera=IMCT-2010-229&id_d=206. Se trata de una asignatura de microcontroladores.

Más información sobre microcontroladores: https://sites.google.com/site/electronicscience20/Micro/pic-asembler/2-microcontroladores

Raspberry Pi es un ordenador de placa reducida o (placa única) (SBC) de bajo coste, desarrollado en Reino Unido por la Fundación Raspberry Pi. El diseño incluye un System-on-a-chip Broadcom BCM2835, que contiene un procesador central (CPU) ARM1176JZF-S a 700 MHz, un procesador gráfico (GPU) VideoCore IV, y 512 MiB de memoria RAM.

Los sistemas operativos soportados son distribuciones Linux para arquitectura ARM, Raspbian (derivada de Debian), RISC OS 5, Arch Linux ARM (derivado de Arch Linux) y Pidora (derivado de Fedora)

Web principal: http://www.raspberrypi.org/

Especificaciones técnicas: http://es.wikipedia.org/wiki/Raspberry_Pi#Especificaciones_t.C3.A9cnicas

El System-on-a-chip Broadcom BCM2835: http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf

GPIO:

También intel saca su alternativa a raspberry: http://www.intel.es/content/www/es/es/do-it-yourself/edison.html

Más información: https://aprendiendoarduino.wordpress.com/2016/06/25/arduino-vs-raspberry-pi-2/

Un sketch de Arduino no es un sistema operativo: https://es.wikipedia.org/wiki/Sistema_operativo. Un sistema operativo es un programa o conjunto de programas de un sistema informático que gestiona los recursos de hardware y provee servicios a los programas de aplicación de software, ejecutándose en modo privilegiado respecto de los restantes (aunque puede que parte de él se ejecute en espacio de usuario)

Se puede decir que el sketch de Arduino es la aplicación que gestiona directamente los recursos de HW sin necesidad de un SO o un kernel intermedio.

En el caso de raspberry Pi, el programa o sketch se ejecuta como una aplicación sobre un sistema operativo y para interaccionar con el HW necesita de la interacción con el sistema operativo.

Para entender qué es el microcontrolador dentro de Arduino, leer: https://aprendiendoarduino.wordpress.com/2015/02/25/como-conseguir-un-arduino-gratis/

¿Podría convertir un arduino en un ordenador? ¿Cómo? ¿Es práctico?. Arduino como un ordenador:

También es posible convertir un ordenador en un microcontrolador http://www.instructables.com/id/HackTurn-PC-into-a-microcontroller-for-free/?ALLSTEPS

Microcontroladores 8 bits, 16 bits, 32 bits

El tamaño de la palabra es un aspecto importante en la arquitectura de procesadores.

La mayoría de los registros de un Microprocesador/Microcontrolador tienen el tamaño de la palabra y las operaciones que hace la ALU es manejando operandos cuyo tamaño es el tamaño de la palabra, así como la cantidad de datos transferidos a memoria y dirección utilizada para designar una localización de memoria a menudo ocupa una palabra.

El tamaño de palabra de un microprocesador/microcontrolador influye principalmente en el tamaño de datos que puede manejar y la cantidad de memoria RAM que puede usar, así como la velocidad de procesamiento.

También los valores que pueden tomar las variables dependen del tamaño de la palabra: http://es.wikipedia.org/wiki/Palabra_%28inform%C3%A1tica%29

Arduinos con procesadores de 8 bits:

Arduinos con procesadores de 32 bits:

Descripción de HW Arduino

Los Arduino y en general los microcontroladores tienen puertos de entrada y salida y de comunicación. En Arduino podemos acceder a esos puertos a través de los pines.

Otro aspecto importante es la memoria, Arduino tiene tres tipos de memoria:

  • SRAM: donde Arduino crea y manipula las variables cuando se ejecuta. Es un recurso limitado y debemos supervisar su uso para evitar agotarlo.
  • EEPROM:  memoria no volátil para mantener datos después de un reset o apagado. Las EEPROMs tienen un número limitado de lecturas/escrituras, tener en cuenta a la hora de usarla.
  • Flash: Memoria de programa. Usualmente desde 1 Kb a 4 Mb (controladores de familias grandes). Donde se guarda el sketch.

Más información en: http://arduino.cc/en/Tutorial/Memory y https://aprendiendoarduino.wordpress.com/2015/03/29/memoria-flash-sram-y-eeprom/

Veamos a fondo la placa Arduino Uno:

Especificaciones detalladas de Arduino UNO: http://arduino.cc/en/Main/ArduinoBoardUno

Microcontroller & USB-to-serial converter ATmega328P & Atmega16U2
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limits) 6-20V
Digital I/O Pins 14 (of which 6 provide PWM output)
Analog Input Pins 6
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 32 KB (ATmega328) of which 0.5 KB used by bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Clock Speed 16 MHz

Aspectos más destacados de Arduino UNO.

  • No necesita de un cable FTDI para conectarse al MCU, en su lugar uso un MCU especialmente programado para trabajar como conversor de USB a serie.
  • En la revisión 3 de HW nuevo pineado
  • Alimentación: vía USB, batería o adaptador AC/DC a 5V, seleccionado automáticamente. Arduino puede trabajar entre 6 y 20V, pero es recomendado trabajar entre 7 y 12V por las características del regulador de tensión.
  • Puerto Serie en los pines 0 y 1.
  • Interrupciones externas en los pines 2 y 3.
  • Built-in LED en el pin 13.
  • Bus TWI o I2C en los pines A4 y A5 etiquetados como SDA y SCL
  • El MCU ATmega328P tiene un bootloader precargado que permite cargar en la memoria flash el nuevo programa o sketch sin necesidad de un HW externo.
  • Arduino Uno dispone de un fusible autoreseteable que protege el puerto USB de nuestro ordenador de cortocircuitos y sobrecorrientes. Si se detectan más de 500mA salta la protección.

También es importante conocer cómo están distribuidos los pines del MCU en Arduino:

Antes de empezar a trabajar con el Arduino UNO, veamos 10 formas de destruir un Arduino, para saber que NO debemos hacer.

¡¡¡IMPORTANTE!!!: http://www.ruggedcircuits.com/10-ways-to-destroy-an-arduino/

La traducción: http://www.trastejant.es/blog/?p=192

También es posible conseguir un “Arduino” gratis: https://aprendiendoarduino.wordpress.com/2015/02/25/como-conseguir-un-arduino-gratis/

Diferentes Arduinos para diferentes necesidades

Primer Arduino:

Arduino dispone de una amplia variedad de placas y shields para usar dependiendo de nuestras necesidades o el proyecto que queramos hacer.

Un shield es una placa compatible que se puede colocar en la parte superior de los arduinos y permite extender las capacidades del arduino. De estas hablaremos en más adelante.

Arduino Uno: http://arduino.cc/en/Main/ArduinoBoardUno

Es la placa estándar y posiblemente la más conocida y documentada. Salió a la luz en septiembre de 2010 sustituyendo su predecesor Duemilanove con varias mejoras de hardware que consisten básicamente en el uso de un USB HID propio en lugar de utilizar un conversor FTDI para la conexión USB. Es 100% compatible con los modelos Duemilanove y Diecimila. Viene con un Atmega328 con 32Kbytes de ROM para el programa.

Esquematico: http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf

Microcontrolador: http://www.atmel.com/devices/atmega328p.aspx

Planos del Arduino UNO: https://www.arduino.cc/en/Main/ArduinoBoardUno#documentation

Arduino Mega: http://arduino.cc/en/Main/ArduinoBoardMega2560

Es un Arduino más potente y el que más pines i/o tiene, apto para trabajos algo más complejos aunque tengamos que sacrificar un poco el espacio, cuenta con el microcontrolador Atmega2560 con más memoria para el programa, más RAM y más pines que el resto de los modelos.

Esquematico: http://www.arduino.cc/en/uploads/Main/arduino-mega2560_R3-sch.pdf

Microcontrolador: http://www.atmel.com/devices/atmega2560.aspx

Planos del Arduino MEGA: http://www.arduino.cc/en/Main/ArduinoBoardMega2560

Arduino Ethernet: http://arduino.cc/en/Main/ArduinoBoardEthernet

Incorpora un puerto ethernet, está basado en el Arduino Uno y nos permite conectarnos a una red o a Internet mediante su puerto ethernet.

Arduino Due: http://arduino.cc/en/Main/ArduinoBoardDue

Arduino con la mayor capacidad de procesamiento, basado en un microcontrolador de 32 bit y arquitectura ARM: Atmel SAM3X8E ARM Cortex-M3 CPU. Este arduino funciona a 3.3V y debe tenerse en cuenta dado que gran parte de los shields, sensores, actuadores para Arduino funcionan a 5V, pero cada vez se ven más elementos donde se puede elegir el voltaje entre 3.3 y 5V.

Importante: 12-bit ADC

Microcontrolador: http://www.atmel.com/devices/sam3x8e.aspx

Arduino Leonardo: http://arduino.cc/en/Main/ArduinoBoardLeonardo

La diferencia de este arduino con el resto es que trae un único MCU ATmega32u4 que tiene integrado la comunicación USB, lo que elimina la necesidad de un segundo procesador. Esto tiene otras implicaciones en el compartimento del arduino al conectarlo al ordenador, lo que no lo hace apto para iniciarse con él.

Microcontrolador: http://www.atmel.com/devices/atmega32u4.aspx

Arduino Micro: http://arduino.cc/en/Main/ArduinoBoardMicro

También basado en el ATmega32u4 pero mucho más compacto.

Arduino Mini: http://arduino.cc/en/Main/ArduinoBoardMini

Versión miniaturizada de la placa Arduino UNO basado en el ATMega328. Mide tan sólo 30x18mm y permite ahorrar espacio en los proyectos que lo requieran. Las funcionalidades son las misma que Arduino UNO. Necesita un programador para conectarlo al ordenador: http://arduino.cc/en/Main/USBSerial

Arduino Lilypad: http://arduino.cc/en/Main/ArduinoBoardLilyPad

Diseñado para dispositivos “wearables” y e-textiles. Para coser con hilo conductor e instalarlo sobre prendas.

Y los nuevos Arduinos incorporados recientemente:

Y aún tenemos más arduinos oficiales:

Y para el que quiera más… http://playground.arduino.cc/Main/SimilarBoards

Como distinguir un arduino oficial de una copia: http://arduino.cc/en/Products/Counterfeit

Guia para comparar Arduino:  https://learn.sparkfun.com/tutorials/arduino-comparison-guide

Plataformas open source para wearables: https://openwearabletech.com/open-source-wearable-platforms-review/

Otra guia interesante sobre los modelos de Arduino: http://portalarduino.com/tarjetas-arduino (Ver interfaz de programación de cada Arduino)

Arduino vs Raspberry Pi.

Desde hace tiempo han irrumpido en el mercado distintas soluciones de placas PC  también llamadas «Single Board Computer» (SBC), como Raspberry Pi, Beaglebone, pcduino, etc… Pero estos sistemas son diferentes a las placas con microcontrolador como Arduino, nanode, waspmote, freescale freedom, Microchip ChipKit, etc…

Existe la creencia popular que Arduino es una Raspberry Pi pero con menos capacidades. Obviamente si comparamos los valores de memoria RAM, frecuencia de CPU y capacidad de almacenamiento, podemos creer que así es, pero se trata de dos placas con capacidades diferentes.

Analogía: Arduino es un Autómata programable y Raspberry Pi es un Ordenador, así que a la hora de decidirse que utilizar para un proyecto deberíamos pensar si usaríamos un autómata o un Ordenador.

Las diferencias principales entre una Raspberry Pi y un Arduino son:

  • Las entradas y salidas que conectamos y sus capacidades de corriente y voltaje.
  • La programación, Arduino se usa para programación en tiempo real, en Raspberry Pi se usa para programación intensiva con gran cantidad de datos.

Estas diferencias se deben a que Arduino tiene un microcontrolador (MCU) y Raspberry Pi tiene un microprocesador. Un microcontrolador es un HW optimizado no para capacidad de cálculo sino para interactuar con el exterior, con sensores y actuadores.

Para más información: https://aprendiendoarduino.wordpress.com/2015/03/29/microcontrolador-vs-microprocesador/

A la hora de elegir uno u otro para hacer un proyecto, debemos usar cada uno en la tarea que mejor sabe hacer. Por ejemplo, la recolección de datos, supervisión del entorno, envío de alarmas, accionar motores, etc.. lo dejaremos para el arduino, el tratamiento de los datos recogidos, el interfaz gráfico de usuario, envío de correos, etc… lo dejaremos para una una raspberry pi o un ordenador.

Comparativa:

Un ejemplo de que Raspberry Pi no es la mejor opción para algunos proyectos es por ejemplo para manejar un neopixel https://www.adafruit.com/products/1463, estos dispositivos requieren una señal de datos con unas especificaciones de tiempo muy concretas para funcionar. Puesto que Raspberry Pi usa un sistema operativo multitarea Linux, no dispone de un control de tiempo real sobre los pines.

Aun así es posible hacer usar neopixel con Raspberry Pi pero de una forma un poco más complicada que con un Arduino. https://learn.adafruit.com/neopixels-on-raspberry-pi/overview

Para acabar de entenderlo, este video explica perfectamente la diferencia entre eun Arduino y una Raspberry Pi: https://www.youtube.com/watch?v=7vhvnaWUZjE

Puertos Arduino vs Raspberry Pi:

IMPORTANTE: Todos los pines de Raspberry Pi tienen un nivel lógico de 3.3V incluido puerto serie, bus I2C y SPI. Lo pines de Raspberry Pi no soportan entradas de 5V. Para Arduino UNO el nivel lógico es de 5V.
Cada pin de Raspberry Pi soporta un máximo de 16mA hasta un total de 51mA para toda la placa. Arduino Uno soporta un máximo de 40mA por pin (20mA recomendado) y hasta 300mA en total para la placa.

Para finalizar dejo unos enlaces interesantes sobre la diferencia entre Arduino y Raspberry Pi: