awesome-repositories.com
Blog
awesome-repositories.com

Descoperă cele mai bune repository-uri open source cu căutare AI.

ExploreazăCăutări recomandateAlternative open-sourceSoftware self-hostedBlogHartă site
ProiectDespreCum realizăm clasamentulPresăServer MCP
LegalConfidențialitateTermeni
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
jrowberg avatar

jrowberg/i2cdevlib

0
View on GitHub↗
4,251 stele·7,433 fork-uri·C++·4 vizualizăriwww.i2cdevlib.com↗

I2cdevlib

i2cdevlib este o colecție de drivere periferice și straturi de abstractizare hardware concepute pentru dispozitive I2C. Oferă o colecție de drivere pentru senzori, o bază de date cu hărți de registre și un manager de periferice pentru a coordona comunicarea între microcontrolere și componentele hardware.

Proiectul utilizează un strat de abstractizare hardware pentru a decupla logica dispozitivului de hardware-ul specific al microcontrolerului și bibliotecile de fire. Această abstractizare a stratului de transport permite ca aceleași drivere de dispozitiv să rămână portabile pe diferite arhitecturi hardware.

Biblioteca acoperă o gamă largă de integrări hardware, inclusiv senzori de mișcare și inerțiali, monitoare de mediu, ceasuri în timp real și senzori tactili capacitivi. Include, de asemenea, suport pentru expansiunea GPIO, conversia analog-digitală și controlul afișajelor OLED și al contoarelor digitale.

Sistemul include instrumente pentru depanarea protocolului I2C și analiza traficului, permițând corelarea datelor brute de la analizorul logic cu definițiile hărților de registre lizibile pentru oameni.

Features

  • I2C Bus Interfaces - Provides standardized software interfaces for connecting microcontrollers to peripherals via the I2C protocol.
  • Hardware Porting - Adapts the codebase to run across different microprocessor systems by abstracting transport operations.
  • Bus Transport Interfaces - Implements a generic transport interface for bus operations, enabling driver portability across different hardware architectures.
  • Hardware Abstraction Layers - Implements hardware abstraction layers to decouple device driver logic from specific microcontroller hardware.
  • Peripheral Abstractions - Wraps I2C peripheral behaviors into standardized C++ classes to simplify interaction with diverse hardware.
  • Hardware Peripheral Drivers - Provides a collection of specialized driver layers for various I2C sensors and peripherals.
  • I2C Register Maps - Maintains a repository of bitfield definitions and register maps used to generate drivers and analyze bus traffic.
  • Sensor Drivers - Provides a comprehensive set of drivers for reading data from accelerometers, gyroscopes, and pressure sensors.
  • Transport Abstraction Layers - Decouples high-level device logic from low-level hardware communication libraries to ensure portability.
  • Hardware Register Databases - Maintains a comprehensive database of register maps and bitfield definitions for a wide variety of I2C hardware.
  • I2C I/O Expansion - Increases the number of available general-purpose input and output pins via an external 24-bit I2C expander.
  • I2C Port Expanders - Increases available digital input and output pins using external I2C port expanders.
  • Gyroscope Data Capture - Retrieves angular velocity measurements across three axes from a gyroscope sensor via the I2C protocol.
  • Multi-Bus Management - Coordinates multiple communication objects to enable simultaneous interaction with several hardware buses.
  • I2C Traffic Analysis - Analyzes I2C bus traffic and correlates raw data packets with register maps to troubleshoot communication.
  • Inertial Measurement Unit Interfaces - Collects combined acceleration and rotation measurements from 6-axis or 9-axis inertial measurement units.
  • Magnetometer Interfaces - Measures terrestrial magnetism and magnetic flux density across three axes to determine heading and 3D orientation.
  • Real-Time Clock Management - Implements a standardized I2C interface to read and write time and date information to hardware real-time clocks.
  • Register-Map Driver Generation - Automatically produces functional driver code and bitfield access patterns based on predefined hardware register specifications.
  • Register-to-Human Mappings - Provides tools to correlate raw I2C bus traffic with human-readable register map definitions for easier debugging.
  • Triaxial Acceleration Measurement - Provides drivers to retrieve high-resolution 3-axis acceleration and gravity measurements for detecting motion, shock, or tilt.
  • Driver Code Generators - Automatically creates functional management code and bitfield access patterns using defined register map specifications.
  • Bus Traffic Correlation - Correlates raw logic analyzer data with register maps to display human-readable names instead of hexadecimal values.
  • Capacitive Touch Sensing - Provides the ability to read touch and proximity data from capacitive sensors via I2C to detect user interaction.

Istoric stele

Graficul istoricului de stele pentru jrowberg/i2cdevlibGraficul istoricului de stele pentru jrowberg/i2cdevlib

