• Stars
    star
    339
  • Rank 121,646 (Top 3 %)
  • Language
    C++
  • License
    GNU Lesser Genera...
  • Created over 11 years ago
  • Updated over 4 years ago

Reviews

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

Repository Details

An Object-Oriented Platform for Arduino/AVR

Che Cosa?

Cosa is an object-oriented platform for Arduino. It replaces the Arduino and Wiring library with a large set of integrated classes that support the full range of AVR/ATmega/ATtiny internal hardware modules; all pin modes, Digital, and Analog Pins, External and Pin Change Interrupts, Analog Comparator, PWM, Watchdog, Timer0/Timer2 (RTT), Timer1 (Servo/Tone/VWI), Input Capture, UART, USI, SPI, TWI and EEPROM. Cosa supports several programming paradigms including Multi-Tasking, Event Driven Programming and UML Capsules/Actors. Cosa contains over 200 classes and nearly as many example sketches to get started.

Please note that Cosa is not an Arduino core; Cosa does not implement the Arduino API. Sketches written with Cosa may be built with the Arduino IDE or with the command line based build support for Linux.

Cosa supports the Arduino Boards Manager install. Simply install by adding the Cosa Package URL to the Additional Boards Manager URLs in the IDE Preferences; https://raw.githubusercontent.com/mikaelpatel/Cosa/master/package_cosa_index.json

More details are available:

Cosa API

The API documentation is available:

The documentation contains a full hyperlinked description of all functions in Cosa together with UML graphs of the class hierarchy, include dependencies, and much more.

The provided documentation is generated with doxygen and may also be generated for users source code if the Cosa documentation style is adapted. See the Doxyfile for configuration of doxygen.

Supported Boards and MCUs

Cosa has built-in support for a large number of boards and clones/vendors. It also supports breadboards and custom-design boards with AVR MCUs.

References

  1. D.tools, http://hci.stanford.edu/research/dtools/
  2. Processing, http://processing.org/
  3. Wiring, http://wiring.org.co/
  4. Quantum Leaps, http://www.state-machine.com/
  5. Concurrency.cc, http://concurrency.cc/
  6. Arduino, http://www.arduino.cc/
  7. Firmata, http://www.firmata.org/wiki/Main_Page
  8. LilyPad, http://web.media.mit.edu/~leah/LilyPad/
  9. Adafruit, http://www.adafruit.com/
  10. Microduino, http://www.microduino.cc/
  11. Jeelabs, http://jeelabs.org/
  12. Teensy, https://www.pjrc.com/
  13. Pinoccio, https://pinocc.io/
  14. LowPowerLab, http://lowpowerlab.com/
  15. Anarduino, http://www.anarduino.com/
  16. Wicked Device, http://shop.wickeddevice.com/
  17. MQTT, http://mqtt.org/
  18. ThingSpeak, https://thingspeak.com/

Naming

  • "Ciao"; interjection hello!, goodbye!.
  • "Che cosa"; pronoun; what.
  • "Cosa"; noun thing, matter; pronoun; what?, what!.
  • "Cosa fai"; what do you do?
  • "Nucleo"; kernel.
  • "Rifare"; remake.
  • "Rete"; network.
  • "Tutto"; all.

Stay tuned

Please follow the development of this project on the blog http://cosa-arduino.blogspot.se and on the Arduino forum, http://arduino.cc/forum/index.php/topic,150299.0.html.

Supporting this project

There are many ways to support this project.

  1. Build and test.
  2. Fix bugs and take part in the development work.
  3. Write blog or instructions on how you have used Cosa in your project(s).
  4. Donate hardware; Arduino boards and shields. This is especially welcome as with the growning number of device drivers and supported modules that require hardware setups which takes a lot of time if breadboarded.
  5. Or donations through paypal (use email address).

If you are planning to use Cosa you are encouraged to support the project to help keep the software at high quality and follow changes in tooling, and above all open-source.

Please note that the issues list should be used mainly for bug reports and enhancement requests. Design and implementation support is only provided to contributing projects.

More Repositories

1

Arduino-Scheduler

Portable Cooperative Multi-tasking Scheduler for Arduino
C++
161
star
2

Arduino-OWI

One Wire Interface (OWI) library for Arduino
C++
61
star
3

Arduino-GPIO

General Purpose Input/Output (GPIO) library for Arduino
C++
47
star
4

Arduino-FVM

Byte Token Threaded Forth Virtual Machine (FVM) for Arduino
C++
37
star
5

Arduino-Debug

On-target sketch debugger for Arduino
C++
20
star
6

Arduino-Shell

RPN Postscript/Forth Command Shell for Arduino
C++
19
star
7

Arduino-TWI

Two-Wire Interface (TWI) library for Arduino
C++
17
star
8

Arduino-Storage

External Memory Manager (Storage) library for Arduino
C++
9
star
9

Sketchbook

Arduino snippets that demonstrate how to program or solve a specific problem
C++
8
star
10

Arduino-SPI

Serial Peripheral Interface (SPI) library for Arduino.
C++
8
star
11

Arduino-Timemark

Timemark handler for Arduino
C++
5
star
12

Arduino-LCD

LCD library for Arduino
C++
4
star
13

Cosa-Dolce

Object-Oriented Programming with Cosa/Education and Teaching Support.
Arduino
4
star
14

vfm

Virtual Forth Machine Project
C
4
star
15

Arduino-RTC

Real-Time Clock (RTC) library for Arduino
C++
4
star
16

Cosa-MQTT

MQTT for Cosa Arduino OOP Framework
C++
3
star
17

Cosa-SNMP

SNMP Agent for Cosa Arduino OOP Framework
C++
3
star
18

parse

Yet another top down parser generator
C
3
star
19

Cosa-Domotica

Home Automation with the Cosa Arduino OOP Framework
Arduino
3
star
20

Cosa-ProtocolBuffer

Google Protocol Buffers for Cosa Arduino OOP Framework
C++
2
star
21

Cosa-NEXA

NEXA Wireless Lighting Control support library for Cosa Arduino OOP Framework
C++
2
star
22

Cosa-Shell

Command interpreter (shell) support library for Cosa Arduino OOP Framework
C++
1
star
23

Cosa-AVR

AVR ISP support for Cosa Arduino OOP Framework
C++
1
star