Posts in Programming
Python Microcontroller: Getting Started with Adafruit's Trinket M0 and CircuitPython

In 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
Arduino Internet of Things Part 2: Lowering The Power Consumption Of The ATmega328P Breadboard Arduino And The HM-10 Bluetooth Module
Heat Transfer of the Raspberry Pi Using Arduino, An Infrared Thermometer, and Type-K Thermocouple
Heat Mapping with a 64-Pixel Infrared Detector (AMG8833), Raspberry Pi, and Python
Geospatial Analysis Using QGIS and Open-Source Data

Geographic information systems (GIS) are powerful tools used by climatologists, health organizations, defense agencies, real-estate companies, and nearly all professions that rely on location-based data. Geographic data is often very cumbersome to analyze traditionally, which is why visualization tools are essential. Depending on the size and complexity of the data, several robust GIS softwares exist on the market from open-source (free) to paid subscriptions. Each software has its strengths and weaknesses, so depending on the application one software may be more effective than another. A few of the leading softwares are: GE Smallworld, Google Earth Pro, AutoCAD Map 3D, and Maptitude. QGIS is an open-source competitor to ArcGIS, which is arguably the industry leader in the GIS market, so for financial and ease-of-application reasons, QGIS is employed here. I will also cover four scales of geographic analysis: one at the city level (NYC), one at the state level (Washington State), one at the country level (U.S.A.), and one at the world level. The goal is to demonstrate the power and breadth of geographic information systems at any scale.

Read More
Arduino - Sending A String Over Bluetooth Using The HM-10

As an introduction to Bluetooth with Arduino or Raspberry Pi, I recommend using a component called the HM-10 [datasheet here]. The HM-10 is a Bluetooth low energy module that employ Bluetooth 4.0, which is currently the most widely used protocol for wireless devices (along with Wifi, but I will discuss this later). All of the current iPhones, Androids, and Google phones use Bluetooth 4.0, and it will likely be around for quite a while. The module is powered at 3.3V and consumes around 50mA (peak), 8.5mA (nominal), and can sleep with a current between 400uA - 1.5mA. It claims to have an open-space transmission range of 100m, and boasts transfer rates at 2 kilobytes per second. The underlying chip is a Texas Instruments CC-2540/2541 [see here]. The HM-10 is particularly germane because it cooperates nicely with the Arduino software with a mere four lines of code in the IDE. 

Read More