bobalston
1)Can anyone help me understand how the capabilities in the ARC scripting language compare with those available in robots which can be programmed with SNAP 4.0 (aka Build your own blocks). I have looked up the scripting capabilities of ARC and it seems very rudimentary, at least as compared to SNAP 4.0. Of course I may be missing something or even a lot.
So far I have opened the EZ builder script window. On the right I see the various commands in script HELP. T the upper left I see where I can type in the various commands to form my script.
I see that there are a LOT of script commands. These include
GOTO IF then
If then elseif
Repeat Repeat until Repeat while
compass turn Compass forward
various file read and file write commands
various built in functions
Clearly there is a lot of functionality in the scripting commands available. I am just trying to get an idea of the power and ease of use of this capability vs. SNAP 4.0
- Are there any plans to implement graphical control capabilities such as SNAP, miniblog, scratch or similar?
I've never used SNAP so can't compare but I've not yet hit anything which can't be scripted. All of the goto, return, if, elseif, else etc. commands are there, all of the math commands (plus, minus, divide, multiply, cos, sin, etc.) and a bunch more.
If you give an example of something you will require EZ-Script to do I'll be able to tell you if the capability isn't there (I'd say it is there).
Graphical control as in how? There are commands which can control all controls and can send instructions to draw graphics on LCDs etc. As stated I haven't used snap so don't know exactly what you are looking for though.
Here is a link to SNAP 4.0 You can see it is a drag and drop, graphical programming environment for robots.
http://snap.berkeley.edu/
Bob
Easy C for Vex uses block style programming too... Few others as well I am sure..... Although I like Easy C, it isn't nearly as powerful as ARC...
The scripting isn't drag and drop, but I think you will find EZ-B with ARC to be significantly more powerful than anything you could do with the controllers supported by SNAP. The main difference is that EZ-B communicates with your computer (or an Android or soon an iOS device) and so has the full capabilities and processing power/speed of your computer. Any of the others, you develop your script and load it into the micro-controller memory, and it is then limited to just the capabilities in that one script. Those scripts can be very robust, but eventually you will hit a limit on how much the robot can do or react to, where in ARC, you can have a virtually unlimited number of different scripts to control or react to any situation.
The disadvantage of course is that you need a computer within WiFi range (Bluetooth on the older v3 board - no longer available except used), although there are certainly ways to extend that (computer on-board, Smartphone or Mobile Hotspot on board, etc...).
Alan
Thanks "thetechguru". Your post helps a lot to understand the differences. I found I was enamored by the drag and drop similicity of the graphical interfaces.
Can more than one script be active at a time? For example can you have the robot wander around, avoiding obstacles and if it encounters specific objects, such as a red ball, to take specific actions such as moving it? Perhaps you could do this example in a single integrated script. but what I am trying to determine is if you can build event processing capabilities, such as building a set of actions/reactions to certain conditions?
thanks
bob
Yes you can run more than one script at a time
Hi bob! Thanks for your questions the scripting language is fully featured sub nested loops, conditions and a toto stack. All controls within ARC are threaded, which means it's a true multitasking environment. All apps created on the PC ARC can also be used on the Mobile ARC. This means your robots can be brought anywhere with your phone
The scripting control is not limited to itself... Meaning your scripts can communicate and control other scripts with ControlCommand() or Variables. To understand the power of ControlCommand(), there is a tab labeled "Cheat Sheet" next to the Script manual when editing any script in any control. I would recommend adding a few controls first, such as Camera, speech recognition and maybe a servo auto position. Finally, add a script and edit it - click the Cheat Sheet tab and the ARC Compiler will generate some suggested code for you
EZ-Script is really really powerful! You'll see... let me know if you have any questions
Is ControlCommand how you implement procedures?
Bob
ControlCommand() is how a script can interact with other controls. For example, it would be used in speech recognition to enable camera color tracking.
Each procedure is a sepsrate Script Control, or to make it easier use the Script Manager - which allows more than one script. You can execute each proecedural script with ControlCommand() and use the Start or StartWait parameter
To be honest with you, EZ-Script is very simple once you get used to it and understand how easy it is to use.
There are a whole load of examples which come in ARC which cover pretty much every command available and there are more script examples in the forums which cover and detail more commands.
While it's mainly taylored towards IR sensors, GetADC, IF, ElseIF, Goto and Return (and probably has old syntax) I did write an introduction to scripting a while back which may be worth a read. Also if you check out some of my other scripts I've written and explained they may help you see how powerful yet simple EZ-Script is, they are all commented throughout explaining what each section does and why it is there.
Best advice is to download ARC and try it out. You don't need an EZ-B to try it, you can write simple scripts that Print() and Say() things depending on a bunch of variables which don't rely on the EZ-B such as $date, $time, $hour, $minute, $second, math functions and GetRandom(), you could even hook up a usb camera and use the camera control and script commands if you wanted to.