Arduino

I always wanted to write a post with some sort of help for those curious about the fascinating world of Arduino. Here it is. Finally my getting started guide.

Please, stay only if…

  • you’re curious
  • you’re looking for new hobbies
  • you have some programming skills
  • you’re at no risk of divorce

A real disclaimer, arduino is a time sucker, same level as:

  • 3D printing,
  • video games,
  • aeromodelling,
  • etc.

Be careful.

Overview

What is it?

Arduino is a company and a community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices <with the framework to program them>.

Its uses?

Mostly pocket-sized devices with:

  • A specific purpose (embedded system)
  • A minimalistic or no user interface
  • High power efficiency
  • Need for portability
  • Low price
  • No Operating System needed

NOTE: For those more into it already, keep in mind that all the items above are indicative. Sure you can have an arduino with 3 simple purposes, the user interface could be a color LCD still, maybe not efficient if you use no sleep features, no portability if you have a automatic window opening system, price can vary if you have a very expensive sensor, there are some so called operating systems for Arduino like Mongoose OS, …

Arduino vs. Raspberry?

  • Also a pocket-size board
  • It’s a full computer though
  • Has an Operating System
  • More expensive than most Arduino boards (~30€ the cheapest on amazon.fr)
  • could last a day on batteries (maximum)

OUT OF SCOPE

NOTE: Saw some videos making a big deal out of a Raspberry running on batteries for 14 hours. That’s nothing for a serious Arduino battery-powered based project.

Arduino vs. *?

  • FPGA
  • ESPuma
  • uPython
  • Blynk
  • Mongoose OS

OUT OF SCOPE

Why so trendy?

  • Boards are way cheaper than a laptop
  • Lots of cool applications (IoT)
    • Smart Home
    • Smart City
    • Environment
    • Security
    • Industrial IoT
  • Wider scope than just programming
  • Interact with the real world / physics
    • Actuators
    • Sensors
  • Build something useful
  • Be creative
  • Think out of the box
  • Have fun

In layers

  • Your code
  • Arduino code
  • SDK
  • Hardware

Example:

How to get started?

Main ingredients

  1. An arduino-compatible board
  2. Some sensor/s
  3. Some user interface/s
  4. A power supply
  5. A firmware (on top of Arduino / SDK)

Proposed ingredients (to buy):

  1. Board: NodeMCU esp8266 (~5€)
  2. Sensor: a button (~3€ each)
  3. UI: some leds (~3€)
  4. Power: laptop (+ an usb cable (~3€))
  5. Firmware: semaphore using PlatformIO
  6. Wires: here

The component aboves are not the cheapest, but the simplest to get started with!!!

About the incredible ESP8266

Procedure

  1. Install PlatformIO Core
  2. (opt.) Install the PlatformIO IDE
  1. Connect your laptop to the NodeMCU esp8266 using the usb cable
  2. Clone the blinking led project
  3. Connect the leds to the board as described in the Pinout.h header
  4. Launch platformio run --target upload to load firmware

That’s it!

In my pipeline

  • Framework to facilitate
    • Properties setup
    • Development
    • Logs retrieval
  • Projects
    • Botino
    • Sleepino
    • Bimbino (proto ready)
    • Zino (to come)

Thanks!