Getting Started with Energia
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.
This section contains explanations of some of the elements of electronics, the LaunchPad hardware, the Energia software, and the concepts behind them.
- 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
- 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.
- Variables How to define and use variables
- Functions: How to define and use functions
- Libraries: How to write your own library
- Bit Manipulation: How to use bit math
- Communication Protocols: How to use protocols to pass data
- Multitasking: How to set up multithreaded applications
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
- Transistors: amplify 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
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.
- 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
- 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.
- 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.
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.
- 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.
- StringAdditionOperator: add strings together in a variety of ways.
- StringAppendOperator: append data to strings.
- StringCaseChanges: change the case of a string.
- StringCharacters: get/set the value of a specific character in a string.
- StringComparisonOperators: compare strings alphabetically.
- StringConstructors: how to initialize string objects.
- StringIndexOf: look for the first/last instance of a character in a string.
- StringLength & StringLengthTrim: get and trim the length of a string.
- StringReplace: replace individual characters in a string.
- StringStartsWithEndsWith: check which characters/substrings a given string starts or ends with.
- StringSubstring: look for “phrases” within a given string.
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.
- 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
- 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
- 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
- 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
- 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.
- Energia BYOB (Build Your Own BoosterPack): maker focused instructions for designing and building your own LaunchPad compatible BoosterPack.
- TI BYOB (Build Your Own BoosterPack): official TI instructions for designing and building your own LaunchPad compatible BoosterPack.
- Minty Boost process: no microcontroller, but a great explanation on how to put together a kit, from idea to product.