This repository provides the Javino protocol for Raspberry boards. Javino is a serial message's error check protocol for exchanging messages between high-end and low-end IoT devices over serial communication.
When a high-level software needs to act in the environment, it is necessary to transmit its command to the GPIO where the actuators are connected, providing a bridge between the software's external actions and the GPIO functions. In the same way, when the high-level software needs to sense the environment, the data perceived by sensors has to be sent.
There are some libraries that use the serial port to deal with one-sided messages. However, these libraries just provide message treatment for one platform side (the environment), leaving the other side to the programmer. The Javino aims to fill this gap because it offers a double-sided communication that provides a higher level of correctness in message exchange.
For this reason, every message is composed of a preamble, a field size and the message content. The preamble is a field composed of four hexadecimal characters that are used to identify the beginning of a message sent by an agent. The field size is composed of two hexadecimal characters that are used to calculate the message extension. Finally, the last field is the message content, up to 255 bytes. The preamble and the field size are used together to avoid errors in the event of a loss of information during the message transmission. For the sake of practice, Javino automatically mounts the message.
We consider that you are using the last version of chonOS [how to install the chonOS].
Connect via SSH in your ChonOS system and execute the commands below:
echo "deb [trusted=yes] http://packages.chon.group/ chonos main" | sudo tee /etc/apt/sources.list.d/chonos.list
sudo apt update
sudo apt install raspberrypi-kernel-headers chonos-serial-port-emulator jason-cli javino python3-pip -y
sudo reboot
After reboot, connect in your chonOS (via SSH) again and execute the command below
wget --content-disposition https://packages.chon.group/python/javino/
pip3 install javino*.whl
After reboot, connect in your chonOS (via SSH) again and execute the command below
python3 -m venv pythonENV
source pythonENV/bin/activate
pip install --upgrade pip
wget --content-disposition https://packages.chon.group/python/javino/
pip install javino*.whl
We are considering that your Raspberry Pi has an LED plugged in the GPIO 18, running the chonOS[how to install the chonOS] like the schematic below:
Connect in your chonOS (via SSH) and execute the command below
wget https://raw.githubusercontent.com/chon-group/javino2python/main/examples/blink/python/blink.py
python3 blink.py
If all is correct, your prompt will appears like below:
Using a browser, access the chonIDE embedded in the Raspberry Pi https://YOUR-BOT-NAME.bot.chon.group:3270/
Donwnload this multi-agent system example
Import the multi-agent system project in chonIDE
Javino is licensed under a Creative Commons Attribution 4.0 International License. The licensor cannot revoke these freedoms as long as you follow the license terms:
- Attribution — You must give appropriate credit like below:
N. M. Lazarin e C. E. Pantoja, “A robotic-agent platform for embedding software agents using raspberry pi and arduino boards”, in Proceedings of 9th Software Agents, Environments and Applications School (WESAAC 2015), Niteroi: UFF, 2015, p. 13–20. Available at: http://www2.ic.uff.br/~wesaac2015/Proceedings-WESAAC-2015.pdf
Cite using Bibtex
@inproceedings{javino,
address = {Niteroi - RJ},
title = {A robotic-agent platform for embedding software agents using raspberry pi and arduino boards},
url = {http://www2.ic.uff.br/~wesaac2015/Proceedings-WESAAC-2015.pdf},
booktitle = {Proceedings of 9th Software Agents, Environments and Applications School (WESAAC 2015)},
publisher = {UFF},
author = {Lazarin, Nilson Mori and Pantoja, Carlos Eduardo},
year = {2015},
pages = {13--20},
note = {ISSN: 2177-2096},
}