MataVision transforms your ESP32 modules into easy-to-use vision systems, providing multiple windows classification and object tracking at the edge. At its core, MataVision consists of two main components:
1. MataVision Firmware: This lightweight firmware is flashed onto your ESP32-CAM or ESP32-S3 board, transforming it into a powerful vision system.
2. MataVision iOS App: This intuitive app serves as your command center, allowing you to control and program ESP32 devices.
As with any vision task, collecting good representative images and carefully preparing them is crucial for successful vision training. MataVision includes elaborate, easy-to-use tools for these tasks.
In many practical vision tasks, it is often necessary to incorporate inputs from or output data to external systems. MataVision includes a list of I/O types to enable interaction with some of the common I/O devices.
Finally, we need a method to instruct MataVision on how to integrate all the data from vision and I/O systems into something useful for our application. For this, we devised a minimal programming method.
No, you don’t have to learn a new programming language. It is just basic high school arithmetic and logic. All you need to know are:
1. A MataVision program consists of lines of Simple Logic Instructions (SLI). It executes from top to bottom and will continue to loop over these instructions.
2. An SLI instruction consists of three segments: an input value on the left, a condition in the middle, and one or more output values on the right. When the condition is evaluated to be TRUE, the value on the left will be assigned to the right.
For illustration, the following four example programs will do the same thing: turn ON the LED when the switch is pressed.
```
// Example 1
mySwitch =(True)> myLED
```
```
// Example 2
mySwitch =(1+1>1)> myLED
```
```
// Example 3
mySwitch =(1)> myLED
```
```
// Example 4
mySwitch => myLED
```
Note: Programming in MataVision is meant to allow basic controls and interactions with I/O devices. It is not suitable for creating complex applications.
A Typical Workflow
1. Attaching a camera module, such as OV7670 or OV2640, to the ESP32.
2. Optionally attaching a DS3231 RTC (Real Time Clock) module to the ESP32.
3. Flashing the MataVision Firmware onto the ESP32.
4. Connecting the MataVision iOS App to the ESP32.
5. Collecting sample images for object classification or tracking training.
6. Creating classification objects by grouping images for each class.
7. Creating object tracking objects by drawing bounding boxes on sample images.
8. Creating supporting I/O objects.
9. Writing a small program incorporating all values from vision and I/O objects into a single logic unit and uploading it to the ESP32.