The conventional way of using Arduino is by making a program in Arduino IDE and uploading it on an Arduino-based device. Every time even for doing a small change or to test your robot with different parameters, we need to plug in the USB cable and re-program. It happens that we need to debug or tune some part of your project and hence have to program it. To cater to this, evive introduces a novel way of menu-based approach to programming. It is preloaded with many utility functions while the user can add user-defined functions. (If you upload any other code, this pre-loaded firmware will be erased, but you can upload it again with this program). It gives you the ability to change your programs in real-time (although you can use evive normally as Arduino MEGA). Using the user-defined function, the user can add multiple custom codes, which can run the same as the loop function in Arduino IDE.
evive’s menu gives an intuitive textual interface to users. It is programmed using Arduino IDE along with some AVR commands. The menu has a tree structure. On the start-up screen, the list of basic utility functions like controlling motors or servos using inbuilt hardware (switches, potentiometer, etc.), sensing currents and voltages, evive’s mini oscilloscope, Arduino pin states, function generator, data logging, and user-defined functions. Also, the internal battery level and variable voltage value are displayed on the top status bar. The menu item’s having the following sub-menus are indicated. Using a joystick (5-way Navigation key), the user can scroll across the menu item using up and down keys, or traverse to the following sub-menus (or select the menu function) using the right key, or revert back to the top-level menu using the left key. Any time the function is running, the user can get back to the menu using center key (in most cases or as per user’s requirement).
evive includes hardware interaction and plug & a playing interface, which can be used to control many basic utilities like controlling motors, servos, stepper, relays, solenoid valves for pneumatics using tactile switches slide switches, and potentiometers. Also, the user can use the inbuilt hardware (switches and potentiometers) to change/define the states of Digital I/O Pins or PWM output. Switches and potentiometers are internally connected to Arduino MEGA pins as control inputs and motor drivers are connected for output at plug & a play interface. The state or values are displayed on the screen.
evive can be used as a voltmeter or an ammeter. It uses a very accurate 24-bit dual channel ADC IC for sensing from Analog Devices (ADE7912). There are two channels for data acquisition namely Probe I/V and Probe V. The Probe I/V can be used to sense currents or voltage as per the Jumper selection. The current sensing has an accuracy of 3mA with a range of -3A to +3A, while in voltage mode, the accuracy is of 3mV with a range of -5V to +5V. The Probe V can be used for higher voltage sensing in the range of -30V to +30V with an accuracy of 10mV.
evive can be used as a mini oscilloscope to visualize voltage and current measurements. It has lots of functions like scaling voltage level, time scaling to see the reading in a better way, the trigger to start the measurement at some set value, scanning modes like single or continuous, offset, save readings to SD card and send data to the computer. It uses a very accurate 24-bit dual channel ADC IC for sensing from Analog Devices (ADE7912). There are two channels for data acquisition namely Probe I/V and Probe V. The Probe I/V can be used to sense currents or voltage as per the Jumper selection. The maximum sensing frequency is about 1kHz. The current sensing has an accuracy of 3mA with a range of -3A to +3A, while in voltage mode, the accuracy is of 3mV with a range of -5V to +5V. The Probe V can be used for higher voltage sensing in the range of -30V to +30V with an accuracy of 10mV.
evive can be used as a serial monitor for applications like displaying received data at any serial port of Arduino MEGA or what data is sent to it via USB Jack. The data (numbers or characters) will be displayed on the TFT screen. Also, the user can print data on the screen using the serialTft.print(str) like functions for any Arduino code or User Defined Functions. (Under development).
Sometimes, it is required to monitor the states of either input pins or output pins (ports). This menu will show the current states of all the available Digital Input-output pins and Analog Input Pins.
evive has a built-in 12-bit DAC using IC MCP4725 (IIC Address 0x60 or 0x62). It is controlled using IIC (or I2C) commands using Arduino MEGA with an output range of 0 to 5V. Many inbuilt functions to generate waves like sine, square, triangular or saw-tooth shapes are provided with the option to control amplitude between 0 to 5V and frequency up to a few hundred Hertz. It’s limited to 8.5Hz ~ 500Hz. The user can set the desired output voltage and the desired frequency using potentiometer knobs.
Generally, while using Arduino one face problem of uploading different codes again and again as he changes some part of the codes. Using evive’s user-defined function submenu, he can store different Arduino programs at once. You can switch to different programs while navigating inside the menu.
In conclusion, evive is an all–in–one embedded system that simplifies the process of building and debugging robot applications. It has a menu–based approach which makes it easy to use and understand. The user–defined functions allow you to store multiple programs and switch between them without the need to re–upload. The various pre–loaded utility functions make it possible to interact with the hardware and monitor the pin states. The mini oscilloscope and beta function generator lets you visualize and control the voltage and current signals. All these features make evive a perfect tool for robotics applications.