Easy Answers to Your Questions
We have tried to put as many details as possible in our Help Files. In fact our new Help File is customizable, so teachers can add special areas to support their classes. We know though, that some
people may want extra help.
An independent yahoo group has been formed for RobotBASIC. We think it will be a great way to share information.
Please Check it out. Yahoo Group For RobotBASIC
In addition to the yahoo forum, we will start adding answers to Frequently Asked Questions here.
1. Can you use RobotBASIC on LINUX or on the Mac?
ANSWER: RobotBASIC users have reported that RobotBASIC successfully runs under WINE on Linux. We also hear that RobotBASIC runs on a Mac under VM.
2. Can you use floating point variables with RobotBASIC? I see no way to specify whether a variable is an integrer or a float.
ANSWER: Any variable in RobotBASIC can contain an integer, a float, or even a string. No type casting is necessary. The contents of any variable (even different elements of the same array) can be changed to a different type by just assigning a new value.
3. Is RobotBASIC the same as RoboBASIC?
ANSWER: No, RobotBASIC has far more features. The current version has over 600 commands and functions. RobotBASIC has the ability to simulate a robot or control a real robot. You can also use RobotBASIC in the laboratory for remote data acquisition or to control motors and other actuators using the parallel and serial I/O capability. Furthermore, RobotBASIC has commands and functions for complex graphics, bitmap manipulation, image processing, statistical and financial formulas, and much, much more. We have been told there are some obscure languages also referred to as RobotBASIC. Please don't confuse them with us.
4. How can I create multiple robots in RobotBASIC?
ANSWER: RobotBASIC does NOT support multiple robots... however... For many applications you don't need a robot with ALL of the capabilities of our simulated robot (it is, after all, really a super robot with almost every sensor you can readily purchase today). The link below lets you download a zip file containing a SAMPLE program that creates soccer playing robots. It IS NOT a finished program and should only be used to demonstrate a technique for creating multiple robots that "communicate" with each other.
5. How can I run a RobotBASIC program automatically when my computer boots?
ANSWER: Every version of Windows has a Start Menu folder under the Windows folder. In this folder there is a sub-folder called StartUp. Any shorcuts to any programs inside this folder will be invoked after booting. You need to place a shortcut to the RobotBASIC.exe in this folder. However, you need to edit this shortcut and inside "target" field add after RobotBASIC.exe add a space then the name (full path) of your (.bas) program that you wish RB to run when it starts. You also may have to edit the "Start In:" field to be the directory where your .bas program resides. To edit the shortcut right-click on it and click the "properties" menu item. You need to use the Windows Explorer program to navigate to the C:\Windows\Start Menu\Startup folder where you create a shortcut to the RobotBASIC.exe. Then edit the shortcut as mentioned above.
6. How do I upload RobotBASIC programs to my robot?
ANSWER: RobotBASIC does NOT upload to the robot like other systems (such as Parallax's PBASIC). Instead, the program stays on the PC and sends out "commands" over the Bluetooth connection (when directed to do so by the rComm command). The program you UPLOAD to the robot must be written in the Robot's native lanugage (PBASIC for example) and that program will INTERPRET the commands received over the Bluetooth link). Chapter 17 in the Bonanza Book shows the beginnings of a sample program to help you see how to write the INTERPRETER... which will be different for every machine, based on the sensors you have, where they were purchased, the motors you have, what kind of microprocessor you have, what language you use, what pins you choose, etc etc etc.
I know this makes the writing of the interpreter complex for some people, but once it is written, then you never have to write it again. From then on, any RobotBASIC program (that uses the sensors you support in your INTERPRETER) can be used to control the robot.. There are several books planned including the possibility of one that takes you step-by-step through the process of building a complete RobotBASIC robot - but for now, many people with limited hardware experience will have to be satisfied with learning about robot programming using the simulator. This was actually the original idea for RobotBASIC. We wanted to create a system that would let people with little or no hardware experience learn about Robot Programming.
7. I understand that RobotBASIC can communicate using serial ports and Bluetooth, but I am new to programming and it seems very complicated to me.
ANSWER: RobotBASIC's HELP file contains all the required information, but we do understand that beginners might need more help. This PDF file discusses the fundamentals of serial I/O with a BS2 example. This is PDF discusses communication with Parallax's BS2 in more detail and this PDF explores communication with Parallax's Propeller chip (great for multitasking). This PDF provides a link to a short ebook that gives many great Arduino Examples. It is easier to use this link to access that ebook directly from Amazon. Our new RROS chip can be easily controlled from other processors such as an Arduino (See Appendix C in the downloadable manual on the RROS TAB).
8. I loved the explanations of serial communications. Can you show me a sample program that will help me understand Internet communications?
ANSWER: This ZIP file has demo programs that show how to control a simulated robot from anywhere in the world over an Internet connection. Remember, if you can control a simulated robot, you can use RobotBASIC's I/O commands to control a real robot. These ZIP files have additional TCP and UDP exampes. This PDF file provides detailed information on TCP and UDP communication with RobotBASIC.
9. I keep having strange problems with the image capture commands. Any suggestions?
ANSWER: It is important that your web cam be twain compliant. In some cases, we have tracked problems to the driver itself, not the camera. Try this link to a generic twain driver and see if can solve your problems.
10. I started using RobotBASIC because of its simulator. I was surprised to find out that RobotBASIC can control real robots using any or all of the PC's I/O ports. Can you help me get started in this area.
ANSWER: We sure can. Check out this PDF. It gives you lots of information on general I/O operations and some very specific details on the USBmicro I/O cards (which is a very easy way to interface your PC with the outside world).
11. I love the new SUBs that have local variables. Can I use the CALLed SUBs and the standard GOSUB modules in the same program?
ANSWER: Absolutely, but depending on your subroutine nesting you need to be careful. Each time a SUB is called, a new [local] variable table is created. If you GOSUB to a standard subroutine from a SUB, the ONLY variables it will see will be the ones associated with the current variable table. This is actually a nice feature in a well-designed program because a group of standard subroutines can all share the local variables associated with a SUB. Viewing the variable table while you step through a program can help you understand this concept because you can see what variables are currently active at any point in the program. One more important point. No matter where you are in a program, accessing a variable with the underscore character (i.e. _X) always references variable in the MAIN program's variable table. This PDF paper provides more details.
12. I understand RobotBASIC can create code that looks and works a little like C++ objects. Can you explain?
ANSWER: Currently RobotBASIC cannot do true objects (perhaps sometime in the future) but it can create psudo objects - that is code that works very much like real objects. The data structure is a standard array, where the first row of the array contains the names of each of the variables to be shared among instances of objects, and each of the other rows contains the data for a particular instance. The key to making this work is two new commands, GetObject and PutObject (see the help file for more information). These commands allow data to be copied from variables to (and from) array elements. This ZIP file has three example programs to help you see the concept.
Send in your questions and watch for the answers here.
A RobotBASIC user sent us this poem.... thanks to Krl [i]sbrecht.
"Entree 20 and 1/2"
May your New Year be happy
and the economy get peppy.
May your health be on par
and good luck never too far.
May your humor never abandon your side
and always be your guide
to which you can subscribe.
May you have strength when things come apart
and a door opens to give you a new start.
May your book sales shift into high gear
so more can lose their programming fear.
A book on SPIN we hope you'll endeavor,
all of us PROP-ies will love you forever !
May "Frank" never lose his sight,
confuse colors, dark with bright,
start screaming or get into a fight.
May your robots always retain their poise,
never crash or make too much noise.
2010 sure can stand a lot of 'grease'
to smooth out 2009's crease;
let's hope it retains some sanity with a touch of peace.