{"id":16219619,"url":"https://github.com/montoyamoraga/tinytrainable","last_synced_at":"2025-03-19T11:30:38.168Z","repository":{"id":51767779,"uuid":"318883543","full_name":"montoyamoraga/TinyTrainable","owner":"montoyamoraga","description":"Arduino Library for building Tiny Trainable Instruments.","archived":false,"fork":false,"pushed_at":"2023-02-05T05:49:15.000Z","size":7397,"stargazers_count":5,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-17T06:35:32.779Z","etag":null,"topics":["arduino","arduino-library","media-arts","physical-computing","tinyml"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/montoyamoraga.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-05T20:32:55.000Z","updated_at":"2025-01-25T22:11:46.000Z","dependencies_parsed_at":"2024-10-27T20:31:47.914Z","dependency_job_id":"0d9f950e-1510-49ae-a6da-25a6a33ba28c","html_url":"https://github.com/montoyamoraga/TinyTrainable","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/montoyamoraga%2FTinyTrainable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/montoyamoraga%2FTinyTrainable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/montoyamoraga%2FTinyTrainable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/montoyamoraga%2FTinyTrainable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/montoyamoraga","download_url":"https://codeload.github.com/montoyamoraga/TinyTrainable/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244416831,"owners_count":20449348,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","arduino-library","media-arts","physical-computing","tinyml"],"created_at":"2024-10-10T11:55:14.096Z","updated_at":"2025-03-19T11:30:37.224Z","avatar_url":"https://github.com/montoyamoraga.png","language":"C","readme":"# TinyTrainable\r\n\r\n## About\r\n\r\nTinyTrainable is an Arduino library, part of the project Tiny Trainable Instruments [https://github.com/montoyamoraga/tiny-trainable-instruments](https://github.com/montoyamoraga/tiny-trainable-instruments), created by Aarón Montoya-Moraga, a research assistant at MIT Media Lab's Opera of the Future and Future Sketches research groups.\r\n\r\nThis library is being written between December 2020 and August 2021, with help from undergrad researchers Peter Tone and Maxwell Wang.\r\n\r\n## Distribution\r\n\r\nThis Arduino library is available on this repository [https://github.com/montoyamoraga/TinyTrainable](https://github.com/montoyamoraga/TinyTrainable), and can also be installed on the Arduino IDE.\r\n\r\n## Dependencies\r\n\r\nThe dependencies of this library are specified on the [library.properties](library.properties) file, which include:\r\n\r\n* [Adafruit GFX Library](https://github.com/adafruit/Adafruit-GFX-Library): for output with screen.\r\n* [Adafruit SSD1306](https://github.com/adafruit/Adafruit_SSD1306): for output with screen.\r\n* [Adafruit Thermal Printer Library](https://github.com/adafruit/Adafruit-Thermal-Printer-Library): for outputs with Adafruit Thermal Printer.\r\n* [Arduino_APDS9960](https://github.com/arduino-libraries/Arduino_APDS9960): APDS9960 sensor, to read gestures, color, proximity.\r\n* [Arduino_KNN](https://github.com/arduino-libraries/Arduino_KNN): for machine learning with K-Nearest Neighbors algorithm.\r\n* [Arduino_LSM9DS1](https://github.com/arduino-libraries/Arduino_LSM9DS1): LSM9DS1 IMU sensor, to read accelerometer, magnetometer, gyroscope.\r\n* [Servo](https://github.com/arduino-libraries/Servo): output with servo motors.\r\n\r\nThere is an additional dependency that must be installed manually:\r\n\r\n* [Arduino_TensorFlowLite](https://github.com/tensorflow/tflite-micro-arduino-examples): for machine learning with TensorFlow.\r\n\r\n## Contents\r\n\r\nThis repository is distributed in two branches:\r\n\r\n* gh-pages: static website documentation generated with Doxygen, deployed at [https://montoyamoraga.github.io/TinyTrainable](https://montoyamoraga.github.io/TinyTrainable).\r\n* main: source code, code examples, and Ardiuino files for distribution.\r\n\r\nThe contents of the main branch are:\r\n\r\n* [assets/](./assets/): additional assets for the library, including machine learning trained models\r\n* [examples/](./examples/): code\r\n* [src/](./src/)\r\n* [.gitignore](./.gitignore)\r\n* [./CODE_OF_CONDUCT.md](././CODE_OF_CONDUCT.md)\r\n* [CONTRIBUTING.md](./CONTRIBUTING.md)\r\n* [Doxyfile](./Doxyfile)\r\n* [keywords.txt](./keywords.txt)\r\n* [library.properties](./library.properties)\r\n* [LICENSE](./LICENSE)\r\n* [README.md](./README.md)\r\n* [README.pdf](./README.pdf)\r\n\r\n### Source code\r\n\r\nThe source code is distributed in the following files and folders:\r\n\r\n* TinyTrainable.h and TinyTrainable.cpp: base classes for the library.\r\n* inputs/: base classes for each input.\r\n* outputs/: base classes for each output.\r\n* tensorflow_speech: additional code for speech recognition, authored by the TensorFlow team.\r\n\r\n### Examples\r\n\r\nThe examples are distributed in 4 folders, ordered alphabetically and in terms of complexity:\r\n\r\n* check: no input, intended to check the wiring of the instruments.\r\n* color: color input.\r\n* gesture: gesture input.\r\n* speech: speech input.\r\n\r\nEach of these folders contains one example for each of the available outputs:\r\n\r\n* buzzer\r\n* led\r\n* midi\r\n* printer\r\n* screen\r\n* serial\r\n* servo\r\n\r\nThere is one additional helper example called get_gesture_data, for capturing gesture data for creating your own gesture database.\r\n\r\n## Hardware\r\n\r\nThis library is intended to be used with the microcontroller Arduino Nano 33 BLE Sense, and the bill of materials available at [https://github.com/montoyamoraga/tiny-trainable-instruments/blob/main/docs/0-bill-of-materials.md](https://github.com/montoyamoraga/tiny-trainable-instruments/blob/main/docs/0-bill-of-materials.md)\r\n\r\n## Releases\r\n\r\n* [v0.0.1](https://github.com/montoyamoraga/TinyTrainable/releases/tag/v0.0.1): 2020 December 07, placeholder alpha release, for testing the Arduino library ecosystem.\r\n* [v0.1.0](https://github.com/montoyamoraga/TinyTrainable/releases/tag/v0.1.0): 2021 January 12, alpha release with first draft versions of each class, and some examples.\r\n* [v0.2.0](https://github.com/montoyamoraga/TinyTrainable/releases/tag/v0.2.0): 2021 Sunday June 20, beta release for workshops.\r\n\r\n## License\r\n\r\nMIT\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmontoyamoraga%2Ftinytrainable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmontoyamoraga%2Ftinytrainable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmontoyamoraga%2Ftinytrainable/lists"}