Devices for I2C bus communication
The Inter-integrated Circuit (I2C) Protocol is a protocol intended to allow multiple “slave” digital integrated circuits (“chips”) to communicate with one or more “master” chips. Like the Serial Peripheral Interface (SPI), it is only intended for short distance communications within a single device. Like Asynchronous Serial Interfaces (such as RS-232 or UARTs), it only requires two signal wires to exchange information.
A wide range of low-cost integrated devices have become available - that can be simply interfaced to micro controllers via the I2C protocol. These devices provide useful functions for a wide range of applications. XOD provides a library of nodes with low level functions (https://xod.io/libs/xod/i2c/) that can be used to create custom interfaces for these devices. Additional documentation for XOD can be found at https://xod.io/docs/
Update: Check out Victor Nakoryakov’s guide to I2C communication basics at: https://xod.io/docs/guide/i2c/ (13Dec2018)
Sparkfun guide to I2C communication protocol: https://learn.sparkfun.com/tutorials/i2c
I2C communication basics: https://www.electronicshub.org/basics-i2c-communication/
I2C primer: https://www.i2c-bus.org
Seeed Studio wiki Arduino Software I2C user guide: http://wiki.seeedstudio.com/Arduino_Software_I2C_user_guide/
Making I2C peripherals
How to build your own I2C peripherals: http://www.technoblogy.com/show?1G29
Building a multi-sensor device based on GY-80 chip: https://howtomechatronics.com/tutorials/arduino/how-i2c-communication-works-and-how-to-use-it-with-arduino/
Sparkfun have developed a modular connector system for I2C, and have a ecosystem of components and devices that can be used to build slave devices, with a wide variety of sensors, actuators and displays: https://www.sparkfun.com/qwiic. There are a number of ways that the modular I2C connectors can be integrated into custom circuits, with adapters, Arduino/RasPi shields and cable adapters. This allows access to a number of sophisticated sensor boards, or could be used as a physical interface to bespoke slave devices.
Hardware suppliers are providing access to a growing nmber of I2C devices, which provide a wide range of interesting functions - with a unified electrical interface and can be daisy-chained. Examples are shown below - and a these types of devices on breakout boards can be found online, through eBay, AliExpress, DHgate, etc.
I2C Laser time-of-flight distance sensors
Fully integrated miniature module, Emitter: 940 nm invisible laser (Class1), SPAD (single photon avalanche diode) receiving array with integrated lens, Low-power microcontroller running advanced digital firmware, Fast and accurate long distance ranging, Up to 60cm, 200cm or 400 cm distance measurements with different devices, Up to 50 Hz ranging frequency, Typical full field-of-view (FoV): 27 °, Programmable region-of-interest (ROI) size on the receiving array, allowing the sensor FoV to be reduced, Programmable ROI position on the receiving array, providing multizone operation control from the host.
Details, including spec sheets:
VL6180X: measures up to 0.6m
VL53L0X: data sheets and Arduino support
Details of Arduino drivers architecture:
https://www.robot-r-us.com/vmchk/sensor-laser/vl53l0x-mini-lidar-time-of-flight-distance-sensor-carrier-w/ - excellent collection of information used to build a standard Arduino IDE driver library.