[ANN] UziScript first pre-release!

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[ANN] UziScript first pre-release!

Ricardo Moran
Hi everybody,

We are very pleased to announce the first pre-release of UziScript (https://github.com/GIRA/UziScript), a new programming environment for educational robotics.

For a long time we've been wanting to show you what we are working on at GIRA (http://tecnodacta.com.ar/gira/) and although we're still far from finished we've decided it's time to share our little project with the community.

As some of you may know we work mostly on developing tools to facilitate the use of robots for education. We published Physical Etoys as part of that work. Now we are working on a new programming environment that attempts to fix some common problems we see in most of the tools available for educational robotics.
We call this environment UziScript and it consists of a small VM that runs on an Arduino, a web server that runs on your computer, and a set of web tools that use the web server to connect and program the Arduino. We're focusing on Arduino UNO for now (mainly because it's very popular and accessible) but we plan to support other boards in the future.

UziScript has a few cool features:
  • Block-based and text-based programming: It includes a block-based programming language suitable for beginners but it also supports text-based programming for more advanced users. To ease the transition UziScript automatically generates the textual code from the blocks (and viceversa).
  • Concurrency: Most educational robotics projects require the implementation of a device that performs two or more simultaneous tasks. UziScript allows the definition of concurrent tasks that will be executed independently from each other.
  • Autonomy: UziScript programs are stored and executed autonomously in the Arduino without requiring a connection to the computer.
  • Interactive programming: If the board is connected to the computer UziScript allows to inspect and monitor the program state while it runs. Furthermore, every change made to the program can be automatically compiled and transmitted to the Arduino, which allows to see the effects of the change almost immediately.
  • Debugging: Without debugging tools the process of fixing programming errors can be frustrating for an inexperienced user. UziScript's debugger provides mechanisms for error handling and step-by-step code execution.
All the code is open source and can be found on Github: https://github.com/GIRA/UziScript. We also made a few short videos to show UziScript in action: https://www.youtube.com/playlist?list=PL1aXD47455XPWv4rTXQBuHvamCoNUGeke

