Guide   Getting Started | Foundations | Tutorials | Contributing to Energia

Getting Started with Energia

>>Installation<<

Step-by-step instructions for setting up the Energia IDE and running your first Sketch on a Texas Instruments LaunchPad board.

 

Environment: Description of the Energia development environment.

Preferences: the Energia preferences file contains many options for customizing the way Energia compiles and upload sketches.

Build Process: find out what steps your sketch goes through on its way to the LaunchPad board.

Pin Mapping: a complete list of all Pin Mapping images and instructions for each Energia supported hardware board.

Libraries: a complete list of all add-on libraries supported by Energia.

Build IDE from Source: Use the latest code base from Github to create a build of Energia.

Import to Code Composer Studio: Use Energia functions and sketches in CCS version 6+, TI’s Eclipse-based IDE.

Import to CCS Cloud: Use Energia functions and sketches in CCS Cloud, TI’s browser-based IDE.

Foundations

This section contains explanations of some of the elements of electronics, the LaunchPad hardware, the Energia software, and the concepts behind them.

Basics

  • Sketch: The various components of a sketch (Energia program) and how they work
  • Electricity: the principle that powers electronics
  • Circuits: The fundamental concept to electrical design
  • Voltage: electrical charge transported between two points
  • Current: the flow of electrons in a wire

 

Microcontrollers

  • Digital Pins: How the pins work and what it means for them to be configured as inputs or outputs.
  • Analog Input Pins: Details about the analog-to-digital conversion and other uses of the pins.
  • PWM: How the analogWrite() function simulates an analog output using pulse-width modulation.
  • Memory: The various types of memory available on the LaunchPad board.
  • Timers: digital counters that increment or decrement at a fixed frequency used to sync electronic systems.
  • Registers:  a placeholder for information about some hardware condition.
  • Sensors: Sensors are used to detect and measure analog signals from the environment.

 

Programming Technique

 

Basic Electronics Components

  • Breadboard: a prototyping surface to create solderless circuits
  • Wires: connect electrical components and systems
  • Resistors: alter your circuit voltage and current
  • Capacitors: store energy in a circuit
  • Filters: remove or enhance frequency components from the signal
  • Amplifiers: increase the power of a signal
  • Transistorsamplify and switch electronic signals
  • Inductors: resist changes in electric current
  • Switches: change the path of the electric flow
  • Push Button: inject a signal into a circuit
  • Diode: allows electric flow in only one direction
  • LEDs: light emitting diodes act as visual indicators
  • Meters, Scopes, and Analyzers: use these tools to measure voltage and current
  • Integrated Circuits: components that can do complex operations

 

Tutorials

Core Functions

Simple programs that demonstrate basic Energia commands. These are included with the Energia environment; to open them, click the Open button on the toolbar and look in the examples folder.  For some examples, additional hardware is required. These can be acquired individually or in popular electronics starter kits.  The Sidekick Basic Kit for TI LaunchPad from Seeedstudio is highly recommended by the Energia community.

1.Basics

  • BareMinimum: The bare minimum of code needed to start an Energia sketch.
  • Blink: Turn an LED on and off.
  • DigitalReadSerial: Read a switch, print the state out to the Energia Serial Monitor.
  • AnalogReadSerial: Read a potentiometer, print it’s state out to the Energia Serial Monitor.
  • Fade: Demonstrates the use of analog output to fade an LED.
  • ReadAnalogVoltage : Reads an analog input and prints the voltage to the serial monitor

 

2.Digital

  • Blink Without Delay: blinking an LED without using the delay() function.
  • Button: use a pushbutton to control an LED.
  • Debounce: read a pushbutton, filtering noise.
  • Button State Change: counting the number of button pushes.
  • Input Pullup Serial: Demonstrates the use of INPUT_PULLUP with pinMode().
  • Tone: play a melody with a Piezo speaker.
  • Pitch follower: play a pitch on a piezo speaker depending on an analog input.
  • Simple Keyboard: a three-key musical keyboard using force sensors and a piezo speaker.
  • Tone4: play tones on multiple speakers sequentially using the tone() command.

 

3.Analog

  • AnalogInOutSerial: read an analog input pin, map the result, and then use that data to dim or brighten an LED.
  • Analog Input: use a potentiometer to control the blinking of an LED.
  • AnalogWrite: fade 7 LEDs on and off, one by one, using an MSP430G2 LaunchPad board.
  • Calibration: define a maximum and minimum for expected analog sensor values.
  • Fading: use an analog output (PWM pin) to fade an LED.
  • Smoothing: smooth multiple readings of an analog input.

 

4.Communication

