During many years which I am learning robotics I used multiple platforms. I started using Lego NXT later upgraded to Lego EV3 and finally switched to Arduino and Raspberry pi. Many people think that switching from Lego to Arduino is easy and when they try to do it they fail miserably due to lack of understanding of hardware as well as new programming language (typically C/C++). Worst thing is that they buy expensive hardware like motors and sensors even though they already have them and used them in the past(I am talking about Lego sensors and motors). Using this hardware has many advantages for beginner over buying something else. Firstly it is much cheaper because you do not have to buy everything. Secondly it is easy to build on (everybody can build a robot from lego but not everybody knows how to use CNC router or lathe or 3D printer to create parts that can be assembled). And last but not least Lego most lego sensors are pretty good at job they are supposed to do ( I would say only exception is Gyro which isn't as good as MPU6050 :D ). Only problem was that nobody that I could find was able to connect them to Arduino and write some code to read them. So one day I decided to hack them using logic analyzer and research from internet. I had sensors at home and logic analyser as well so only question that remained was how long would it take. It turned out that about ten to fifteen hours was enough to determine their pinout, interfaces used (I2C and UART) and figure out their protocol. I used them in my robots for some time but there was a problem. You have to send them an acknowledgement bit every 300ms which is hard to do if you are a beginner, so I decided to build board with atmega328 which would handle data reading and would act as sensor over I2C. Its address would be changeable by user in order to connect more then 1 sensor only. Currently I did not publish PCB design because I wanted to test it but here are two links which helped me the most (https://www.dexterindustries.com/wp-content/uploads/2014/05/Breadboard-Adapter-Sensor.gif, https://www.wayneandlayne.com/bricktronics/design-and-theory/).
Currently I am still waiting for PCBs from china so demo videos are made using two Arduino nano boards. First Arduino nano handles communication with sensor and sends acknowledgment bit every 300ms. In final product this would be handled by Lego sensor adapter board. Second Arduino can read data in anytime using I2C and it can also set multiple sensor modes if sensor supports it. I2C address of every sensor module can be set without flashing new program using jumper Addr and second Arduino.
In the future I would like to create similar board which would use I2C to control EV3 motors with encoder feedback. I would like to opensource this project when it is done as well as create tindie store for it where beginners could buy preassembled PCB for Lego sensor and motor adapter.
I will update this post when I will assemble PCBs.