Introduction
BotSpine enables users to easily and rapidly build advanced electronics projects.
Motivation
I was nostalgic for when computers had parallel ports and it was easy to control electronics from a computer, by using that port. It was easy to prototype a product or just to build a gadget for personal use. It is more difficult now.
In the meantime, smartphones have become really smart and have access to all kinds of sensors, GPS, speech recognition, etc. Also, the form factor of a phone is nicer than a computer, for controlling electronics. They are easier to carry around, if you want to remotely control your electronics, and they are easier to velcro to your electronics, if you want to build a smart autonomous robot.
BotSpine lets you control electronics with your phone, via Bluetooth, similar to how you used to be able to control electronics with a computer, using the parallel port.
History
The first version of BotSpine was directly controlled through a console program, running on an Android phone. A user typed in a command to pull a pin high or low, read the voltage applied to a pin, or display something on the OLED. This facilitated some primitive projects. For example, I connected an optical relay to BotSpine and my garage door opener and could then use my phone as the remote.
Current Work
I ran across BlueBasic, a BASIC interpreter that runs on the microprocessor used in BotSpine. Running BlueBasic on BotSpine allows the user to send commands directly, one at a time. It also allows whole BASIC programs to be executed. It gives BotSpine extensive stand-alone capibility.
So, we threw out a lot of our firmware and combined the rest with BlueBasic, calling it BotBasic. This allows us to build much more advanced projects. Two that I am currently working on are:
- The world's smallest 2 player game of pong, and
- An autonomous robot that scans floors for radioactive contamination.
The original motivation for BotSpine included to ability to leverage a Smartphone's advanced functionality by running a program on the phone to control BotSpine. For people who are already proficient in Android Studio this is easy. For people who don't want to get too deep into Android programming, RFO BASIC! offers a powerful alternative with a much smaller learning curve.
Unfortunately, BLE is currently not supported in RFO BASIC!. We are trying to get it implemented.
The Vision
- BotSpine will allow a developer to replace hundreds or thousands of lines of firmware with dozens of lines of high-level BASIC code. The BASIC interpreter handles all the annoying, bug-prone housekeeping and the developer doesn't have to deal with any of it. The developer can focus on developing.
- There are no complicated IDEs to install and programmer/debuggers to hook up. You download the BotSpine Android app or the BlueBasic iOS app, connect to BotSpine via BLE and start typing the BotBasic code directly into the interpreter. The Android app also lets you upload programs (e.g. written in Notepad). This is handy, once the programs get more complex.
- Commands can be typed one at a time and executed immediately. For example, typing:
OLED "hello world"
will display "hello world" on the OLED. - If line numbers are added, commands are saved as a program and executed only once RUN is entered. For example, typing:
10 OLED "Hello"
20 DELAY 1000
30 OLED CLEAR
40 OLED "World"
50 DELAY 1000
60 OLED CLEAR
70 GOTO 10
RUN
will display "Hello" for 1 second, then display "World" for 1 second, then "Hello" again, etc. - BotSpine is small enough so that it can be incorporated as a module by OEMs.
- Additional functionality, such as speech recognition and GPS, as well as a rich UI can easily be added to BotSpine based projects by using RFO BASIC! to tether a smartphone to BotSpine.
- Even more functionality, such as computer vision, can be added to BotSpine based projects by using native Android apps to tether a smartphone to BotSpine.