Project/Aiko
Contents |
Aiko
Aiko now has progressed to the point it is a stand-alone project, and has it own web-site and Google Group for email ... specifically for hardware/software documentation and discussions.
Description
A small modular, event-driven framework for structuring Arduino sketches, such that individual device drivers can be easily componentized and combined into a single application. The goal is to be able to use Aiko in either standalone "high-performance" Arduino applications or in broader distributed networks utilizing many Ardunios (and other embedded devices).
The motivation for Aiko came from two observations ...
- A large number of existing Arduino examples used delay loops and weren't designed to be modular. This meant that combining example code fragments often required a complete re-write of the original example code.
- The original usage of the Arduino platform didn't place a high priority on accuracy and precision of real-time event handling, or communications with multiple Arduinos and multiple host computer systems.
These issues are particularly problematic when there is a desire to share and/or re-use component-based software. Especially in more demanding applications like rocketry avionics or robust home automation systems.
The intended outcome is that Aiko will provide a means by which HackerSpace members can create and share high-quality, modular code for embedded devices and applications. A more detailed description can be found on the Aiko web page.
A simple example
#include <AikoEvents.h>
using namespace Aiko;
byte status = LOW;
void setup() {
pinMode(13, OUTPUT);
Events.addHandler(blink, 1000); // Every 1000ms
}
void loop() {
Events.loop();
}
void blink() {
digitalWrite(13, status);
status = ! status;
}
External links
- Aiko source code repository (GitHub)
- Arduino and Aiko description (geekscape.org)
Usage
- Practical Arduino projects, e.g. TimeLapseControllerAiko
- Rocket Avionics - Class G
- Smart Energy Groups (Home Energy Manager) - API demonstration using Arduinos