We're still not ready to use this with actual teachers and students (we have a LOT of bugs and unfinished features) but we think we're ready to show this to other programmers.
You can download and try our first pre-release  (https://github.com/GIRA/UziScript/releases/tag/v0.1.1). We would greatly appreciate any comments or suggestions.

Have fun!
Richo


Reply | Threaded
Open this post in threaded view
|

Re: [ANN] UziScript first pre-release!

David T. Lewis
Richo,

Thank you for posting this. I watched the youtube playlist, and it
gives a good overview of how UziScript is used.

I hope to hear more about this project in the future, especially as
it is used by teachers and students.

Thanks!
Dave

On Wed, Jan 23, 2019 at 01:10:34PM -0300, Ricardo Moran wrote:

> Hi everybody,
>
> We are very pleased to announce the first pre-release of UziScript (
> https://github.com/GIRA/UziScript), a new programming environment for
> educational robotics.
>
> For a long time we've been wanting to show you what we are working on at
> GIRA (http://tecnodacta.com.ar/gira/) and although we're still far from
> finished we've decided it's time to share our little project with the
> community.
>
> As some of you may know we work mostly on developing tools to facilitate
> the use of robots for education. We published Physical Etoys as part of
> that work. Now we are working on a new programming environment that
> attempts to fix some common problems we see in most of the tools available
> for educational robotics.
> We call this environment UziScript and it consists of a small VM that runs
> on an Arduino, a web server that runs on your computer, and a set of web
> tools that use the web server to connect and program the Arduino. We're
> focusing on Arduino UNO for now (mainly because it's very popular and
> accessible) but we plan to support other boards in the future.
>
> UziScript has a few cool features:
>
>    - *Block-based and text-based programming*: It includes a block-based
>    programming language suitable for beginners but it also supports text-based
>    programming for more advanced users. To ease the transition UziScript
>    automatically generates the textual code from the blocks (and viceversa).
>    - *Concurrency*: Most educational robotics projects require the
>    implementation of a device that performs two or more simultaneous tasks.
>    UziScript allows the definition of concurrent tasks that will be executed
>    independently from each other.
>    - *Autonomy*: UziScript programs are stored and executed autonomously in
>    the Arduino without requiring a connection to the computer.
>    - *Interactive programming*: If the board is connected to the computer
>    UziScript allows to inspect and monitor the program state while it runs.
>    Furthermore, every change made to the program can be automatically compiled
>    and transmitted to the Arduino, which allows to see the effects of the
>    change almost immediately.
>    - *Debugging*: Without debugging tools the process of fixing programming
>    errors can be frustrating for an inexperienced user. UziScript's debugger
>    provides mechanisms for error handling and step-by-step code execution.
>
> All the code is open source and can be found on Github:
> https://github.com/GIRA/UziScript. We also made a few short videos to show
> UziScript in action:
> https://www.youtube.com/playlist?list=PL1aXD47455XPWv4rTXQBuHvamCoNUGeke
>
> We're still not ready to use this with actual teachers and students (we
> have a LOT of bugs and unfinished features) but we think we're ready to
> show this to other programmers.
> You can download and try our first pre-release  (
> https://github.com/GIRA/UziScript/releases/tag/v0.1.1). We would greatly
> appreciate any comments or suggestions.
>
> Have fun!
> Richo

>


Reply | Threaded
Open this post in threaded view
|

Re: [ANN] UziScript first pre-release!

timrowledge


> On 2019-01-23, at 6:40 PM, David T. Lewis <[hidden email]> wrote:
>
> Richo,
>
> Thank you for posting this. I watched the youtube playlist, and it
> gives a good overview of how UziScript is used.
>
> I hope to hear more about this project in the future, especially as
> it is used by teachers and students.

Likewise; this looks really interesting for teaching IoT type stuff.

The only question I have so far is why think of using blockly for the display of what is basically Scratch? We have a pretty good Scratch in Squeak already, there for the customising. It's faster, too.


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Strange OpCodes: REP: Randomly Execute Programmers



Reply | Threaded
Open this post in threaded view
|

Re: [ANN] UziScript first pre-release!

Karl Ramberg
In reply to this post by Ricardo Moran
Looks cool. Nice work.

Best,
Karl


On Wed, Jan 23, 2019 at 5:10 PM Ricardo Moran <[hidden email]> wrote:
Hi everybody,

We are very pleased to announce the first pre-release of UziScript (https://github.com/GIRA/UziScript), a new programming environment for educational robotics.

For a long time we've been wanting to show you what we are working on at GIRA (http://tecnodacta.com.ar/gira/) and although we're still far from finished we've decided it's time to share our little project with the community.

As some of you may know we work mostly on developing tools to facilitate the use of robots for education. We published Physical Etoys as part of that work. Now we are working on a new programming environment that attempts to fix some common problems we see in most of the tools available for educational robotics.
We call this environment UziScript and it consists of a small VM that runs on an Arduino, a web server that runs on your computer, and a set of web tools that use the web server to connect and program the Arduino. We're focusing on Arduino UNO for now (mainly because it's very popular and accessible) but we plan to support other boards in the future.

UziScript has a few cool features:
  • Block-based and text-based programming: It includes a block-based programming language suitable for beginners but it also supports text-based programming for more advanced users. To ease the transition UziScript automatically generates the textual code from the blocks (and viceversa).
  • Concurrency: Most educational robotics projects require the implementation of a device that performs two or more simultaneous tasks. UziScript allows the definition of concurrent tasks that will be executed independently from each other.
  • Autonomy: UziScript programs are stored and executed autonomously in the Arduino without requiring a connection to the computer.
  • Interactive programming: If the board is connected to the computer UziScript allows to inspect and monitor the program state while it runs. Furthermore, every change made to the program can be automatically compiled and transmitted to the Arduino, which allows to see the effects of the change almost immediately.
  • Debugging: Without debugging tools the process of fixing programming errors can be frustrating for an inexperienced user. UziScript's debugger provides mechanisms for error handling and step-by-step code execution.
All the code is open source and can be found on Github: https://github.com/GIRA/UziScript. We also made a few short videos to show UziScript in action: https://www.youtube.com/playlist?list=PL1aXD47455XPWv4rTXQBuHvamCoNUGeke

We're still not ready to use this with actual teachers and students (we have a LOT of bugs and unfinished features) but we think we're ready to show this to other programmers.
You can download and try our first pre-release  (https://github.com/GIRA/UziScript/releases/tag/v0.1.1). We would greatly appreciate any comments or suggestions.

Have fun!
Richo



Reply | Threaded
Open this post in threaded view
|

Re: [ANN] UziScript first pre-release!

timrowledge
In reply to this post by timrowledge
OK, some quick comments after actually downloading and quickly taking a look on my iMac -

It won't "just run" on Mac OS 10.13.6 High Sierra - it doesn't even offer to have me temporarily side-step the security settings, which is something I haven't seen before.

So I downloaded the plain 5.2 64bit all-in-one to get a Mac 64bit VM (which by the way whines about not being able to write to the changes file on startup because of a permissions problem; this before it even gets to Marcel's nice 'Welcome to Squeak ' initial config tool) to get a Mac 64bit VM .

Opening the Uzi package to drill down to the actual image and dropping the image on the fresh 64bit all-in-one opened the Uzi image ok.

First question - where are the comments, folks? I understand not yet having done a round of adding comments all over the place but even the class examples have no helpful comments to offer good places to start trying things. Could save a good bit of time if you add some. Pretty please.

Next - why a 64 bit image? Right now that means no Raspberry Pi; yes, we're working on it but it's going to be a while. Is there some important reason, or is it just that this is what you've been working on? A lot of people use Pi with Arduino/ESP8266 and this could be a big user base for you.

Third - why 'uzi' ? That has some not so pleasant connotations.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Useful Latin Phrases:- Magister Mundi sum! = I am the Master of the Universe!



Reply | Threaded
Open this post in threaded view
|

Re: [ANN] UziScript first pre-release!

Ricardo Moran
Hi everyone,

Thanks for your interest. And thank you Tim for your questions. I'll try to answer them below.

On Thu, Jan 24, 2019 at 12:06 AM tim Rowledge <[hidden email]> wrote:  
(...)

The only question I have so far is why think of using blockly for the display of what is basically Scratch? We have a pretty good Scratch in Squeak already, there for the customising. It's faster, too.

 
Blockly was just the easiest choice given the design decision of building the GUI as a website. We wanted to separate the GUI from the server mostly because of flexibility. 
Imagine a classroom with a laptop for each children but only a handful of robots. You could have just one computer (or a few) with the UziScript's server installed and all the children programming the robots from their own laptops without having to install anything.
Or maybe imagine a robot kit that comes preinstalled with the UziScript's server and all you need to do is point your browser to the correct url. Nothing to install, nothing to configure, just open the browser and start programming.
I think that is valuable. Of course, Blockly is just an example. Anyone could write their own GUI in the language of their choice and interact with UziScript using the REST api.

On Sat, Jan 26, 2019 at 1:53 AM tim Rowledge <[hidden email]> wrote:
OK, some quick comments after actually downloading and quickly taking a look on my iMac -

It won't "just run" on Mac OS 10.13.6 High Sierra - it doesn't even offer to have me temporarily side-step the security settings, which is something I haven't seen before.

Oh yes, I know. We don't have a Mac to test so we weren't expecting it to work. I should've specified that in the release.
 

So I downloaded the plain 5.2 64bit all-in-one to get a Mac 64bit VM (which by the way whines about not being able to write to the changes file on startup because of a permissions problem; this before it even gets to Marcel's nice 'Welcome to Squeak ' initial config tool) to get a Mac 64bit VM .

Opening the Uzi package to drill down to the actual image and dropping the image on the fresh 64bit all-in-one opened the Uzi image ok.

You can also install all the packages in your own image if you like. I made a script that installs everything: https://github.com/GIRA/UziScript/blob/master/docs/CONTRIBUTING.md#compilation-tools
All you need to do is clone the git repository (and recursively clone the submodules) and then run the script. If the SerialPort works on Mac I don't see any reason why this wouldn't work.
 

First question - where are the comments, folks? I understand not yet having done a round of adding comments all over the place but even the class examples have no helpful comments to offer good places to start trying things. Could save a good bit of time if you add some. Pretty please.

Yes, that's a very good point. I'm not used to writing comments but I definitely should improve the documentation.
 

Next - why a 64 bit image? Right now that means no Raspberry Pi; yes, we're working on it but it's going to be a while. Is there some important reason, or is it just that this is what you've been working on? A lot of people use Pi with Arduino/ESP8266 and this could be a big user base for you.

No, there is no need for 64 bits. It's just the image I had at the moment. And yes, Raspberry Pi would be *very* useful (especially for the robot kit I was talking above) but we haven't even started testing on one yet.
 

Third - why 'uzi' ? That has some not so pleasant connotations.

Oh, that was just a joke that stuck due to lack of a better name. Naming things is really hard. If there is a consensus that it's offensive or something we can change it.

Again, thank you very much for taking the time to test and write these questions. We really appreciate it. I'll try to improve the documentation and maybe start thinking on a better name that doesn't relate to violence.

Thanks,
Richo