• Stars
    star
    156
  • Rank 238,249 (Top 5 %)
  • Language
    C++
  • Created over 15 years ago
  • Updated about 12 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Simple framework for allowing Arduino applications / examples / libraries to be built in a modular, event-driven fashion. Aiko enables more events and less delay()s !

Aiko: Arduino Framework

This project is part of the Aiko Platform

Contents

Introduction ------------ 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.

Aiko allows you to write event-driven code:

#include <AikoEvents.h>
using namespace Aiko;

int ledPin = 13;

void setup() {
  pinMode(ledPin, OUTPUT);
  Events.addHandler(blink, 1000);  // Every 1000ms
}

void loop() {
  Events.loop();
}

void blink() {
  static boolean on = HIGH;
  digitalWrite(ledPin, on);
  on = !on;
}

Writing individual device drivers as event-driven functions makes it simpler to create device specific modules that can be shared with others and easier to then combine and integrate them with less code changes.

Community --------- Please join the developer community on the [Aiko-Platform Google Group](http://groups.google.com/group/aiko-platform) and subscribe to the email list.

Report bugs on our GitHub bug tracker

Download -------- The Aiko Arduino framework is a library that requires the Arduino IDE or compiler tool chain. Feedback and issues ------------------- Tracking is managed via GitHub ... Installation ------------ Change into your Arduino libraries folder and use git to clone the project.

On a Mac this looks like:

cd /Applications/arduino-0022/hardware/libraries
git clone git://github.com/geekscape/aiko_arduino.git

On Linux, this will directory will be wherever you install your Arduino software.

Alternatively you can download a tarball or ZIP archive from the Aiko repository by clicking the "download" link at:

http://github.com/geekscape/aiko_arduino/tree/master

Note: Since Arduino IDE 0017, you can create a "libraries/" directory and "git clone" the "aiko_arduino" repository in that directory.

Upgrading --------- To upgrade to the latest version:
cd /Applications/arduino-0022/hardware/libraries/aiko_arduino
git pull
make clean

(If you're on a Mac, you'll need XCode installed.)

Modules ------- - **Callback** - Easy to use function and method callbacks. - **Events** - Schedule regular callbacks so you can easily deal with a bunch of devices connected to your Arduino. - **SExpression** - Parse simple SExpressions. Think of this as the Arduino equivalent of JSON. - **Timing** - Accurate timing, including better replacements for the standard Arduino timing functions.

See the corresponding files in the docs directory for more info on each module.

Known problems -------------- - TO DO

Written by Andy Gelme and Pete Yandell.

Copyright (C) 2009 by Geekscape Pty. Ltd.

Copyright (C) 2009 by Pete Yandell.

Released under the GPLv3 license (dual-licensed).

More Repositories

1

mqtt_lua

MQTT Client library for the Lua language
Lua
139
star
2

nodemcu_esp8266

NodeMCU Lua examples for the ESP8266 Wi-Fi module
Lua
65
star
3

aiko_engine_mp

microPython event based engine supporting network messages (MQTT), times and various hardware drivers
Python
22
star
4

nodebot_ai

Jupyter Notebook
18
star
5

aiko_engine

Embedded Lisp interpreter for distributed message handling
C
10
star
6

aiko_services

Distributed service framework using asynchronous messages supporting IoT, Machine Learning and Video
Python
10
star
7

aiko_mobsendat

Rocket avionics for MobSenDat (Arduino based telemetry board)
Java
8
star
8

aiko_gateway

Simple server for routing and aggregating messages between IP networks and mesh networks for WAN, LAN and PAN.
Lua
6
star
9

Aiko

Original Aiko repository is now broken out into individual projects (see readme.markdown)
4
star
10

aiko_openlab

Educational application with graphical LCD for general purpose input / output, waveform generation and display
Java
4
star
11

Cockatoo

ARDrone Parrot (quadcopter) GUI and proxy-server
Java
4
star
12

aiko_runtime

Various scripts, configuration and other stuff to make a running Aiko environment
Shell
3
star
13

aiko_pebble_v2

Arduino sketch for Pebble v2 Arduino shield hardware
Arduino
3
star
14

aiko_mqtt_lcd

Arduino sketch for LCD shield interacting via MQTT
Arduino
3
star
15

aiko_pebble

Arduino sketch for Pebble Arduino shield hardware
Java
3
star
16

autonomous_vehicle

Self-driving (scale model) car project: Hardware build and software
Python
3
star
17

stk500boot_atmega256rfr2

Changes to the standard STK500 bootloader to support the ATMega256RFR2 (using by the MeshThing).
C
2
star
18

Meemplex

Java
2
star
19

MashQL

Conistent means for accessing open data sets, specifically for Australian GovHack
2
star
20

lifx_c

C implementation of the publicly documented LIFX protocol
C
2
star
21

aiko_thermostat

Thermostat based on Arduino with LCD, thermometer and relay (such as the Pebble V1 shield)
1
star
22

phonegap-test

1
star
23

Cloud9-Test

1
star
24

hackers_cookbook

Open Source Hackers CookBook (OSHCB)
1
star
25

rgb_led

Freetronics RGB LED example code
Arduino
1
star
26

android_service

Java
1
star
27

geekscape.github.com

Geekscape GitHub User web pages
1
star
28

android_ui

Java
1
star
29

k9_arduino

K9: Doctor Who's robotic dog
Arduino
1
star
30

geekscape.github.io

Geekscape web-site
SCSS
1
star