Capa de percepción - Sesión 2
- Comprender los conceptos básicos para realizar prototipado.
- Explorar algunos de los sensores disponibles en el laboratorio
Introducción
El uso de sensores y actuadores permiten que las cosas interactuen con el mundo real. En esta sesión vamos a explorar los principales conceptos relacionados con los sensores y actuadores analizando una serie de ejemplos que demuestren su uso básico. Antes de comenzar esta sesión se recomienda que revise el siguiente material para contextualizarse:
-
Presentaciones Interact with the phisycal world (lección 3) del curso IoT for Beginners (link) de Microsoft.
-
Material teorico del curso disponible en Poner enlace
Componentes del laboratorio
En el laboratorio hay un gran numero de elementos para prototipado. En la siguiente tabla describe los elementos de hardware que usaremos en este laboratorio:
Elementos a emplear
A continuación se describen los principales elementos que se usaran a lo largo del curso
Sistemas de desarrollo
Elemento | Descripción |
---|---|
Arduino Uno | Placa de desarrollo Arduino Uno (link) |
Tarjeta de desarrollo ESP8266 NodeMCU WiFi Devkit | Tarjeta de desarrollo basada en ESP8266 (poner link) |
Tarjeta de desarrollo NodeMCU-32S | Tarjeda de desarrollo basada en el ESP-32S (poner link) |
Arduino Nano 33 BLE Sense Lite | Tarjeta de desarrollo Arduino Nano 33 BLE Sense Lite (link). Importante: Tenga en cuenta la información dada en el siguiente foro |
Kit de sensores
Elemento | Descripción |
---|---|
Grove - Starter Kit v3 | Kit de desarrollo para prototipado rapido (link) |
37 sensor kit Elegoo | Kit de sensores Elegoo para prototipado rapido (link) |
AlphaBot2 robot building kit for Arduino/Pi/PiZero | Kit para prototipado de robots AlphaBot2 (link) |
Landzo 37 In 1 Sensors Kit For Arduino | Kit de sensores Landzo para prototipado (link) |
Tiny Machine Learning Kit | Tiny Machine Learning Kit [Manual de usuario] [link1] [link2] |
Mapa de pines (pinout)
Placas de desarrollo
A continuación se describen los principales elementos que se usaran a lo largo del curso
Arduino UNO
La placa Arduino UNO es una plataforma de código abierto basada en el microcontrolador ATmega328P cuya alimentación es a 5V (cuando la alimentación es por USB) o en un voltaje DC entre 7 - 12 V cuando la alimentación es a traves del conector jack.
Antes de empezar a trabajar con cualquier plataforma de desarrollo es necesario conocer como mínimo el mapa de pines de esta. A continuación, se muestra el mapa de pines para la tarjeta Arduino UNO (link)
La siguiente tabla resume la información del mapa de pines para el Arduino UNO:
Para mayor información sobre la placa puede consultar el enlace Arduino Uno Board Anatomy (link) . La siguiente tabla resume la información sobre los pines para esta placa:
Tipo | Notación pines (placa) |
---|---|
Digital/GPIO | D0 , D1 , D2 , ~D3 , D4 , ~D5 , ~D6 , D7 , D8 , ~D9 |
Analog in | A0 , A1 , A2 , A3 , A4 , A5 |
PWM | ~D3 , ~D5 , ~D6 , ~D9 , ~D10 , ~D11 |
Serial (UART) | Tx-> , Rx<- |
I2C | A4/SDA , A5/SCL |
Digital SPI | ~D10/SS , ~D11/MOSI , D12/MISO , D13/SCK |
Interrupt | D1/INT0 , D3/INT1 |
ESP32
Un sistema de desarrollo ESP32 (por ejemplo el NodeMCU-32S) esta basado en el microcontrolador ESP32 el cual cuenta con funcionalidad Wi-Fi y Bluetooth. La tarjeta de desarrollo opera a 3.3 V y es alimentada a traves de una conexión micro-USB de 5 V o directamente a 3.3 V a traves del pin VIN. Cuando se usa esta tarjeta de desarrollo es importante tener en cuenta que los pines GPIO no son tolerantes a 5 V, y la maxima corriente que pueden suministrar es de 12 mA.
La siguiente figura muestra el diagrama de pines asociado a la tarjeta de desarrollo Nodemcu-32s WIFI MODULE (link)
Tal y como se muestra en la siguiente figura, el modulo Nodemcu-32s tiene un total de 38 puertos:
La siguiente tabla resume la función principal algunos de estos:
Tipo | Notación pines (placa) |
---|---|
Digital (Only input) | P34 [GPIO34] , P35 [GPIO35] , SVP [GPIO36] , SVN [GPIO39] |
Analog in | SVP [GPIO36] , SVN [GPIO39] , P35 [GPIO 35] , P34 [GPIO34] , P32 [GPIO32] , P33 [GPIO 33] , P25 [GPIO25] , P26 [GPIO26] , P27 [GPIO27] , P14 [GPIO14] , P12 [GPIO12] , P13 [GPIO13] , P15 [GPIO15] , P2 [GPIO2] , P0 [GPIO0] , P4 [GPIO4] |
PWM | SVP [GPIO36] , SVN [GPIO39] , P35 [GPIO 35] , P34 [GPIO 34] , P32 [GPIO 32] , P33 [GPIO 33] , P25 [GPIO25] , P26 [GPIO26] , P27 [GPIO27] , P14 [GPIO14] , P12 [GPIO12] , P13 [GPIO13] , P15 [GPIO15] , P2 [GPIO2] , P0 [GPIO0] , P4 [GPIO4] |
Serial (UART) | Tx [GPI1] , Rx [GPI3] , D8 [TXD2] , D7 [RXD2] |
I2C | P22 [GPI22/SCL] , P21 [GPI21/SDA] |
Digital SPI | P23 [MOSI] , P19 [MISO] , P18 [SCK] , P5 [SS] |
Flash SPI | CLK [GPIO6/FLASHCLK] , SD0 [GPIO7/FLASHD0] , SD1 [GPIO7/FLASHD1] , CMD [GPIO7/FLASHCMD] , SD2 [GPIO9/FLASHD2] , SD3 [GPIO9/FLASHD3] |
Capacitive touch | P0 [GPIO4]/TOUCH1 , P4 [GPIO0]/TOUCH0 , P2 [GPIO2/TOUCH2] , P15 [GPIO15/TOUCH3] , P13 [GPIO13/TOUCH4] , P12 [GPIO12/TOUCH5] , P14 [GPIO14/TOUCH6] , P27 [GPIO7/TOUCH7] |
Arduino Nano 33 BLE Sense
En construcción... datasheet
La siguiente tabla resume la función principal algunos de los pines de la placa Arduino Nano 33 BLE Sense:
Tipo | Notación pines (placa) |
---|---|
Digital/GPIO | ~D2 , ~D3 , ~D4 , ~D5 , ~D6 , ~D7 , ~D8 , ~D9 , ~D10 , ~D11 , ~D12 , ~D13 |
Analog in | A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 |
PWM | ~D2 , ~D3 , ~D4 , ~D5 , ~D6 , ~D7 , ~D8 , ~D9 , ~D10 , ~D11 , ~D12 , ~D13 |
Serial (UART) | Tx , Rx |
I2C | A4/SDA , A5/SCL |
Digital SPI | ~D11/MOSI , D12/MISO |
Interrupt | Todos los pines digitales |
Prototipado básico usando fritzing
Fritzing es una plataforma para plataforma permitira prototipar hardware en su computador y verificar su funcionamiento antes de hacer el montaje en fisico. Esta puede ser descargada del siguiente link.
Para realizar prototipado empleando elementos (de diferentes fabricantes) disponibles en kits de desarrollo puede seguir cualquiera de los dos enlaces que se muestran a continuación:
La siguiente tabla muestra enlaces de algunos fabricantes que poseen librerias en fritzing:
Fabricante | Información | Repositorio | Link descarga |
---|---|---|---|
Adafruit | https://github.com/adafruit/Fritzing-Library | descarga | |
Sparkfun | https://github.com/sparkfun/Fritzing_Parts | ||
Seeed Studio | https://github.com/Seeed-Studio/fritzing_parts | seeed_fritzing_parts.fzbz | |
Elegoo | https://github.com/marcinwisniowski/ElegooFritzingBin | Elegoo-0.6.3.fzbz | |
NodeMCU y otros componentes | https://github.com/AchimPieters/Fritzing-Custom-Parts | ||
ESP32 NodeMCU | ESP32S_HiLetgo.fzpz | ||
Arduino Nano | Arduino Nano 33 BLE Sense.fzpz |
Actividad de laboratorio
A continuación, se muestra una lista de proyectos con sus respectivos enlaces:
# | Proyecto | Link | Equipo |
---|---|---|---|
1 | Ultrasonic Security System | https://projecthub.arduino.cc/Krepak/ultrasonic-security-system-a6ea3a | |
2 | Arduino Calculator | https://projecthub.arduino.cc/123samridhgarg/arduino-calculator-bce0df | |
3 | Arduino Solar Tracker | https://projecthub.arduino.cc/Aboubakr_Elhammoumi/arduino-solar-tracker-77347b | |
4 | Line Following Robot | https://projecthub.arduino.cc/lightthedreams/line-following-robot-34b1d3 |
Teniendo en cuenta lo anterior:
- Cada equipo debera elegir uno de los proyectos y actualizar la columna de tabla anterior con los nombres de los integrantes.
- Dentro de la carpeta asociada a cada equipo hay una plantilla (archivo README.md) la cual debera ser modificado por cada equipo teniendo en cuenta el proyecto elegido.
- Hacer el diagrama en fritzing y subirlo en la respectiva carpeta.
- Revisar los siguientes sitios y elegir minimo tres proyectos que le puedan servir como base para el desarrollo de su proyecto IoT.
Para profundizar
Para profundizar un poco mas en la teoria sobre algunos de los diferentes tipos de sensores, en la siguiente tabla se muestra una lista de compenentes electronicos importantes:
Elemento | Tutorial |
---|---|
Resistencias | Resistors |
Leds | Light-Emitting Diodes (LEDs) |
Potenciometros | Voltage Dividers |
Capacitores | Capacitors |
Diodos | Diodes |
Transistores | Transistors |
Motores | Motors and Selecting the Right One |
Display LCD | Basic Character LCD Hookup Guide |
Acelerometro | Accelerometer Basics |
Led Infrarrojo | IR Communication |
Sensor de humedad | Soil Moisture Sensor Hookup Guide |
Giroscopo | Gyroscope |
Joystick | Thumb Joystick Hookup Guide |
Cables | Working with Wire |
Fotocelda | Photocell Hookup Guide |
Servomotores | Hobby Servo Tutorial |
Baterias | Battery Technologies |
Sensor de temperatura | DHT11, DHT22 and AM2302 Sensors |
Sensor de ultrasonido | Ultrasonic Sonar Distance Sensors |
Sensor de proximidad | PIR Motion Sensor |
Referencias
- https://github.com/UdeA-IoT/actividad-4
- https://randomnerdtutorials.com/
- https://hci.rwth-aachen.de/arduino
- https://cdn.sparkfun.com/assets/7/2/a/4/f/SerLCDReactionTimerActivity.pdf
- https://www.bildr.com/
- https://github.com/UdeA-IoT/iot-2022_1/tree/main/percepcion/sesion1/esp32
- https://github.com/UdeA-IoT/actividad-4
- https://www3.gobiernodecanarias.org/medusa/ecoescuela/recursosdigitales/2015/02/10/diseno-electronico-con-fritzing/
- https://fritzing.org/media/uploads/learning/translations/Fritzing-PrimerosPasos.pdf
- https://fritzing.org/learning/
- https://arxiv.org/ftp/arxiv/papers/2206/2206.07146.pdf
- https://chem.libretexts.org/Courses/University_of_Arkansas_Little_Rock/IOST_Library/07%3A_Electronics_Book
- https://www.instructables.com/Fritzing-A-Tutorial/
- https://forum.fritzing.org/t/fritzing-part-of-an-esp32/5355/5
- https://www.studiopieters.nl/homekit-accessoires/
- https://en.wikipedia.org/wiki/Open-design_movement
- https://www.embedded.com/serial-protocols-compared/
- https://circuitdigest.com/tutorial/serial-communication-protocols
- https://www.totalphase.com/blog/2017/08/serial-communication-protocols-the-basics/
- https://www.linkedin.com/pulse/communication-protocols-embedded-system-keroloes-girgis
- https://www.weare5vmedia.com/media/communication-protocols-for-an-embedded-engineer-to-know
- https://embeddedsecurity.io/protocols
- https://resources.altium.com/p/comparing-all-serial-communications-protocols
- https://wiki.seeedstudio.com/Name_your_website/
- https://www.sparkfun.com/news/1529
- https://learn.sparkfun.com/tutorials/using-github-to-share-with-sparkfun
- https://learn.sparkfun.com/tutorials/using-github
- https://makeabilitylab.github.io/physcomp/
- https://vimeo.com/channels/pcomp
- https://web.stanford.edu/class/archive/engr/engr40m.1178/
- https://docs.arduino.cc/tutorials/nano-33-ble-sense/get-started-with-machine-learning
- https://dotnet.microsoft.com/en-us/learn/iot
- https://github.com/MicrosoftDocs/dotnet-iot-assets/tree/main
- https://github.com/noopkat/iotcore-smart-device
- https://store-usa.arduino.cc/collections/internet-of-things
- https://www.wildernesslabs.co/