Cartopy is a cartographic Python library that was developed for applications in geographic data manipulation and visualization. It is the successor to the the Basemap Toolkit, which was the previous Python library used for geographic visualizations. Cartopy can be used to plot satellite data atop realistic maps, visualize city and country boundaries, track and predict movement based on geographic targeting, and a range of other applications relating to geographic-encoded data systems. In this tutorial, Anaconda 3 will be used to install Cartopy and related geographic libraries. As an introduction to the library and geographic visualizations, some simple tests will be conducted to ensure that the Cartopy library was successfully installed and is working properly. In subsequent tutorials: shapefiles will be used as boundaries, realistic city streets will be mapped, and satellite data will be analyzed.
Read MoreThe BLE Nano is introduced as a hybrid between an Arduino Nano and a CC2540 Bluetooth Low Energy (BLE) module. The Arduino Nano has an ATmega328P as its main microprocessor, which communicates over the serial port to send and receive Bluetooth packets from the CC2540 BLE chip. This creates a Bluetooth-enabled Arduino device - encased in a Nano-sized circuit board! Using the BLExAR iOS app, the BLE-Nano will be controlled using an iPhone. BLExAR allows users to control the pins on the Nano, which will be demonstrated by switching an RGB LED on and off.
Read MoreIn this tutorial - an Arduino board will be used in conjunction with an RGB LED to investigate several ways of replicating the breathing LED effect. Using the equation for a triangular wave, circular wave, and Gaussian wave, a breathing LED will be constructed. The amount of code needed for the simplest breathing LED is as little as two lines of code, while the more complex breathing functions grow in difficulty from there.
Read MorePython’s file transfer protocol (FTP) library is used to parse weather station data from the publicly available automated surface observing system (ASOS) from the U.S.A.’s National Climatic Data Center (NCDC). Several programmatic tools available in Python are used to automate the parsing of weather data, as well as visualizing the resulting data.
Read MoreLoRa modules, such as the SX1276 used in this tutorial, are widely available and relatively inexpensive, all while being fully compatible with Arduino. LoRa modules are also modular in software and hardware: transmission power is configurable, the modules can be outfitted with antennae, and transmission speed and packet information size are both modifiable. In this tutorial, an Arduino board and SX1276 modules will be used to create a network of long range (LoRa) nodes designed to communicate and transport information. The use of antennae will also help broaden the range of the nodes, and tests in New York City will help quantify the efficiency and cone of functionality for such a node in a complex environment.
Read MoreTime of flight (ToF) is an approximation of the time it takes a traveling wave to come in contact with a surface and reflect back to the source. Time of flight has applications in automotive obstacle detection, resolving geographic surface composition, and computer vision and human gesture recognition. In the application here, the VL53L1X ToF sensor will be used to track the displacement of a ping pong ball falling down a tube. We can predict the acceleration and behavior of a falling ping pong ball by balancing the forces acting on the ball, and ultimately compare the theory to the actual displacement tracked by the time of flight sensor.
Read MoreIn the tutorial, the simplest integrated IoT mesh network is explored, where Argon (WiFi + BLE) and Xenon (BLE) Particle boards are used to create an ultrasonic range detector (HC-SR04) that notifies an LED whether a threshold value has been crossed in front of the sensor. When the threshold is reached, a ‘trip’ is communicated to the mesh network and notifies the system via Bluetooth and WiFi.
Read MoreIn this tutorial I will cover one of the newest microcontroller interface languages, Python, and demonstrate Adafruit's powerful Trinket M0 microcontroller and its capabilities using Python as its programming language. Much of what is outlined below can be seen on Adafruit's website [UART communication, Trinket info, CircuitPython Basics].
Read More