Firmata is a protocol that is used to communicate with microcontrollers from any tablet/pc over the serial interface. There are implementations of Firmata for many other platforms too along with Arduino. You can find support for Firmata if you are using any Arduino IDE released after 2008.Use of Firmata lets you access GPIO of Arduino from any host device natively without uploading the sketch each time you change the sketch. You can use Arduino as ADC for your Pi as it doesn't have native ADC pins, you can also interface a whole lot of sensors by the additional GPIO that you will get after connecting the Arduino which eliminates uses of the port expander and ADC ICs to be interfaced with Pi.In this video, I have shown a basic example of blinking the onboard LED of Arduino from Raspberry Pi by using JAVA and for this, we are going to use the firmata4j library.
Firmata4J Library: http://bit.ly/2xixy4K
Jar File of Library:http://bit.ly/2wTZ74C
(Dependency for Firmata4J) JSSC (Java Simple Serial Connector): http://bit.ly/2jm7wYU