These examples include code that allows the LaunchPad to talk to Processing sketches running on the computer. For more information or to download Processing, see processing.org.

  • ReadASCIIString: parse a comma-separated string of ints to fade an LED
  • ASCII Table: demonstrates Energia’s advanced serial output functions.
  • Dimmer: move the mouse to change the brightness of an LED.
  • Graph: send data to the computer and graph it in Processing.
  • Physical Pixel: turn a LED on and off by sending data to your LaunchPad from Processing.
  • Virtual Color Mixer: send multiple variables from LaunchPad to your computer and read them in Processing.
  • Serial Call Response: send multiple vairables using a call-and-response (handshaking) method.
  • Serial Call Response ASCII: send multiple variables using a call-and-response (handshaking) method, and ASCII-encode the values before sending.
  • SerialEvent: Demonstrates the use of SerialEvent().
  • Serial input (Switch (case) Statement): how to take different actions based on characters received by the serial port.

 

5.Control Structures

  • If Statement (Conditional): how to use an if statement to change output conditions based on changing input conditions.
  • For Loop: controlling multiple LEDs with a for loop.
  • Array: a variation on the For Loop example that demonstrates how to use an array.
  • While Loop: how to use a while loop to calibrate a sensor while a button is being read.
  • Switch Case: how to choose between a discrete number of values. Equivalent to multiple If statements. This example shows how to divide a sensor’s range into a set of four bands and to take four different actions depending on which band the result is in.
  • Switch Case 2: a second switch-case example, showing how to take different actions based in characters received in the serial port.

 

6.Strings

 

7.Sensors, Motors, & Displays

  • Temperature: use on board MCU core temp sensor.
  • Tilt Sensor: use a basic tilt sensor.
  • Servo: move a servo to control mechanical objects.
  • Basic Motor: turn a basic motor.
  • 7 Segment Display: display basic number and letter values.
  • 2×16 Character Display: output strings to a character display.

 

8. MultiThreading

  • ButtonEvent: Read a button in one task and have another task wait for the button to be pressed
  • EventLibrary: Send an event in one task and have another task wait for the event
  • Monitor: Displays CPU utilization, task memory usage, etc. Requires VT100 terminal
  • MultiAnalogInput: Reads analog inputs in differents tasks at different rates
  • MultiBlink: Blink 3 LEDs at different rates
  • MultiTaskSerial: Shows 2 threads sending a string to the Serial monitor at different rates

 

9.Connectivity

  • WiFi: WiFi library examples
  • MQTT: Use the MQTT lightweight protocol to enable IoT & M2M applications
  • StandardFirmata: Use firmata protocol to dynamically communicate with the microcontroller
  • Temboo: Access hundreds of web APIs through Temboo using Energia
  • AT&T M2X: Post Energia data to AT&T M2X cloud service
  • BLE Mini: Use Red Bear Lab BLE Mini to control you LaunchPad
  • Freeboard.io: Create a cloud dashboard with your Energia data using freeboard.io
  • Contiki: Access Contiki OS for IoT using Energia

 

10.BoosterPacks

  • Olimex8x8matrix: create a scrolling marquee with an LED matrix.
  • Sharp LCD Display: display images and text on the low power LCD
  • EducationalBP: create a magic 8 ball with an accelerometer and LCD display.
  • EducationalBP MKII: examples involving buzzer, LCD, LEDs, accelerometer, push buttons, and more
  • CC3000: introduction to SimpleLink WiFi CC3000 BoosterPack
  • CC3100: introduction to SimpleLink WiFi CC3100 BoosterPack

 

Other Tutorials

  • Sidekick for TI LaunchPad: use the Seeedstudio Sidekick Basic Kit for TI LaunchPad with Energia
  • SIK for LaunchPad: use the Sparkfun Inventor’s Kit with Energia
  • Grove Starter Kit for LaunchPad: use Grove modules to access sensors and components for prototyping
  • O-Scope Operation: Learning how to use an Tektronix Oscilloscope with MSP430 LaunchPad
  • LabVIEW Home: Use Energia in National Instruments LabVIEW
  • Processing: Create GUIs and visual representations of Energia data using Processing IDE
  • Energia.nu/learn: Full workshops on Energia material
  • IoP Machine: Learn how to create an internet connected popcorn machine
  • Energy Trace: Learn how to measure energy consumption in your Energia system

 

Extending and Developing Energia

Software

  • Adding Web Content: how to properly contribute new tutorials and references to the Energia website.
  • Writing a Library: creating libraries to extend the functionality of Energia. Goes step-by-step through the process of making a library from a sketch.
  • Build Energia from Source: how to build Energia on your machine from the latest code base.
  • Preferences: the Energia preferences file contains many options for customizing the way Energia compiles and upload sketches.
  • Build Process: find out what steps your sketch goes through on its way to the LaunchPad board.
  • Source: online browsing of the Energia source code (on an external website)
  • Bugs: the current list of Energia software bugs (on an external website).
  • Wiki: Energia project technical details, enhancements, issues, references can be found on the Wiki (on an external website).

 

Energia sketches are C/C++ based and compiled with the open-source compiler MSPGCC. The Energia language comes from Wiring. The Energia environment is based on Processing and includes modifications made by Wiring.

Hardware

 

Other resources:

  • Minty Boost process: no microcontroller, but a great explanation on how to put together a kit, from idea to product.