Shop OBEX P1 Docs P2 Docs Learn Events
RobotBASIC V4.0.0 is now released and ready for your coding pleasure — Parallax Forums

RobotBASIC V4.0.0 is now released and ready for your coding pleasure

SamMishalSamMishal Posts: 468
edited 2009-05-12 03:36 in Robotics
Hi All,
FINALLY…………RobotBASIC V4.0.0 is OUT………
It is here (http://www.RobotBASIC.com) and it is GOOD…..
It is chocker block full of good stuff some of which can be hard to accomplish with most languages. There are 352 new commands and function bringing it up to a total of 697 commands and functions.

RobotBASIC now allows you the options to communicate with your robot:
-········· Directly· (wired) using the Parallel Port, Serial Port, USB port (using USBmicro’s U4x1 devices).
-········· Wirelessly using Blue tooth, or serial radio
-········· Wirelessly using WiFi over a Wireless TCP or UDP· connection to the LAN
-········· Around the world, LAN, WAN, or Internet using the internet and TCP or UDP or even sending emails over SMTP.

The downloadable zip file is replete with demo programs that demonstrate the abilities of RB. Some of the programs are not just demos, they are useful in their own right; not to mention all the extremely enjoyable games.

The help file is a veritable book in its own right (albeit a little dry) with 210 pages of information and code examples some of which are full programs (you can read it as a PDF if you wish, see the web site).

P.S. I have just noticed that our release date is in competition with the release date of the new Star Trek movie….oh well….hard luck Kirk…….or is it Picard????? 04.gif
·
What RobotBASIC excels in, is making available to the beginner programmer the ability to achieve what even an advanced programmer would find hard to do, and all within an extremely easy language syntax and coding framework. For example, with 35 lines of code using a handful of commands and functions you can write a program that implements a CHAT line between machines over a network. See the sample code under the UDP or TCP functions in the help file, or the UDP_IO_Demo.Bas (and TCP_Client_Demo.Bas and TCP_Server_Demo.Bas) in the zip file.

Here is a list of some of the new features
- Compile capability. After creating your programs within the Interpreter IDE you can compile them to a standalone Windows EXE that can run on any Windows OS from 95 upwards.
·
- A suite of functions to support I/O with USBmicro’s U4x1 device. This is a 16 bit (two ports) Digital I/O device that is powered by the USB port and can do digital I/O and carry out SPI and 1-Wire serial communications as well as control 2 independent Stepper motors.
·
- Sending of Email. Imagine collecting data and sending reports to an email account.
·
- Buffered Asynchronous sending and receiving of data packets over the TCP or UDP protocols over the LAN, WAN, WiFi,· or Internet. If you know how to do serial communications, you can utilize RobotBASIC’s system for sending data between two machines over the network and accomplish control of electronics devices.
·
- Extensive user GUI components like Memo boxes, Spinners, Sliders, Check Boxes, and much more. All can be programmed using a normal sequential programming style or EVENT DRIVEN style.
·
- Timer Events. RobotBASIC now fully supports the event-driven model of programming where you can have a program execute certain section depending on EVENTS like clicking a button, or Clock ticks etc.
·
- Low level File I/O functions to allow for creating and reading Text or Binary files with Sequential or Random Access styles.
·
- Support for POINTER style access to variables. So now you can introduce students to pointer programming in an easy and safe manner.
·
- New and improved debugging features that allow you to STEP the program and to do Expression evaluation during the debugging process as well as to evaluate a WATCH LIST of expression after each step.
·

·
And much much more…………..This is a HOT release and I think if you start programming with it you are going to find it hard to stop….but it is a good addiction….
·
·
Here is an example of RB’s versatility. How many lines of code do you think it would take to do the following task?
·
Given a sentence, list out the letters of the alphabet that occur in it, and the letters of the alphabet it does not contain.
·
How many lines of code are needed to do this? 20, 10, 5….. No… Just 3….and if you call within the next·few minutes we will throw in 50 lines of UDP code….hurry this is a limited time offer….you cannot buy it in stores……09.gif
·
Sentence = "Put your sentence here"
Print Contains(upper(Sentence),"ABCDEFGHIJKLMNOPQRSTUVWXYZ")
Print NotContains(upper(Sentence),"ABCDEFGHIJKLMNOPQRSTUVWXYZ")

·
·
Happy coding
·
Samuel

Comments

  • iMMOSiMMOS Posts: 14
    edited 2009-05-08 19:45
    Nice work dude!
  • GWJaxGWJax Posts: 267
    edited 2009-05-09 12:23
    Holly Smile Batman, downloading NOW!! thanks for the great improvements..

    Jax

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    If a robot has a screw then it must be romoved and hacked into..
  • Tom CTom C Posts: 461
    edited 2009-05-09 16:18
    Sam,

    Nice work. Love all of the extra sensors. Will make completing my latest rover a snap.

    Thanks again.

    Regards,
    TCIII

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    If you are going to send·a Robot·to save the world, you·better make sure it likes it the way it is!
  • SamMishalSamMishal Posts: 468
    edited 2009-05-12 03:36
    Hi Guys,
    Thanks a lot for the vote of confidence............
    ·
    With this posting there is an attached zip file containing two programs (4 files):
    TCP_Robot.EXE/BAS and· TCP_Robot_Controller.EXE/BAS (the ·.BAS is the source code)
    ·
    These programs were created and compiled in RobotBASIC. As you may have gathered from the name they use the TCP protocol to create a SERVER and CLIENT connection. The server is the Robot side and the Client is the controller side. You can run both programs on the same PC or on two different PCs. It is more impressive if you run them on two machines.
    ·
    Imagine you have a robot with a BS2, SX, or· Propeller as a controller. The BS2 is utilizing a WiFi Ethernet card (e.g. Hydra EtherX Card item #27933) to have WiFi access ·to the LAN (or WAN) and communicates with the card (e.g. using SPI) to receive and send TCP data Packets (bytes).
    ·
    Additionally, you have a controller program, running on a PC, which sends commands (move, turn etc,) and receives data (sensors etc.) to and from the BS2 according to a predetermined PROTOCOL.
    ·
    The PC can control the movement of the robot either in response to user inputs to do remote control, or it could be according to an Artificial Intelligence Algorithm that makes the robot carry out a specific task.
    ·
    The two attached programs show how you can do all this...but instead of a real robot they use the simulated robot in RB. The Controller program allows you to control the simulated robot running on another machine (or the same machine) and lets you put the pen up and down so as to leave a trace. Also, if you press the Q button, a snap shot of the screen of the Robot’s side will be sent to the controller side and displayed on the controller’s screen.
    ·
    These two programs simulate a very sophisticated level of programming that most programmers would consider a dream best left for the EVIL Geniuses out there. ·However, RobotBASIC makes the dream a reality that, even the not so evil among us can achieve with relative ease.
    ·
    Normally, it would be a logistical nightmare to develop a system like the one mentioned above.· You have to write, test, and debug two disparate programs on two disparate platforms using two disparate languages and development environments (IDEs). Moreover, developing such a program on a real robot would be extremely inconvenient to say the least.
    ·
    This is where the advantages of RobotBASIC become a boon during the development process. With RobotBASIC you have a program development system that can be run as many times as you wish on the same machine. So you can have multiple instances of the interpreter running simultaneously with different programs on the same machine. Additionally since RobotBASIC does not require any installation or licensing, you can have it running on multiple machines with ease for when it is time to test on separate machines.
    ·
    Another great advantage of RobotBASIC is its integrated robot simulator. With the simulated robot you can develop and test all the ideas you want to eventually attain with a real robot on the simulator without all the hassles of the plugging, cross-compiling, downloading, unplugging, turning on, testing, guarding against disaster, turning off, and repeating the entire cycle so as to fix one problem after another in a gradual and frustratingly slow and cumbersome process.
    ·
    Developing the TCP protocol and mechanism of communications can be carried out with major ease using two instances of RB running on the same machine. You develop the robot side of the system using the simulated robot in one instance and the controller side in the other instance. You can test the TCP actions with ease without having to keep moving from one machine to another to do the testing. You develop the robot responses and the protocol on the simulated robot without having to worry about the consequences of errors.
    ·
    All this is done with one language syntax where you do not have to worry about cross compiling and switching between languages. You do eventually have to translate the robot side of the program to the target REAL robot language and hardware. Nonetheless, you only have to do this after you already have tested and established that the principles and protocols work and all that remains is making sure that the implementation on the real robot is a correct translation of the tried and proven RB program.
    ·
    The Controller program is 109 lines of code. The Robot program is 80 lines long; have a look at the .BAS files. The programs also illustrate how to write a program that sends a BitMap file from the server to the client upon a request from the client.
    ·
    Another concept illustrated in the programs, is how to setup a protocol for hand-shaking that insures the controller gets a maximum amount of sensory information from the robot with a minimal amount of communications. This is achieved by using 11 bytes of data returned from the robot that in addition to serving as a form of “ACK” are also the sensory data.
    ·
    Finally, these two programs are only demonstrations and leave a lot of room for improvement. They serve as an illustration of what can be achieved with the new RobotBASIC V4.0.0; you should study the source code to learn about the new commands and functions.
    ·
    If you would like a challenge, consider rewriting the programs to work with UDP in place of TCP. This is not very difficult to do, but there are certain actions that can be taken in TCP but are not possible with UDP. For example, the robot side determines when the controller has disconnected and takes action accordingly (and vice versa).
    ·
    ·
    Happy coding….
    ·
    Samuel
Sign In or Register to comment.