elixir_ale - Interact with hardware in Elixir - GPIOs, I2C and SPI

  •        11

elixir_ale provides high level abstractions for interfacing to GPIOs, I2C buses and SPI peripherals on Linux platforms. Internally, it uses the Linux sysclass interface so that it does not require platform-dependent code. elixir_ale works great with LEDs, buttons, many kinds of sensors, and simple control of motors. In general, if a device requires high speed transactions or has hard real-time constraints in its interactions, this is not the right library. For those devices, it is recommended to look at other driver options, such as using a Linux kernel driver.




Related Projects

SwiftyGPIO - A Swift library for hardware projects on Linux/ARM boards with support for GPIOs/SPI/I2C/PWM/UART/1Wire

A Swift library for hardware projects on Linux/ARM boards with support for GPIOs/SPI/I2C/PWM/UART/1Wire. This library provides an easy way to interact with external sensors and devices using the digital GPIOs, SPI/I2C interfaces, 1-Wire buses, PWM signals and serial ports that boards like the Raspberry Pi provide, on Linux using Swift.

node-rpio - Raspberry Pi GPIO library for node.js

This is a high performance node.js addon which provides access to the Raspberry Pi GPIO interface, supporting regular GPIO as well as i²c, PWM, and SPI. Newer versions of node.js require you to install the GCC 4.8 packages for C++11 support. If you see compilation problems related to C++11, this is the likely cause.

nerves_system_br - Platform infrastructure for embedded Erlang/OTP, Elixir, and LFE projects

Nerves System BR provides the common logic for building Nerves Systems using Buildroot. If you're new to Nerves, you probably don't want to look at this repository. Please check out the official documentation. It is highly recommended that all users follow the official documentation on using systems. However, advanced users have found the information to be helpful, so it hasn't been deleted. This ONLY works on Linux.

quick2wire-python-api - Python API for controlling GPIO and I2C devices connected to the Raspberry Pi

A Python library for controlling the hardware attached to the Raspberry Pi's header pins, without running as the root user. The I2C and SPI API depend on support in the kernel. Recent raspbian kernels should be fine.

elixir-phoenix-realworld-example-app - Exemplary real world application built with Elixir + Phoenix

Elixir (Phoenix) codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec and API. This codebase was created to demonstrate a fully fledged backend application built with Elixir and Phoenix including CRUD operations, authentication, routing, pagination, and more.

intellij-elixir - Elixir plugin for JetBrain's IntelliJ Platform (including Rubymine)

This is a plugin that adds support for Elixir to JetBrains IDEs. The plugin works both in the rich IDEs that allow alternative language SDK selection and small IDEs that are language specific. The rich IDEs work best for IntelliJ Elixir because only in the rich IDEs can have an Elixir SDK set as the Project SDK. In all small IDEs, the native language SDK is always there, which makes anything that uses the SDK, such as running elixir, erl, or mix more complicated both internally and externally in the configuration you have to setup.

ElixirBooks - List of Elixir books

Official Elixir starting guide that will take you through the language foundations. You will also explore how to build projects with Mix and OTP, and it will introduce you to more advanvced techniques suchs as meta-programming. Adoption is more than programming. Elixir is an exciting new language, but to successfully get your application from start to finish, you’re going to need to know more than just the language. You need the case studies and strategies in this book. Learn the best practices for the whole life of your application, from design and team-building, to managing stakeholders, to deployment and monitoring. Go beyond the syntax and the tools to learn the techniques you need to develop your Elixir application from concept to production.

elixir-ls - A frontend-independent IDE "smartness" server for Elixir

The Elixir Language Server provides a server that runs in the background, providing IDEs, editors, and other tools with information about Elixir Mix projects. It adheres to the Language Server Protocol, a standard for frontend-independent IDE support. Debugger integration is accomplished through the similar VS Code Debug Protocol. You may want to install Elixir and Erlang from source, using the kiex and kerl tools. This will let you go-to-definition for core Elixir and Erlang modules.

elixir-koans - Elixir learning exercises

Elixir koans is a fun way to get started with the elixir programming language. It is a tour of the most important features and idiomatic usage of the language. You need to have Elixir installed. Please refer to the official guide for instructions.

elixirscript - Converts Elixir to JavaScript

The goal is to convert a subset (or full set) of Elixir code to JavaScript, providing the ability to write JavaScript in Elixir. This is done by taking the Elixir AST and converting it into JavaScript AST and then to JavaScript code. This is done using the Elixir-ESTree library.

Elixir - Dynamic, Functional Language designed for building scalable and maintainable application

Elixir is a dynamic, functional language designed for building scalable and maintainable applications. Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.

grpc-elixir - The Elixir implementation of gRPC

The Elixir implementation of gRPC. You can start the gRPC server as a supervised process. First, add GRPC.Server.Supervisor to your supervision tree.

elixir-companies - A list of companies currently using Elixir in production.

A curated list of companies using Elixir in production, organized by industry. Please see CONTRIBUTING for details.

Elixir-Slack - Slack real time messaging and web API client in Elixir

This is a Slack Real Time Messaging API client for Elixir. You'll need a Slack API token which can be retrieved from the Web API page or by creating a new bot integration. Add Slack to your mix.exs dependencies function.

distillery - A pure Elixir implementation of release packaging functionality for the Erlang VM

Every alchemist requires good tools, and one of the greatest tools in the alchemist's disposal is the distillery. The purpose of the distillery is to take something and break it down to its component parts, reassembling it into something better, more powerful. That is exactly what this project does - it takes your Mix project and produces an Erlang/OTP release, a distilled form of your raw application's components; a single package which can be deployed anywhere, independently of an Erlang/Elixir installation. No dependencies, no hassle. This is a pure-Elixir, dependency-free implementation of release generation for Elixir projects. It is currently a standalone package, but may be integrated into Mix at some point in the future.

mock - Mocking library for Elixir language

A mocking library for the Elixir language. We use the Erlang meck library to provide module mocking functionality for Elixir. It uses macros in Elixir to expose the functionality in a convenient manner for integrating in Elixir tests.

thesis-phoenix - A lightweight, bolt-on, intuitive content editing system for Elixir/Phoenix websites

If you are having problems, view README_INSTALL.md for manual instructions. This install script will add Thesis to your config/config.exs and lib/yourapp_web.ex, as well as generate migrations and an authorization module in your lib/thesis_auth.ex.

periph - Go·Hardware·Lean

periph was initiated with ❤️️ and passion by Marc-Antoine Ruel. The full list of contributors is in AUTHORS and CONTRIBUTORS.This is not an official Google product (experimental or otherwise), it is just code that happens to be owned by Google.

mraa - Linux Library for low speed IO Communication in C with bindings for C++, Python, Node

Libmraa is a C/C++ library with bindings to Java, Python and JavaScript to interface with the IO on Galileo, Edison & other platforms, with a structured and sane API where port names/numbering matches the board that you are on. Use of libmraa does not tie you to specific hardware with board detection done at runtime you can create portable code that will work across the supported platforms. The intent is to make it easier for developers and sensor manufacturers to map their sensors & actuators on top of supported hardware and to allow control of low level communication protocol by high level languages & constructs.