The Power of Simplicity
NOTICE
As I am now approaching my late 70's I must consider that I will not be able to continue with RobotBASIC forever. I would love to turn RobotBASIC over to someone that will love it and continue it into the future. Everything, including the webpage, software, many robot prototypes and other hardware, all the RobotBASIC books. etc. could be for sale at a very reasonable price if the right person is interested.
I am currently in good health and can see myself
handling the webpage for the forseeable future
so RobotBASIC users need not worry about support.
Email John Blankenship at:
RobotBASIC@yahoo.com
RobotBASIC can now control the Parallax Scribbler S3
Select the SCRIBBLER page on the left to read more.
This video demonstrates the simulator.
This is a link to ALL our videos.
Background Information
The Robot Simulator extension of RobotBASIC was originally programmed by college Professor John Blankenship. The simulator was incorporated as a set
of functions and commands into a powerful interpreted programming language written by Samuel Mishal. The combination is a versatile language that is
easy to learn and fun to use.
RobotBASIC has well over 800 commands and functions. Click these PDF links below to see the list of the commands and functions either alphabetically or categorized by function. You might
also enjoy reading how RobotBASIC has progressed so PDF link shows a complete version history.
The above information is also included in the RobotBASIC HELP file which is a WORD RTF document (to allow teachers to add their own content). Some people might find th PDF VERSION of the HELP
file useful.
RobotBASIC is a powerful language that enables you to:
● Simulate a robot with many types of sensors (THE SIMULATOR)
● Control a real robot using the wireless protocol (REAL WORLD CONTROL)
● Create animated simulations and video games (VIDEO GAMES)
● Handle complex engineering problems (ENGINEERING)
● Motivate students to learn (EDUCATION)
● Create contests for Robot Clubs (ROBOT CLUBS)
Scroll down to learn more about each of the above topics.
THE SIMULATOR
The robot can be made to navigate and move around a simulated environment using:
The command rForward n to move the robot n pixels forward (backwards if negative).
The command rTurn n to turn the robot n degrees right (left if negative).
The simulated robot has many sensors available. These are the standard sensors:
Ultrasonic Rangers (rRange) to measure the distance to objects on the screen.
Proximity Detectors (rFeel) to determine if any objects are close to the robot.
Bumper Switches (rBumper) to determine if the robot bumps into an object.
A Compass (rCompass) to know the orientation of the robot.
A simple GPS (rGPS) to find out the current X, Y coordinates of the robot.
Line Sensors (rSense) to detect the presence of a line drawn on the floor.
A Beacon Sensor (rBeacon) to determines if the robot is facing a beacon.
A Camera (rLook) to determine the color seen in front of the robot
Battery Monitoring (rChargeLevel) to determine the battery's charge.
Some of the sensors can be customized. Consult the RobotBASIC HELP file and example programs for more information. This YouTube video shows how the simulator can be used to develop robotic algorithms. Programs written to control the simulator can also be used to control a real
robot over a Bluetooth link (see Real World Control below).
The screenshot below shows the simulated robot navigating a maze after learning it.
REAL WORLD CONTROL
RobotBASIC can perform serial and parallel I/O operations to all PC Ports (both real and virtual), including USB or Bluetooth. It even has direct support for USBmicro I/O boards (see USBmicro.com for complete information on their products and the PDF below for many example applications). You can choose to create your own
protocols or just use ours, which allows the simulation programs to automatically communicate with a real-world robot using a wireless link. Since the link is bi-directional, the real robot will send
back sensory data that can be read using the standard simulator commands. For more detailed information refer to some of our books, such as Robot
Programmer's Bonanza.
RobotBASIC controlled robots or data acquisition systems can communicate over the Internet using TCP or UDP (see the PDF below for details). There are even commands that let your programs send
emails and attachments. Information about these capabilities is given in RobotBASIC's integrated HELP file. We have numerous books showing how to interface
RobotBASIC to the real world. A PDF below even shows how to interface RobotBASIC with the Arduino processor.
Controlling Real Robots
Arlo (below) is the robot you've always wanted. His many sensors give him capabilities far beyond that of most hobby or educational robots. He was featured in four articles in Servo Magazine, and the book Arlo: The Robot You've Always Wanted is available on Amazon.com.
Our humanoid robot, Frank (see below), is featured in a youtube video on vision (see VISION VIDEO) and the mobile robot in the picture is covered in our Bonanza Book. We now offer hardware for building RobotBASIC compatible robots. See our RROS page for more detailed information.
VIDEO GAMES
RobotBASIC provides extensive graphical commands that allow the EASY creation of simulations and video games. These features can be very motivational when teaching new students of programming. It is
easy to manipulate BitMap and directory files as well as graphical shapes. Commands that draw on one screen while displaying another provide totally flicker-free animation. Watch
these videos for more information.
Video: Writing Video Games with RobotBASIC
Video: RobotBASIC's Graphic Capabilities
Your programs can produce sounds using the standard speaker or wav files. Special commands make it easy to use the keyboard, mouse, or joysticks in a game-oriented environment. You can even
produce binary files for the interpreter or compile stand-alone EXE files so you can distribute your programs without revealing your secrets. Message and dialog boxes, along with push buttons
and many other event driven controls allow for the creation of a professional looking user interface.
The screenshots below show sample video games from our demo programs.
ENGINEERING
Don’t think for a moment that RobotBASIC is a beginner’s language. In addition to all the standard features you expect, RobotBASIC has functions seldom found in typical languages – things like
matrix algebra and statistical functions.
Additionally, RobotBASIC’s ability to perform serial and parallel I/O operations (including USB and Bluetooth) makes laboratory electronics projects easier than ever before. If you need remote
data acquisition RobotBASIC offers worldwide communications over the Internet using TCP and UDP protocols. You even have low-level disk access and event-driven controls to make complex programming
easier than ever before.
Video: RobotBASIC for Engineering
If you explore the help pages found in RobotBASIC’s IDE, you will find the power to do many things you always wished you could do. In summary, RobotBASIC is not only one of the easiest languages you
have ever used, it is also one of the most powerful. Don’t just take our word for it though, give it a try and watch your productivity soar. The screen shot below is from a RobotBASIC program
that demonstrates the physics of a spring.
EDUCATION
Many computer languages make it very difficult to teach programming because the student is forced to learn many idiosyncrasies and nuances of the language itself (see the PDF document
below for more information). It provides detailed information on why RobotBASIC is an ideal language for both introductory and more advanced programming classes. Many
languages, for example, require the user to create a form and select appropriate components before anything else can be done. Some require an understanding of concepts such as classes, compiling, and
the scope of variables right from the start. Students new to programming can easily be frustrated and disillusioned because of the time it takes to create even a “Hello World” program, let alone the
time it takes before they are able to create something relevant and exciting.
Video RobotBASIC: The POWER OF SIMPLICITY
RobotBASIC, in contrast, is extremely easy to use and learn. The student can dive right into programming because complex concepts are not required in order to write beginning level programs. As they
gain more knowledge of programming and develop their skills, more complex aspects of the language can be introduced. Once students are introduced to the proper principles, RobotBASIC allows the use
of C-style syntax, local variables, etc, making it easy for beginners to transition to more complex situations. Watch the video below or check out our many books suitable for the
classroom.
Video: RobotBASIC for Education
Robots in the Classroom
Extensive graphics and powerful functions allow even very simple programs to address exciting subjects. When beginning students solve relevant problems (such as making a robot detect objects in its
path or animating the movement of a shape across the screen) their desire to learn can be contagious. Compare these examples to standard introductory programming problems such as averaging numbers or
creating a factorial and you will see why students find RobotBASIC so motivational.
RobotBASIC is not just easy to use. It has all the power you need for nearly any project. In addition to all the standard features you expect (like floating point math and
multidimensional arrays), RobotBASIC has functions seldom found in any language – things like matrix algebra, statistical functions and a robotic simulator. You will also find functions that make it
easy to perform animation, create sounds, utilize the mouse or joystick, and even manipulate bitmaps, files and directories. Additionally, RobotBASIC’s ability to perform serial and parallel I/O
operations (including USB and Bluetooth) makes college-level laboratory electronics projects easier than ever before.
And now for the best part - RobotBASIC is FREE. Schools have no upfront costs and no reoccurring fees or licenses. Homework assignments are never a problem because every student can
download their own personal copy.
You may wonder why RobotBASIC is free. Having taught college students, and seeing the declining interest in mathematics and engineering we created RobotBASIC in
order to help rekindle interest in these disciplines. To that end, we wish to make RobotBASIC available to everyone. If you want to write articles or books about RobotBASIC, please do so. If you want
to write programs to give away or sell, you have our blessing – just direct your customers to our web page to download their free copy. As long as you reference us, you may use RobotBASIC pretty much
as you wish (you just can’t sell it). We believe RobotBASIC is a fabulous language that meets many needs. Our reward is in seeing more people utilizing and enjoying RobotBASIC. (See our license page
for complete information.)
The screenshot demonstrates the effects of gravity on a bouncing ball. This program is featured in our book RobotBASIC Projects for Beginners, available on Amazon.com. Scroll down to see more projects from that book.
Our Beginner's Book teaches logical-thinking and problem-solving skills by teaching HOW TO PROGRAM using interesting, exciting, and motivational examples such as the PAINT program below. If you are new to programming or want to create some interest in programming in your kids, you should check this book out.
ROBOT CLUBS
RobotBASIC has commands and functions to facilitate contests and competitions for Robot Clubs. These commands and our simulator provide a great way to educate new members as well as increasing
interest in robotics (without requiring any knowledge or experience with hardware). We even have a section in our book Robot Programmer's
Bonanza dedicated to using contests to motivate students and club members.
Technical Highlights of the RobotBASIC Language
● No installation is required – you can run RobotBASIC from a USB-drive,
a CD, or even from a web page.
● Use variable typing (integer, float, and string) OR totally untyped variables,
where ANY variable at ANY time can be changed to ANY type by simply
assigning it a new value.
● Standard GOSUB routines or callable function-like routines (Call/Sub)
with LOCAL variable scoping with by reference and by value parameters
(which may be skipped), as well as a returned value.
● Use legacy INPUT and PRINT statements for QUICK and EASY I/O (great
for introducing programming to non-programmers).
● GUI commands that create buttons, text boxes, edit boxes, list boxes,
dialogue windows, message boxes, radio buttons, check boxes, sliders,
and more.
● Use a Procedural programming model with GOSUB and CALL/SUB or an
EVENT-DRIVEN approach with commands like OnSlider.
● Use standard BASIC syntax or a modified C-style syntax (i.e. ++, +=, !=, &&)
This can be great for teaching programming fundamentals before moving
on to more complex principles and syntax.
● Increased productivity from numerous “helper functions” that facilitate
sorting, multimedia displays, flicker-free 2-D and 3-D animation, robot vision
(including web cam support), extensive BMP image manipulation, matrix
math, both high and low-level file I/O, the ability to send Emails (SMTP)
and communicate over the Internet (UDP and TCP protocols), and much more.
● Develop and debug programs in an easy-to-use INTERPRETER-based
IDE (Integrated Development Environment), then COMPILE your programs
to standalone EXE’s for easy distribution.
● Ability to create includable LIBRARY files with #include (even include binary
files to protect your algorithms).
● An integrated Robot Simulator with numerous sensors such as an electronic
compass, ultrasonic distance measurement, IR perimeter sensing, line
sensors, a GPS, and more.
● Control real robots using parallel, serial, and USB ports for wireless protocols
such as Bluetooth and Zigbee.
● Unique proprietary protocol allows simulator programs (without modification)
to control real robots (see our RROS chip for complete details).
● Direct support for the USBmicro U4x1 family of I/O modules that provide
1-wire, SPI, and I2C Serial control of Digital MicroDevices as well as 16 lines
of TTL I/O.
● Ability to SPAWN other executable files and pass them parameters.
● Over 800 commands and functions often allow a few lines of code to provide
the functionality of hundreds of lines in many other languages.
● An extensive 300 page HELP file provides detailed information and numerous
programming examples.
● Web page tutorials, sample programs, YouTube videos, and low-cost books
provide additional help if needed.
● Improved editor with multiple file capability and color-coded keywords.
● RobotBASIC is FREE to schools, organizations, individuals - EVERYONE!