Căutare AI

Explorează mai multe repository-uri excelente

Descrie ce ai nevoie în limbaj simplu — AI-ul sortează mii de proiecte open source selectate în funcție de relevanță.

Start searching with AI

Întrebări frecvente

Ce face jrowberg/i2cdevlib?

i2cdevlib este o colecție de drivere periferice și straturi de abstractizare hardware concepute pentru dispozitive I2C. Oferă o colecție de drivere pentru senzori, o bază de date cu hărți de registre și un manager de periferice pentru a coordona comunicarea între microcontrolere și componentele hardware.

Care sunt principalele funcționalități ale jrowberg/i2cdevlib?

Principalele funcționalități ale jrowberg/i2cdevlib sunt: I2C Bus Interfaces, Hardware Porting, Bus Transport Interfaces, Hardware Abstraction Layers, Peripheral Abstractions, Hardware Peripheral Drivers, I2C Register Maps, Sensor Drivers.

Care sunt câteva alternative open-source pentru jrowberg/i2cdevlib?

Alternativele open-source pentru jrowberg/i2cdevlib includ: raspberrypi/pico-examples — This project is a reference library of firmware examples and a development framework for creating embedded C… rwaldron/johnny-five — Johnny-Five is a JavaScript robotics framework and microcontroller hardware interface designed for programming robots… hybridgroup/gobot — Gobot is a robotics framework for the Go programming language designed for developing robotics, drones, and IoT… petoicamp/opencat-quadruped-robot — OpenCat-Quadruped-Robot is a development framework and motion control API for building four-legged robots. It provides… embassy-rs/embassy — Embassy is an asynchronous framework for microcontrollers that provides a runtime for cooperative multitasking. It… riot-os/riot — RIOT is a real-time operating system designed for resource-constrained microcontrollers. It provides a kernel for…

Alternative open-source pentru I2cdevlib

Proiecte open-source similare, clasificate după numărul de funcționalități comune cu I2cdevlib.
  • raspberrypi/pico-examplesAvatar raspberrypi

    raspberrypi/pico-examples

    3,835Vezi pe GitHub↗

    This project is a reference library of firmware examples and a development framework for creating embedded C applications on the RP2040 microcontroller. It provides a collection of hardware peripheral drivers and foundational patterns for managing system resources in resource-constrained environments. The library features reference implementations for programmable I/O state machines, allowing for the creation of custom hardware-level protocols. It also provides a multicore embedded framework to distribute computational workloads across multiple processor cores using symmetric processing. The

    C
    Vezi pe GitHub↗3,835
  • rwaldron/johnny-fiveAvatar rwaldron

    rwaldron/johnny-five

    13,401Vezi pe GitHub↗

    Johnny-Five is a JavaScript robotics framework and microcontroller hardware interface designed for programming robots and IoT devices. It provides a standardized library for managing pins, motors, and displays across various microcontroller platforms, allowing developers to control sensors and actuators using a consistent JavaScript API. The framework is distinguished by its use of a plugin-based hardware abstraction system, which enables communication with diverse hardware platforms and protocols. It supports real-time hardware manipulation and debugging through a read-eval-print loop that a

    JavaScript1-wireadcarduino
    Vezi pe GitHub↗13,401
  • hybridgroup/gobotAvatar hybridgroup

    hybridgroup/gobot

    9,425Vezi pe GitHub↗

    Gobot is a robotics framework for the Go programming language designed for developing robotics, drones, and IoT applications. It provides a hardware abstraction layer with standardized drivers to interact with GPIO, I2C, SPI, and PWM interfaces across various single-board computers and microcontrollers. The framework functions as an IoT device orchestrator and BLE device manager, enabling the coordination of multiple sensors, actuators, and Bluetooth Low Energy peripherals. It includes specialized interfaces for drone control, allowing for the management of flight maneuvers and video streams

    Goarduinobeaglebonebeaglebone-black
    Vezi pe GitHub↗9,425
  • petoicamp/opencat-quadruped-robotAvatar PetoiCamp

    PetoiCamp/OpenCat-Quadruped-Robot

    4,891Vezi pe GitHub↗

    OpenCat-Quadruped-Robot is a development framework and motion control API for building four-legged robots. It provides a comprehensive environment for quadruped robot development, featuring tools for locomotion gait design, inverse kinematics, and a layered control architecture that separates high-level intelligence from low-level motion. The project distinguishes itself as an embedded AI deployment tool, allowing users to train, quantize, and deploy machine learning models to vision modules for tasks such as object detection and visual target tracking. It further supports complex human-robot

    C++aiarduinoblock-coding
    Vezi pe GitHub↗4,891
  • Vezi toate cele 30 alternative pentru I2cdevlib→