Difference between revisions of "Sensorino"

From Wiki Makespace Madrid
Jump to: navigation, search
(Detalles: añadido enlace a proyecto igual que el nuestro)
(moviendo recopilación de plataformas a otra pagina)
Line 132: Line 132:
  
 
Todos: resolver el problema de los 8MHz. Comprar socket para los chips. Construir primer prototipo.
 
Todos: resolver el problema de los 8MHz. Comprar socket para los chips. Construir primer prototipo.
 
====Recopilación de plataformas existentes====
 
 
[http://www.panstamp.com/ PanStamp]:
 
 
Precio placa base (1 unidad): 18.55$
 
 
tecnologías:
 
Atmega328p + CC1101 IC
 
alance teórico: 200 metros en espacio abierto
 
8 pines ADC, 10 pines digitales, PWM, I2C
 
 
* pequeño
 
* bajo consumo
 
* compatible Arduino
 
* disponibilidad de soportes
 
* disponibilidad de cajas
 
* disponibilidad de un SW de recogida datos (Lagarto)
 
* disponibilidad de un shield para Raspberry PI
 
 
 
[http://arduino.cc/en/Main/ArduinoBoardBT?from=Main.ArduinoBoardBluetooth Arduino BT]:
 
 
Precio placa base (1 unidad): 40 US$
 
 
tecnologías:
 
ATmega328 y Bluegiga WT11
 
alcance teórico: 100 metros en espacio abierto
 
6 pines analógicos y 14 pines digitales con PWM, I2C, SPI
 
 
* Arduino oficial
 
* comunicación estandar compatible con móviles
 
* disponibilidad de shields (todos los compatibles Arduino)
 
* chipset BT conocido y programable con muchos perfiles
 
 
 
[http://www.kickstarter.com/projects/2021474419/flutter-20-wireless-arduino-with-half-mile-1km-ran Flutter]:
 
 
Precio placa base (1 unidad): 20US$ (proyecto todavía no maduro)
 
 
tecnologías:
 
Atmel SAM3s
 
Atmel ATSHA204
 
TI CC1101
 
 
 
* largo alcance (1Km)
 
* compatible Arduino
 
* criptografia integrada 256-bit AES
 
 
 
[http://www.rfduino.com/ RFDuino]:
 
 
Precio placa base (1 unidad): 20 US$
 
 
tecnologías:
 
Nordic 32 bit ARM Cortex-M0
 
Bluetooth 4 Low Energy
 
alcance teórico: 50 metros en espacio abierto
 
7 GPIO configurables como: Digital IO, Analog ADC, SPI, I2C, UART and PWM
 
 
* comunicación estándar (compatible con moviles ultima generacion y PCs)
 
* pequeño
 
* bajo consumo
 
* disponibilidad de soportes
 
* disponibilidad de (algunos) shields
 
^* compatible Arduino
 
 
 
Nota: he visto que RaspberryPi suporta BTLE, ver [http://mike.saunby.net/2013/04/raspberry-pi-and-ti-cc2541-sensortag.html este] y [http://www.raspberrypi.org/phpBB3/viewtopic.php?f=46&t=16555 este]
 
 
 
[http://www.z-wave.com/modules/ZwaveStart/ ZWave]:
 
 
para una aplicación sencilla tipo domotica se pueden comprar productos ZWave ya [http://zwave.es/ hechos y listos] dado que al final el precio va a ser el mismo o incluso menor.
 
Lo único que puede costar mas en ZWave es la central de control, pero hay opciones para hacerse una casera con un PC con [http://en.z-wave.me/content/what-z-way SW open source asociado] e incluso [http://blog.hekkers.net/2013/03/12/raspberry-pi-and-razberry-as-z-wave-controller/ una placa para RaspberryPi].
 
Si ademas queremos crearnos un sensor o actuador que no esté disponible en el mercado hay módulos de comunicación compatibles con Arduino como [este http://www.elechouse.com/elechouse/index.php?main_page=product_info&cPath=90_92&products_id=2169].
 
Existe una placa Arduino compatible con ZWave integrado, hay un proyecto de Intel: [https://sites.google.com/site/arduinozwave/ Zarduino] que parece que alguien se [http://www.ebay.com/itm/ws/eBayISAPI.dll?ViewItem&item=251204969730&item=251204969730&lgeo=1&vectorid=229466 haya puesto a vender] por [http://www.homescenario.com/home/index.html# esta casa].
 
 
 
[https://www.sparkdevices.com/ SparkCore]:
 
 
Precio placa base (1 unidad): 40 US$
 
 
tecnologías:
 
WIFI: Texas Instruments SimpleLink CC3000, 802.11b/g
 
STM32F103 microcontroller, ARM Cortex M3
 
8 digital I/O pins, 8 analog I/O pins
 
4 PWM pins; UART (Serial), SPI, I2C, and JTAG peripherals available
 
32-bit 72Mhz processor
 
128KB of Flash, 20KB of RAM
 
2MB of external flash
 
 
 
* estandar Wifi
 
* pequeño
 
* compatible Arduino
 
* programación on air (sin cables USB) !!!
 
* plataforma de desarrollo de aplicaciones online (Spark Cloud) con API sencilla
 
 
 
[http://www.kickstarter.com/projects/kytelabs/bleduino-bluetooth-40-ble-made-easy-arduino-compat BLEDuino]:
 
 
Precio placa base (1 unidad): 34 US$
 
 
tecnologías:
 
ATmega32u4 
 
Supply Voltage - 5V   
 
GPIO Pins - 21   
 
PWM Channels - 6   
 
Analog Input Channels - 12   
 
Serial Communication: UART, SPI, I2C
 
Bluetooth 4.0 (BLE) - nRF8001 
 
Dedicated controller for nRF8001   
 
Expected BLE Range - at least 80ft (Currently testing)
 
 
 
* estandar BLE
 
* shields de adaptacion para shields estandar
 
 
 
[http://www.kickstarter.com/projects/digistump/digix-the-ultimate-arduino-compatible-board-with-w DigiX]:
 
 
Precio placa base (1 unidad): 59 US$
 
 
tecnologías:
 
Arduino Due compatible
 
Wifi and Mesh networking
 
Audio
 
USB OTG
 
microSD
 
99 IO pins
 
 
* potente
 
* muchos pins
 
* WIFI
 
 
[http://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01 nRF24L01]:
 
 
siguiendo mis investigaciones sobre redes de sensores low cost compatibles con Arduino, he notado que el chip RF mas barato que hay ahora en venta es el [http://www.seeedstudio.com/depot/nrf24l01module-p-1394.html?cPath=19 nRF24L01+Module], añadido con un [http://www.seeedstudio.com/depot/arduino-pro-mini-328-33v8mhz-p-1442.html?cPath=6_7 Arduino mini] o quizas con un [http://arduino-for-beginners.blogspot.com.es/2013/08/getting-nrf24l01-to-work-with-attiny84.html ATtiny84] igual se puede crear un nodo con comunicación wireless, de muy bajo consumo y por menos que 10 US$ !
 
Hay librerias para nRF24L01 compatibles con Arduino: http://maniacbug.github.io/RF24/ y https://github.com/aaronds/arduino-nrf24l01.
 
Y si quieres juntarlo a una RaspberryPi [http://arduino-for-beginners.blogspot.com.es/2013/02/setup-nordic-nrf24l01-rf-modules-to.html no hay ningún problema].
 
El chip te da la posibilidad de crear redes sencillas [http://www.elecfreaks.com/wiki/index.php?title=2.4G_Wireless_nRF24L01p_with_PA_and_LNA de tipo estrella].
 
 
 
 
[http://pinocc.io/ Pinoccio]
 
 
Precio unitario placa base: ??
 
 
tecnologías:
 
Atmel ATmega256RFR2 with built-in radio,
 
1.8 - 3.3 volt power,
 
2.4GHz using 802.15.4,
 
Wireless, over-the-air programming
 
Web connectivity via the Wi-Fi Backpack
 
17 digital I/O pins, including four with PWM
 
8 analog input pins
 
2 hardware UART serial ports
 
Hardware SPI port
 
Dedicated I2C port
 
Micro USB port for charging and programming
 
 
 
 
[http://www.contiki-os.org/ Contiki OS]:
 
 
incluyes estandares IETF para redes de sensores:
 
low-power IPv6 networking, 6lowpan adaptation layer, RPL IPv6 multi-hop routing protocol, y CoAP RESTful application-layer protocol y tiene buen porting a Arduino a traves de Contiki (https://github.com/contiki/contiki-arduino)
 
 
 
[http://www.kickstarter.com/projects/wigwag/wigwag-scan-it-control-it-rule-it-share-it WigWag]
 
 
Precio unitario placa base: dificil estimacion, digamos US$50
 
 
tecnologías:
 
DeviceJS ties Javascript to the physical world, by providing hooks for protocols like IP, 6loWPAN, Bluetooth™, Zigbee™, RS-232, and devices such as the Belkin WeMo™ and Phillips Hue™ light bulbs.
 
 
* plataforma cloud con sistema de reglas (IF-THEN)
 
* nodos ya montados y con distintos sensores embebidos
 
* protocolos estandares 6loWPAN
 
 
 
[http://www.nanode.eu/products/ Nanode]
 
 
Precio unitario placa base: 35€
 
 
tecnologías:
 
WiNode features the same ATmega328P microcontroller with the following peripherals
 
RFM12B wireless module – 868MHz
 
4 ADC channels with divider resistor arrays
 
Compatible with Arduino shield footprints
 
4 high current (2A) driver outputs
 
Real time clock calendar
 
MicroSD Card Socket
 
 
* compatible Arduino
 
* admite shields Arduino
 
 
 
[http://electricimp.com/ Electric Imp]
 
 
Precio unitario placa base: 30US$
 
tecnologías:
 
WiFi 802.11b/g/n WiFi
 
WEP, WPA and WPA2 encryption
 
Cortex-M3 core
 
six pins UARTs, I2C, SPI, analog in and out, PWMs, GPIOs
 
 
* programable online
 
* WIFI
 
* bajo consumo
 
 
 
[http://www.kickstarter.com/projects/545073874/radioblock-simple-radio-for-arduino-or-any-embedde RadioBlock]
 
 
solo una board con chip radio
 
 
 
[http://www.kickstarter.com/projects/microduino/microduino-arduino-in-your-pocket-small-stackable Microduino]
 
 
una placa Arduino compatible super mini con un montón de shields guapas
 

Revision as of 11:25, 27 September 2013

Nombre proyecto

ESTADO: PRIMERAS PRUEBAS

Miembros: User:Dario_Salvi, User:Bozo, User:Roberto Zabala


Objetivo

construir una red de sensores compatibles con el IDE de Arduino y que cuesten menos que 5 € con todo incluido.

Motivación

Hay muchas aplicaciones donde lo que queremos es simplemente un medio de enviar y recibir información sencilla sin tener pero que cablear toda el entorno. Un ejemplo es la casa, por ejemplo nos interesa saber que puertas o ventanas están abiertas, queremos apagar o encender tal luz o electrodoméstico etc.


Antecedentes

Hay muchos proyectos para redes de sensores y productos comerciales, pero ninguno hasta ahora verdaderamente barato (es decir <10€)


Métodos y técnicas utilizadas

Requisitos:

  • cada nodo tiene una MCU y una conexión RF
  • el nodo base tiene que ser muy barato: < 5€
  • se tiene que poder programar con el IDE de Arduino
  • se tiene que poder alimentar con una pila de tipo botón o dos AA por un año

Estamos buscando alternativas, abajo hay una recopilación de posibilidades.

Detalles

Hay muchas ideas y plataformas para redes de controladores sencillas y baratas. El proyecto mas parecido al nuestro de momento es este.

Ideas para el Hardware:

De momento nos centramos en un ATmega328 y en el chip nRF24L01 de Nordic. El coste de los dos puede llegar a ser inferior a 1 €. Placas micro compatibles Arduino (de donde poder copiar el diseño): femtoduino, Arduino mini pro

Asignación de pines:

  • PD2 -> IRQ
  • PB0 -> CS
  • PB5 -> SCK
  • PB4 -> MISO
  • PB3 -> MOSI
  • GND -> GND
  • VCC -> VCC


Alternativas son, para la MCU, el ATtiny24 o 84 aunque sus capacidades son limitadas y no hay plena compatibilidad con Arduino. El precio de un Attiny24 es de medio euro.

Ideas para el SW

Queremos la compatibilidad con Arduino, por eso nos centramos en chips AVR. Hay unas cuantas librerías para controlar el chip radio:

Y unos posts sobre el tema:


A esto podemos añadir:

Del lado "servidor" o sea el colectore de todas las medidas y generador de aplicaciones domoticas se puede usar:

Avances:

Reunion 14/9/2013

Hemos testeado 4 modulos nRF24L01 con dos Arduinos, uno ha fallado, pero los otros tres se ha conectado netre si. Hemos los codigos de ejemplo de la libreria RF24 que parece ser la mejor hecha. Hemos probado la conexion estrella y ha funcionado.

Decisiones: para la semana que viene vamos a intentar conectar un Atmega328p directamente a un modulo nrf24L01 en una placa de prototipado. Queremos producir 4 nodos e ir haciendo experimentos. Experimentos posibles:

  • mejor tipo de baterias, 2 AA? 1 de moneda de 3V ?
  • aguante de baterias
  • alcance de la comunicacion
  • ir haciendo pruebas con el SW

objetivo final que hemos visualizado: una placa integrada con modulo radio y atmega, super pequeña, de bajo coste (<5€), con un kit de SW para redes de sensores. Como SW se considera incluso hacer un porting del stack 6loWPAN.


Pruebas 26/9/2013:

Hemos montado el Atmega328p en la breadboard. Para programar el ATMega desde Arduino hemos seguido este tutorial. Hay dos fases: en una cargas el bootloader en el ATmega virgen. Para ello se necesita un Arduino que envíe el firmware por los pines del SPI. RECORDAR de cargar el sketch Arduino as ISP de la carpeta de los ejemplos !

En la segunda fase puedes cargar tus sketch, en este caso se usa el puerto serie, y se puede usar un Arduino quitandole el chip O un cable USB-to-serial (FTDI chip) si lo hay.

Primer prototipo

Para ir probando la comunicación con el nrf24L01 hemos cargado un sketch para usar el chip Nordic. Es posible bajar la librería para el chip Nordic aquí, o parece que hay otra pagina de la misma librería aquí y es posible descargar el codigo de github aquí pero comparando las fechas de los ficheros parece que el primer enlace es mas reciente.

Para cargar el sketch en el ATmega hemos utilizado un cable FTDI y NO HA FUNCIONADO, no sabemos porqué. Entonces hemos usado el Arduino SIN MCU y HA FUNCIONADO. Hemos conectado el nrf24L01 según este esquema, cuidado con hacer el mapeado entre los pines de Arduino y los del Atmeg328 (ver aquí!

El Atmega ve el chip y es capaz de enviar paquetes pero no de recibirlos. No sabemos porqué pero sospechamos que es por tener el clock a 8MHz en lugar de 16.Hay indicios de que afecta de alguna manera. El chip puede comunicar hasta 10 Mhz en el bus SPI. En la libreria tenemos SPI.setClockDivider(SPI_CLOCK_DIV4); Entonces con un un atmega328 @ 8 Mhz, 8/4 = 2 mbs , no debería haber problema. Otra posible causa pueden ser los delays().


Pasos a seguir:

Dario: va a enviar un correo al creador de la librería RF24 preguntandole cual es la mas actualizada y si el ve algún problema en tener un Arduino a 8MHz en lugar de 16Mhz.


Roberto: se encarga de ver los sockets e intenta programar el ATMega con el cable FTDI

Todos: resolver el problema de los 8MHz. Comprar socket para los chips. Construir primer prototipo.