The popularity of robotic platforms as a learning tool for STEM education together with the growing maker community caused an increased availability of low-cost embedded system platforms. This gives teachers and makers the freedom to pick the best suited one for their purpose. Each platform, however, has its individual hardware specifications as well as proprietary software interfaces. This causes much effort, since the user has to familiarize himself with the new platform. With BotSpeak, a universal robotics programming language, we try to reduce this effort such that teachers, students and makers can rapidly prototype their ideas.
There is a large number of educational robots and microprocessor platforms available. Every platform, however, speaks its own language. Switching between systems requires setup and familiarization with proprietary user interfaces and/or programming languages.
Each target platform runs an individual BotSpeak interpreter. Only one programming application is required to generate BotSpeak commands, since all platforms understand BotSpeak. BotSpeak commands can be executed on the target platform in direct mode (tethered) or scripting mode.
Each target platform (e.g. RaspberryPI, LEGO, Arduino) needs to run a system specific BotSpeak interpreter, which is part of the BotSpeak release package. The interpreter runs on the target platform, receives and executes BotSpeak commands, such as “SET DIO,1″ or “WAIT 1.2″. The native functions are called by the BotSpeak interpreter, scripts can be saved and executed.
The target platform receives and returns BotSpeak commands consisting of string messages. Any communication technology supported by the target platform can be used, e.g. serial, TCP/IP, Bluetooth, etc. Any BotSpeak-enabled programming application (e.g. LabVIEW) can send BotSpeak commands to the target platform. BotSpeak-enabled means, that the integrated development environment (IDE) has to generate BotSpeak language (the string commands). These plugins are part of the BotSpeak release package.
Did you replicate this project? Share it!I made one
Love this project? Think it could be improved? Tell us what you think!