Lo Último en IP@P
- Stellar Data Recovery revoluciona la recuperación de archivos perdidos en discos duros externos
- Goblin Mine: La Estrategia Económica Detrás del Juego de Minería que está Fascinando a Todos
- Estos son los nuevos Cargadores UGREEN: potencia y portabilidad en dos versiones que no te puedes perder
- UGREEN Nexode Pro: El Cargador Ultradelgado que revoluciona la carga de dispositivos móviles
- La computación en la nube está transformando los juegos Online y estas son sus grandes ventajas
Si estás buscando una placa de Arduino que se conecte a Internet por medio de WiFi, utilice la tecnología de bluetooth y la NFC, entonces el modelo Primo es ideal para tus proyectos.
Esto se debe a la calidad de conectividad que tiene y también a los demás componentes que mejoran de manera sustancial la operatividad. Uno de esos elementos es el conjunto de MCU que se usan para sostener una buena conexión.
Si quieres saber cómo trabajar con una placa Arduino Primo, tendrás que continuar leyendo. Te mostraremos una lista con las mejores ideas que puedes hacer tú mismo.
¿Qué son las Arduino Primo y para qué sirven estas placas de hardware libre?
La placa Arduino Primo es un modelo que se desarrolla en los Estados Unidos y fue lanzada en el año 2016. Dispone de una arquitectura de 32 bits en sus controladores, 14 pines para entrada y salida digital y 6 para entradas analógicas.
Se puede crear una gran variedad de proyectos, en especial aquellos que incluyen batería, ya que ofrece un receptor y transmisor de infrarrojos y un cargador de pilas. Además, incluye una red de placa de WiFi y de Bluetooth, por lo que se puede trabajar en IoT.
¿Cuáles son las características especiales de las placas de desarrollo de Arduino Primo?
Las características más destacadas que podrás encontrar en una placa Arduino Primo son las siguientes:
- Esta placa tiene un tamaño de 7,62 x 5,08 cm. y pesa 85 gramos.
- Se puede conectar a WiFi, por medio de Bluetooth y por medio de la tecnología de comunicación campo cercano NFC.
- Dispone de 3 microcontroladores, el nRF52832, el STM32f103 y el ESP8266. Los cuales trabajan como el MCU principal de la placa, para la depuración de programas y para la colectividad por medio de WiFi, respectivamente.
- Posee 14 pines digitales de entrada y salida, de los cuales 12 se puede usar como marcador de pulsos o PWM. Además, tiene 6 pines de entrada analógica.
- Cuenta con un conector MicroUSB, con una antena para NFC, un zumbador y botones de reset y de apagado.
- También tiene un cargador de baterías con un resonador de 64 MHz.
- La tensión con la que trabaja es de 3V, por lo que hay que tener cuidado de no quemar los componentes.
- Trabaja con un protocolo de WiFi 11 bgn en 2.4 GHz de frecuencia.
Mejor conectividad ¿Cómo aprovechar mejor esta característica de las Arduino Primo?
Para aprovechar mejor la conectividad que ofrece la placa Arduino Primo vas a tener que agregarle la placa Arduino NRF52 Core en el IDE.
Esto lo podrás hacer ingresando a Herramientas, luego seleccionar Placas y por último escoger Gestor de tarjetas:
- A continuación, se abrirá una ventana nueva en la cual tendrás que elegir NRF52 Core.
- Debes tener en cuenta que si trabajas en un ordenador con sistema operativo Windows o MacOS no necesitarás la instalación de controladores. En cambio, si usas Linux vas a tener que ejecutar el script encontrarás en la página oficial de Arduino.
https://www.arduino.cc/en/Sh/Txt
- Luego de esto, tendrás que agregar el puerto de serie. Para eso deberás ingresar en el IDE y hacer clic en Herramientas y después en Menú del puerto serie, en donde encontrarás el nombre del puerto en el cual tienes conectada la placa.
- Luego de subir el entorno (pulsando en Programa y después en Subir), necesitarás conectarte a Internet por medio de WiFi. Esto lo podrás hacer encendiendo la placa y luego ingresando al menú Redes de tu ordenador. Encontrarás muy fácil el SSID, ya que lleva el nombre Arduino Primo.
- En el navegador deberás ingresar a la dirección
http://192.168.240.1/
para que puedas acceder a las opciones de configuración de la placa. Después, tendrás que dirigirte al menú Conexión vas a tener que ingresar la contraseña de Wifi y luego pulsar en CONECTAR. - Por último, te aparecerá la IP de la Arduino, por lo que deberás cambiar el estado desde el panel de configuración a SWITCH TO STA MODE. De esta manera podrás obtener una mejor conectividad.
Lista de ideas de proyectos que puedes desarrollar usando placas Arduino Primo
A continuación, vas a poder encontrar una lista con los mejores proyectos que puedes hacer tú mismo con una Arduino Primo:
Monitor de pulso cardíaco
Más en Hardware
- ¿Cómo resetear Google Home y restablecer la configuración a los valores de fábrica? Guía paso a paso
- ¿Cómo desbloquear un iPhone XS y XS Max fácil y rápido? Guía paso a paso
- ¿Cómo evitar que la caja de Raspberry Pi se sobrecaliente en exceso? Guía paso a paso
- Módem: ¿Qué es y en qué se diferencia con un Router?
- Proyectos Raspberry Pi ¿Cómo configuro mi Raspberry Pi como un servidor Wake on LAN? Guía paso a paso
SÍGUENOS EN 👉 YOUTUBE TV
Este proyecto lo podrás crear utilizando una placa de Arduino Primo, un sensor de pulso para obtener información de la frecuencia cardíaca y cables necesarios para la conexión. Lo primero que deberás hacer es conectar el PWR del sensor a 3.3V; luego GND al GND de la placa y la señal al canal A0.
A continuación, tendrás que ingresar estos códigos de programación:
#include <BLEPeripheral.h> #define SIGNAL A0 BLEPeripheral blePeripheral; BLEService heartRateService("180D"); BLECharacteristic heartRateChar("2A37", BLERead | BLENotify, 2); void findHeartRate (float averageSample); int sample[300] = { 0 }; int n = 0; int sumSample = 0; float averageSample = 0; void setup() { begin(250000); setLocalName("HeartRateSketch"); setAdvertisedServiceUuid(heartRateService.uuid()); addAttribute(heartRateService); addAttribute(heartRateChar); begin(); println("Bluetooth device active, waiting for connections..."); } void loop() { BLECentral central = blePeripheral.central(); if (central) { print("Connected to central: "); println(central.address()); //turn on BLE led digitalWrite(BLE_LED, HIGH); while (central.connected()) { if (millis() % 10 == 0) { int rawValue = analogRead(A0); int sensorValue = map(rawValue, 0, 1023, 0, 255); println(sensorValue); sumSample = sumSample + sensorValue; sumSample = sumSample - sample[n]; sample[n] = sensorValue; n++; averageSample = (float)sumSample / 300; if (n == 300) { n = 0; findHeartRate(averageSample); } delay(1); } } print("Disconnected from central: "); println(central.address()); } digitalWrite(BLE_LED, LOW); delay(200); digitalWrite(BLE_LED, HIGH); delay(200); } void findHeartRate (float averageSample) { int count = 0; int totalTime = 0; int lastI = 0; bool trendState = false; bool goOverThreshold = false; int heartRate = 0; float setThreshold = 1.25; for (int i = 0; i < 300; i++) { goOverThreshold = (sample[i] > (averageSample * setThreshold)); if (goOverThreshold != trendState) { trendState = goOverThreshold; if (goOverThreshold == false) { if (count > 0) { totalTime = totalTime + (i - lastI); } count++; lastI = i; } } } heartRate = 6000 * (count - 1) / totalTime; const unsigned char heartRateCharArray[2] = { 0, (char)heartRate }; setValue(heartRateCharArray, 2); //Serial.print("heartRate is: "); //Serial.println(heartRate); }
Control del ratón por medio del móvil en un reproductor multimedia
Vas a necesitar una pila de botón de tipo CR2032, una placa Arduino Primo Core y un móvil con Bluetooth activado.
Al trabajar con IDE no necesitarás de ningún circuito, por lo que directamente deberás ingresar estos códigos:
#include <CoreSensors.h> #include <BLEHIDPeripheral.h> #include <BLEMouse.h> #include <BLESystemControl.h> #define MOUSE_RANGE 24 #define INT1 21 int tap = 0; int crono = 0; int count = 0; BLEHIDPeripheral bleHIDPeripheral = BLEHIDPeripheral(); BLEMouse bleMouse; BLESystemControl bleSystemControl; void setup() { pinMode(LED_BUILTIN, OUTPUT); pinMode(12, OUTPUT); begin(115200); println(F("BLE HID Peripheral - clearing bond data")); clearBondStoreData(); setReportIdOffset(1); setLocalName("Arduino Core Mouse"); addHID(bleMouse); addHID(bleSystemControl); begin(); println(F("BLE HID Demo")); begin(); enableSingleTapDetection(); attachInterrupt(INT1, Tap, RISING); } void loop() { BLECentral central = bleHIDPeripheral.central(); digitalWrite(LED_BUILTIN, LOW); if (central) { print(F("Connected to central: ")); println(central.address()); count = 0; while (central.connected()) { digitalWrite(LED_BUILTIN, HIGH); if (tap) { tap = 0; uint8_t status = 0; getStatusSingleTapDetection(&status); if (status) { if (count % 2 == 0){ digitalWrite(12, HIGH); //turn on the led press(); count++; } else { digitalWrite(12, LOW); release(); count ++; } } } int32_t accelerometers[3] = {0}; getAccelerometer(accelerometers); if (accelerometers[2] > 0 && (abs(accelerometers[0])>100||abs(accelerometers[1])>100) && (millis()>(crono+200))) { int mappedX = map (accelerometers[0], -1023, 1023, -12, 12); int mappedY = map (accelerometers[1], -1023, 1023, -12, 12); int x = -1 * mappedX; int y = mappedY; move(x, y); }
Luego deberás conectar el móvil a la placa por medio de Bluetooth para comenzar a usar el ratón inalámbrico.
Sensor meteorológico
Este proyecto es un poco más complicado que los anteriores, ya que necesitarás de dos placas Arduino, una Primo y una Primo Core. Esta última es la que se encarga de enviarle una señal a la primera para que busques en la web la temperatura de una ciudad determinada. Además de las dos placas necesitarás una CR2032 y un smartphone.
Deberás conectar las Arduino en sus respectivos pines y continuar con el ingreso de estos códigos en el IDE:
#include <WiFiLink.h> #include <BLEPeripheral.h> #include <BLESerial.h> BLESerial bleSerial = BLESerial(); char ssid[] = "cclIT"; char pass[] = "ht34!eG$"; int keyIndex = 0; int count; char memory[5]; char fahrenheit[4]; char celsius[4]; bool flag = false; int status = WL_IDLE_STATUS; char server[] = "www.nytimes.com"; WiFiClient client; void setup() { setLocalName("WeatherFinder"); pinMode(BLE_LED, OUTPUT); begin(115200); begin(); memory[4] = '\0'; fahrenheit[3] = '\0'; celsius[3] = '\0'; } void loop() { poll(); if (bleSerial && Serial) { int byte; if ((byte = bleSerial.read()) > 0) { if (WiFi.status() == WL_NO_WIFI_MODULE_COMM) { println("Communication with WiFi module not established."); } while (status != WL_CONNECTED) { print("Attempting to connect to SSID: "); println(ssid); status = WiFi.begin(ssid, pass); delay(10000); } println("Connected to wifi"); println("\nStarting connection to server..."); if (client.connect(server, 80)) { println("connected to server"); println("GET /gst/weather.html?detail=Cagliari--IY HTTP/1.1"); println("Host: www.nytimes.com"); println("Connection: close"); println(); } flag = true; } } while (flag) { while (client.available()) { char c = client.read(); if (c == 176 && count < 2) { if (count == 0) { fahrenheit[0] = memory[0]; fahrenheit[1] = memory[1]; fahrenheit[2] = memory[2]; } else { celsius[0] = memory[0]; celsius[1] = memory[1]; celsius[2] = memory[2]; } count++; } memory[0] = memory[1]; memory[1] = memory[2]; memory[2] = memory[3]; memory[3] = c; } if (!client.connected()) { println(); println("disconnecting from server."); if (fahrenheit[1] == 62){ fahrenheit[1] = 32; fahrenheit[0] = 32; } else if (fahrenheit[0] == 62){ fahrenheit[0] = 32; } if (celsius[1] == 40){ celsius[1] = 32; celsius[0] = 32; } else if (celsius[0] == 40){ celsius[0] = 32; } print("Temperature in fahrenheit: "); print(fahrenheit); println("°"); print("Temperature in celsius: "); print(celsius); println("°"); stop(); write(celsius); flag = false; } } if (bleSerial.status() == ADVERTISING) { digitalWrite(BLE_LED, LOW); delay(200); digitalWrite(BLE_LED, HIGH); delay(200); } else digitalWrite(BLE_LED, HIGH); }