Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-10 Thread Martin Langhoff
On Sun, Jan 9, 2011 at 7:44 PM, Emiliano Pastorino
epastor...@plan.ceibal.edu.uy wrote:
 Oh! I meant we hadn't had time to prepare the kits for the kids, just that.

Ok. Can you list/describe of what base kit you give the kids? Maybe
put it on a page on wiki.laptop.org?

I'd like to buy an arduino kit set for a basic robot, with the same
motors and sensors as you're using. So we can test here in the office
:-)

 yes -- I've seen it. And I have an NXT at home, will be testing it
 soon. I may have a few patches for you...

 I'll appreciate those patches. Do you want me to add you as a committer?

I'll publish to dev.l.o and send you a pull request.

 That's good, but I found some incompatibilities between the latest commit
 of nxt-python and python 2.5.1, so I had to modify a few lines.

Yeah - we can patch it on a suitable rpm for F9 builds. Are you still
targetting F9-based builds?

 Other thought about this point... wouldn't nxt-python package become a
 dependency for TurtleArt if we don't include it in the activity?

Yes, but you always need some root-privileged preparation to get to
the /dev node.

So include nxt-python in the dextrose build, or install the
/etc/udev/rules.d file. I think it makes sense to simplify things and
depend on nxt-python.

nxt-python sets the /dev node to 'lego' group, so you'll need to add
the 'olpc' user to that group.

I plan to do all of the above for our F14 release :-)

  - I've just packaged nbc / nxc for Fedora, which is almost like C,
 and is a very nice way to program the robot. It even allows for
 concurrent programming.

 Mmm... I'd like to get my hands on that code.

http://dev.laptop.org/~martin/nbc/

Fedora is pushing for more robotics tools in the distro --
http://fedoraproject.org/wiki/SIGs/Robotics --


  - And I'm happy to help on the NXT / TA patch (as a personal project,
 not OLPC sponsored).

 He he... personal interests since xmas maybe?

Exactly :-)


m
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- School Server Architect
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-10 Thread Walter Bender
Here is what I am thinking re TA extensions:

a palette class that can be used to both define a method of
determining if a palette should be present and the various blocks and
methods associated with that palette.

Should make it easier to support Arduino, Lego, misc. sensors, etc.

Comments?

-walter

On Mon, Jan 10, 2011 at 10:04 AM, Martin Langhoff
martin.langh...@gmail.com wrote:
 On Sun, Jan 9, 2011 at 7:44 PM, Emiliano Pastorino
 epastor...@plan.ceibal.edu.uy wrote:
 Oh! I meant we hadn't had time to prepare the kits for the kids, just that.

 Ok. Can you list/describe of what base kit you give the kids? Maybe
 put it on a page on wiki.laptop.org?

 I'd like to buy an arduino kit set for a basic robot, with the same
 motors and sensors as you're using. So we can test here in the office
 :-)

 yes -- I've seen it. And I have an NXT at home, will be testing it
 soon. I may have a few patches for you...

 I'll appreciate those patches. Do you want me to add you as a committer?

 I'll publish to dev.l.o and send you a pull request.

 That's good, but I found some incompatibilities between the latest commit
 of nxt-python and python 2.5.1, so I had to modify a few lines.

 Yeah - we can patch it on a suitable rpm for F9 builds. Are you still
 targetting F9-based builds?

 Other thought about this point... wouldn't nxt-python package become a
 dependency for TurtleArt if we don't include it in the activity?

 Yes, but you always need some root-privileged preparation to get to
 the /dev node.

 So include nxt-python in the dextrose build, or install the
 /etc/udev/rules.d file. I think it makes sense to simplify things and
 depend on nxt-python.

 nxt-python sets the /dev node to 'lego' group, so you'll need to add
 the 'olpc' user to that group.

 I plan to do all of the above for our F14 release :-)

  - I've just packaged nbc / nxc for Fedora, which is almost like C,
 and is a very nice way to program the robot. It even allows for
 concurrent programming.

 Mmm... I'd like to get my hands on that code.

 http://dev.laptop.org/~martin/nbc/

 Fedora is pushing for more robotics tools in the distro --
 http://fedoraproject.org/wiki/SIGs/Robotics --


  - And I'm happy to help on the NXT / TA patch (as a personal project,
 not OLPC sponsored).

 He he... personal interests since xmas maybe?

 Exactly :-)


 m
 --
  martin.langh...@gmail.com
  mar...@laptop.org -- School Server Architect
  - ask interesting questions
  - don't get distracted with shiny stuff  - working code first
  - http://wiki.laptop.org/go/User:Martinlanghoff




-- 
Walter Bender
Sugar Labs
http://www.sugarlabs.org
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-10 Thread Martin Langhoff
On Mon, Jan 10, 2011 at 10:29 AM, Walter Bender walter.ben...@gmail.com wrote:
 Here is what I am thinking re TA extensions:

That'd work. But I am trying to think what the right user experience is.

Will they appear...

 - the NXT/Arduino/other is plugged to USB (so the /dev/ node
exists?... what about bluetooth?)

 - if a NXT/Arduino/other was seen once on this laptop?

 - if a file using NXT/Arduino/other extension is opened?

 - if a file using NXT/Arduino/other extension has ever been opened on
this laptop?

 - if the libraries/tools needed are present?

cheers,



m
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- School Server Architect
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-10 Thread Walter Bender
On Mon, Jan 10, 2011 at 10:56 AM, Martin Langhoff
martin.langh...@gmail.com wrote:
 On Mon, Jan 10, 2011 at 10:29 AM, Walter Bender walter.ben...@gmail.com 
 wrote:
 Here is what I am thinking re TA extensions:

 That'd work. But I am trying to think what the right user experience is.

 Will they appear...

  - the NXT/Arduino/other is plugged to USB (so the /dev/ node
 exists?... what about bluetooth?)

That is up to whatever gets coded as the device detection algorithm.
My strategy is to move that decision out from tawindow.py where it
currently sits.


  - if a NXT/Arduino/other was seen once on this laptop?

That is a good question. Because presumably this is a shared resource
and kids might want to hack on their projects without the device.


  - if a file using NXT/Arduino/other extension is opened?

Not sure what you mean here.


  - if a file using NXT/Arduino/other extension has ever been opened on
 this laptop?

  - if the libraries/tools needed are present?

I presume we will include all the necessary libraries in the bundle.

thanks.

-walter

 cheers,



 m
 --
  martin.langh...@gmail.com
  mar...@laptop.org -- School Server Architect
  - ask interesting questions
  - don't get distracted with shiny stuff  - working code first
  - http://wiki.laptop.org/go/User:Martinlanghoff




-- 
Walter Bender
Sugar Labs
http://www.sugarlabs.org
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-10 Thread Martin Langhoff
On Mon, Jan 10, 2011 at 11:37 AM, Walter Bender walter.ben...@gmail.com wrote:
 That is up to whatever gets coded as the device detection algorithm.
 My strategy is to move that decision out from tawindow.py where it
 currently sits.

Perhaps, but in any case, it should be consistent across external
devices that trigger new/different blocks.

 That is a good question. Because presumably this is a shared resource
 and kids might want to hack on their projects without the device.

Exactly my thoughts.

  - if a file using NXT/Arduino/other extension is opened?

 Not sure what you mean here.

What happens when I open a file with NXT/Arduino/other blocks? I've
never connected to the device on my XO.

 I presume we will include all the necessary libraries in the bundle.

Some elements we cannot put in the bundle -- for example, see my
suggestion to Emiliano to depend on the nxt_python rpm, because it
installs a /etc/udev/rules.d/ file that is needed to get to the device
node.

One way or another, you do require that the underlying distro has bits of infra.

cheers,



m
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- School Server Architect
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-09 Thread Emiliano Pastorino
Hi, Martin et al,

We're working on a project to introduce robotics to school and high-school
kids this year.
For that, we're using both Arduino and Lego Mindstorms NXT2.0. There was a
pilot 2 months
ago using Mindstorms, but there wasn't any software support for the XO by
then, so kids used
only the brick interface to program the robots. We had arduino support in
TurtleArt, based on
Sayamindu's clone at
http://git.sugarlabs.org/~sayaminfu/turtleart/arduino-support , but hardware
wasn't ready so they used only nxt for the pilot.

Right now, we've a fully working version of TurtleArt with NXT support at
http://git.sugarlabs.org/~emiliano/turtleart/nxt-support
It supports all the sensors (touch, ultrasonic and color) and motors that
come in the box.
It uses nxt-python (http://code.google.com/p/nxt-python/) to communicate
with the brick, but only
via USB. I'm trying to add bluetooth support but I'm having a little trouble
making kernel modules work
on Dextrose.

You have to set a udev rule in order to make it work because of permissions.
Instructions are around
TurtleArt/tawindow.py:312 . It's just a line you have to add in
/etc/udev/rules.d/*

Next step is to integrate Arduino support, but first we've to test a new
module we bought to drive
more motors at the same time. All the Arduino hardware we use came from
sparkfun.com:
http://www.sparkfun.com/search/results?term=arduinowhat=products
Also, we're using firmata (http://firmata.org/wiki/Main_Page) as Arduino's
firmware.

I'll try to upload a video tomorrow showing the functionalities of
nxt-support clone.

cheers,
Emiliano


On Sun, Jan 9, 2011 at 2:10 AM, Martin Langhoff
martin.langh...@gmail.comwrote:

 On Thu, Dec 30, 2010 at 7:23 PM, Martin Langhoff
 martin.langh...@gmail.com wrote:
  I would recommend as a place to start simply adding a set of blocks to
  control the motors and access the sensor data. And leave the programming
  logic to the Sugar Activity.
 
  Right - but I will need to write an exporter that spits out NXC, and
  perhaps some glue commands that try to export it to the USB-connected
  Brick...

 Well, as it happens, I just spotted Emiliano's new repository and
 commit. It looks exactly like what I was planning to do!

 The meat is at

 http://git.sugarlabs.org/turtleart/nxt-support/commit/69da7620d1d5ec0560f344c5b52859c9a534d8a6

 Emiliano, you're ahead of me! Tell us more about your project!




 m
 --
  martin.langh...@gmail.com
  mar...@laptop.org -- School Server Architect
  - ask interesting questions
  - don't get distracted with shiny stuff  - working code first
  - http://wiki.laptop.org/go/User:Martinlanghoff

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-09 Thread Martin Langhoff
On Sun, Jan 9, 2011 at 8:58 AM, Emiliano Pastorino
epastor...@plan.ceibal.edu.uy wrote:
 We're working on a project to introduce robotics to school and high-school
 kids this year.

Excellent!

 Sayamindu's clone at
  http://git.sugarlabs.org/~sayaminfu/turtleart/arduino-support , but

Wow! I didn't know this existed!  What do you mean when you say hw
wasn't ready?

 Right now, we've a fully working version of TurtleArt with NXT support at
 http://git.sugarlabs.org/~emiliano/turtleart/nxt-support

yes -- I've seen it. And I have an NXT at home, will be testing it
soon. I may have a few patches for you...

 It uses nxt-python (http://code.google.com/p/nxt-python/) to communicate
 with the brick

Here's some complementary good news:

 - nxt-python is packaged and maintained for Fedora 14, and we can
backport the package. You don't need to include it, and the rpm
contains the udev/rules file.

 - I've just packaged nbc / nxc for Fedora, which is almost like C,
and is a very nice way to program the robot. It even allows for
concurrent programming.

 - There's an overall push to get more robotics stuff into Fedora, so
upstream is keen to help

 - And I'm happy to help on the NXT / TA patch (as a personal project,
not OLPC sponsored).

cheers,



m
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- School Server Architect
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-09 Thread Emiliano Pastorino

 Wow! I didn't know this existed!  What do you mean when you say hw
 wasn't ready?


Oh! I meant we hadn't had time to prepare the kits for the kids, just that.

yes -- I've seen it. And I have an NXT at home, will be testing it
 soon. I may have a few patches for you...


I'll appreciate those patches. Do you want me to add you as a committer?

 - nxt-python is packaged and maintained for Fedora 14, and we can
 backport the package. You don't need to include it, and the rpm
 contains the udev/rules file.


That's good, but I found some incompatibilities between the latest commit
of nxt-python and python 2.5.1, so I had to modify a few lines.
Anyways, latest Dextrose builds use python 2.6.1 and everything works
out of the box there.

Other thought about this point... wouldn't nxt-python package become a
dependency for TurtleArt if we don't include it in the activity?


  - I've just packaged nbc / nxc for Fedora, which is almost like C,
 and is a very nice way to program the robot. It even allows for
 concurrent programming.


Mmm... I'd like to get my hands on that code.


  - There's an overall push to get more robotics stuff into Fedora, so
 upstream is keen to help


Great news!


  - And I'm happy to help on the NXT / TA patch (as a personal project,
 not OLPC sponsored).


He he... personal interests since xmas maybe?

cheers,
Emiliano



 cheers,



 m
 --
  martin.langh...@gmail.com
  mar...@laptop.org -- School Server Architect
  - ask interesting questions
  - don't get distracted with shiny stuff  - working code first
  - http://wiki.laptop.org/go/User:Martinlanghoff

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-08 Thread Martin Langhoff
On Thu, Dec 30, 2010 at 7:23 PM, Martin Langhoff
martin.langh...@gmail.com wrote:
 I would recommend as a place to start simply adding a set of blocks to
 control the motors and access the sensor data. And leave the programming
 logic to the Sugar Activity.

 Right - but I will need to write an exporter that spits out NXC, and
 perhaps some glue commands that try to export it to the USB-connected
 Brick...

Well, as it happens, I just spotted Emiliano's new repository and
commit. It looks exactly like what I was planning to do!

The meat is at
http://git.sugarlabs.org/turtleart/nxt-support/commit/69da7620d1d5ec0560f344c5b52859c9a534d8a6

Emiliano, you're ahead of me! Tell us more about your project!




m
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- School Server Architect
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-07 Thread Martin Langhoff
On Tue, Jan 4, 2011 at 11:55 AM, Rafael Enrique Ortiz Guerrero
raf...@sugarlabs.org wrote:
 Not enterely related but some of us were working on
 an arduino TA conection (now only working serially),
 the next step  is to be able to program the arduino chip,
 downloading bytecode generated from TA.

Rafael -- and whomever is working on this Arduino project --

is there a standard-ish Arduino robot + sensots kit I can buy? I don't
want to spend time playing with the robot itself, but if we are
collaborating on this between NXT and Arduino kit, it'll be good to
have an Arduino kit.

cheers,


m
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- School Server Architect
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-07 Thread Rafael Enrique Ortiz Guerrero
Hi Martin


On Fri, Jan 7, 2011 at 4:18 PM, Martin Langhoff
martin.langh...@gmail.comwrote:

 On Tue, Jan 4, 2011 at 11:55 AM, Rafael Enrique Ortiz Guerrero
 raf...@sugarlabs.org wrote:
  Not enterely related but some of us were working on
  an arduino TA conection (now only working serially),
  the next step  is to be able to program the arduino chip,
  downloading bytecode generated from TA.

 Rafael -- and whomever is working on this Arduino project --

 is there a standard-ish Arduino robot + sensots kit I can buy? I don't
 want to spend time playing with the robot itself, but if we are
 collaborating on this between NXT and Arduino kit, it'll be good to
 have an Arduino kit.


No that i know, best shot for now is hacking or working with
handmade analogue and digital sensors, like the ones used for turtle-art
sensors.

(CCed Juan Manuel Betancourt whow we were working to have an standard
arduino robotics kit called hypercube)




  cheers,


 m
 --
  martin.langh...@gmail.com
  mar...@laptop.org -- School Server Architect
  - ask interesting questions
  - don't get distracted with shiny stuff  - working code first
  - http://wiki.laptop.org/go/User:Martinlanghoff

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-07 Thread Martin Langhoff
On Fri, Jan 7, 2011 at 4:32 PM, Rafael Enrique Ortiz Guerrero
raf...@sugarlabs.org wrote:
 is there a standard-ish Arduino robot + sensots kit I can buy? I don't
...
 No that i know, best shot for now is hacking or working with
 handmade analogue and digital sensors, like the ones used for turtle-art
 sensors.

Hmmm. Looking at the NXT, and the little I know of Arduino, it's clear
that to work in a user-friendly manner in something like TA, you have
to make some assumptions about which sensor goes into each input;
which motor to which controller, and how to pair up the tachometers
with the right motor.

That is because in a graphical programming environment, you want to
offer easy sensor and motion blocks. To make that happen, you need
those assumptions.

For a full-blown programming env (C, python, etc), where users are
expected to have variables, and can call functions with many named
parameters, it's ok to use raw input/output ports. It's up to the
user to map those using variables or constants.

So for example, in the case of NXT, if you are going to use the
graphical NXT-G you have to put the right sensor in the right port,
same with motors. So NXT-G has a read distance sensor block  that
you can put in an if condition. And run left motor block. And run
both motors forward, synchronized via tachometer.

Those blocks make it easy and fun and that's where I think we need to be headed.

So I'd strongly suggest (for an initial implementation) settling on an
arduino set that has a couple of sensors, and 2 motors with
tachometers. Light-color sensors are great because you can get started
with follow the border of the thick black line programs.

If we go that way, we can have various modes, matching the robot and
motor/sensor configurations -- NXT, various Arduino models, etc.

cheers,



m
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- School Server Architect
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-07 Thread Walter Bender
On Fri, Jan 7, 2011 at 4:54 PM, Martin Langhoff
martin.langh...@gmail.com wrote:
 On Fri, Jan 7, 2011 at 4:32 PM, Rafael Enrique Ortiz Guerrero
 raf...@sugarlabs.org wrote:
 is there a standard-ish Arduino robot + sensots kit I can buy? I don't
 ...
 No that i know, best shot for now is hacking or working with
 handmade analogue and digital sensors, like the ones used for turtle-art
 sensors.

 Hmmm. Looking at the NXT, and the little I know of Arduino, it's clear
 that to work in a user-friendly manner in something like TA, you have
 to make some assumptions about which sensor goes into each input;
 which motor to which controller, and how to pair up the tachometers
 with the right motor.

 That is because in a graphical programming environment, you want to
 offer easy sensor and motion blocks. To make that happen, you need
 those assumptions.

 For a full-blown programming env (C, python, etc), where users are
 expected to have variables, and can call functions with many named
 parameters, it's ok to use raw input/output ports. It's up to the
 user to map those using variables or constants.

 So for example, in the case of NXT, if you are going to use the
 graphical NXT-G you have to put the right sensor in the right port,
 same with motors. So NXT-G has a read distance sensor block  that
 you can put in an if condition. And run left motor block. And run
 both motors forward, synchronized via tachometer.

 Those blocks make it easy and fun and that's where I think we need to be 
 headed.

 So I'd strongly suggest (for an initial implementation) settling on an
 arduino set that has a couple of sensors, and 2 motors with
 tachometers. Light-color sensors are great because you can get started
 with follow the border of the thick black line programs.

 If we go that way, we can have various modes, matching the robot and
 motor/sensor configurations -- NXT, various Arduino models, etc.


I think we have a pretty good handle on auto-detecting the NXT. If we
can do the same for Arduino, we can have the appropriate palettes just
appear when needed all from one codebase.

If someone wants to override the simple assumptions above, they have
the option of using a Python block and/or jumping into the code
itself. For the former, we could bundle in some examples.

-walter

 cheers,



 m
 --
  martin.langh...@gmail.com
  mar...@laptop.org -- School Server Architect
  - ask interesting questions
  - don't get distracted with shiny stuff  - working code first
  - http://wiki.laptop.org/go/User:Martinlanghoff




-- 
Walter Bender
Sugar Labs
http://www.sugarlabs.org
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-04 Thread Rafael Enrique Ortiz Guerrero
Not enterely related but some of us were working on
an arduino TA conection (now only working serially),
the next step  is to be able to program the arduino chip,
downloading bytecode generated from TA.

Months ago We've found a project called blocos (
http://babuinoproject.blogspot.com/) that uses a
pyCricketLogo compiler   that can be adjusted to TA in order to be able to
program chips.



Rafael Ortiz


On Thu, Dec 30, 2010 at 11:55 PM, Martin Langhoff martin.langh...@gmail.com
 wrote:

 On Thu, Dec 30, 2010 at 5:34 PM, Martin Langhoff
 martin.langh...@gmail.com wrote:
   - NBC/NXC is the most popular tool by all accounts, actively

 RPM at http://dev.laptop.org/~martin/nbc/

   - There is a python module for it, but it's for Python 2.4, looks
  unmaintained, seems very limited in features and it's not clear

 nxt_python is in Fedora actually, has been for a long time.

 cheers,



 m
 --
  martin.langh...@gmail.com
  mar...@laptop.org -- School Server Architect
  - ask interesting questions
  - don't get distracted with shiny stuff  - working code first
  - http://wiki.laptop.org/go/User:Martinlanghoff
 ___
 Sugar-devel mailing list
 Sugar-devel@lists.sugarlabs.org
 http://lists.sugarlabs.org/listinfo/sugar-devel

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-04 Thread Martin Langhoff
On Tue, Jan 4, 2011 at 11:55 AM, Rafael Enrique Ortiz Guerrero
raf...@sugarlabs.org wrote:
 Not enterely related but some of us were working on
 an arduino TA conection (now only working serially),

That's cool! Very related!

Walter mentioned your in private email. From what I see, for both
Arduino and NXT we need

 - A special mode that loads and shows some special blocks, hides the
Turtle, and offers compile-and-copy-to-robot buttons. We need to
make our own blocks and compile/copy support, but the special mode
might need some support from TA itself.

 - An exporter -- in your case to Arduino, in my case to NXT. I am
looking at the talogo.py src, and plan to  export some NXC.

cheers,



m
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- School Server Architect
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-04 Thread Rafael Enrique Ortiz Guerrero
On Tue, Jan 4, 2011 at 12:02 PM, Martin Langhoff
martin.langh...@gmail.comwrote:

 On Tue, Jan 4, 2011 at 11:55 AM, Rafael Enrique Ortiz Guerrero
 raf...@sugarlabs.org wrote:
  Not enterely related but some of us were working on
  an arduino TA conection (now only working serially),

 That's cool! Very related!

 Walter mentioned your in private email. From what I see, for both
 Arduino and NXT we need

  - A special mode that loads and shows some special blocks, hides the
 Turtle, and offers compile-and-copy-to-robot buttons. We need to
 make our own blocks and compile/copy support, but the special mode
 might need some support from TA itself.

  - An exporter -- in your case to Arduino, in my case to NXT. I am
 looking at the talogo.py src, and plan to  export some NXC.

 cheers,


That's exactly what's needed, intersection from both projects is the TA gui
part, and the difference is the exporter. I'll keep you in the loop if any
advance comes from my behalf.











 m
 --
  martin.langh...@gmail.com
  mar...@laptop.org -- School Server Architect
  - ask interesting questions
  - don't get distracted with shiny stuff  - working code first
  - http://wiki.laptop.org/go/User:Martinlanghoff

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-04 Thread Mike Lee
I'd like to also put in a plug for the LEGO's low-cost WeDo robotics
product. While there is some support for it in Scratch, to my
knowledge there isn't no grassroots hacking on the USB interface for
it. I think it would be very cool to have Turtleblocks support the
WeDo sensors and motor (which can be purchased as individual
components from LEGO Education).

I will have an NXT 2.0 kit soon so I am eagerly following these developments.

Mike


On Tue, Jan 4, 2011 at 12:02 PM, Martin Langhoff
martin.langh...@gmail.com wrote:
 On Tue, Jan 4, 2011 at 11:55 AM, Rafael Enrique Ortiz Guerrero
 raf...@sugarlabs.org wrote:
 Not enterely related but some of us were working on
 an arduino TA conection (now only working serially),

 That's cool! Very related!

 Walter mentioned your in private email. From what I see, for both
 Arduino and NXT we need

  - A special mode that loads and shows some special blocks, hides the
 Turtle, and offers compile-and-copy-to-robot buttons. We need to
 make our own blocks and compile/copy support, but the special mode
 might need some support from TA itself.

  - An exporter -- in your case to Arduino, in my case to NXT. I am
 looking at the talogo.py src, and plan to  export some NXC.

 cheers,



 m
 --
  martin.langh...@gmail.com
  mar...@laptop.org -- School Server Architect
  - ask interesting questions
  - don't get distracted with shiny stuff  - working code first
  - http://wiki.laptop.org/go/User:Martinlanghoff
 ___
 Sugar-devel mailing list
 Sugar-devel@lists.sugarlabs.org
 http://lists.sugarlabs.org/listinfo/sugar-devel

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-04 Thread Martin Langhoff
On Tue, Jan 4, 2011 at 12:37 PM, Mike Lee curious...@gmail.com wrote:
 I'd like to also put in a plug for the LEGO's low-cost WeDo robotics

Oh, wishes wishes :-)

Both arduino and nxt are within reach because others have laid the
foundations. You can easily program them from Linux. Here, we're
talking about adding glue between TA and existing tools to program
those 'bots.

AFAICS, for WeDo there is currently no way to program them from Linux.
That's kind of a stumbling block. Maybe it has a similar controller
brick or is close enough that you can work with the NXC/NXB people to
get it supported...

cheers,



m
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- School Server Architect
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-04 Thread Bert Freudenberg

On 04.01.2011, at 20:00, Martin Langhoff wrote:

 On Tue, Jan 4, 2011 at 12:37 PM, Mike Lee curious...@gmail.com wrote:
 I'd like to also put in a plug for the LEGO's low-cost WeDo robotics
 
 Oh, wishes wishes :-)
 
 Both arduino and nxt are within reach because others have laid the
 foundations. You can easily program them from Linux. Here, we're
 talking about adding glue between TA and existing tools to program
 those 'bots.
 
 AFAICS, for WeDo there is currently no way to program them from Linux.
 That's kind of a stumbling block. Maybe it has a similar controller
 brick or is close enough that you can work with the NXC/NXB people to
 get it supported...
 
 cheers,

Doesn't Scratch support WeDo? There might be a clue. See this thread:

http://scratch.mit.edu/forums/viewtopic.php?pid=434923

Also, in 2008/09 someone was working on porting the original LabVIEW-based 
software to the XO (they posted to olpc-devel and Sugar lists without 
mentioning what it was for). But I have not heard anything ever since (even 
though LEGO announced XO support in their original 2008 press release). In that 
thread above it is mentioned that Peru did a project using it.

- Bert -


___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-04 Thread Martin Langhoff
On Tue, Jan 4, 2011 at 3:28 PM, Mike Lee curious...@gmail.com wrote:
 I can tell you that it works very well!

And tell us -- does it run under Linux/Sugar? Linux/Gnome?


m
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- School Server Architect
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-04 Thread Mike Lee
It is a Sugar activity (Linux/Sugar).

Mike

On Tue, Jan 4, 2011 at 3:31 PM, Martin Langhoff
martin.langh...@gmail.com wrote:
 On Tue, Jan 4, 2011 at 3:28 PM, Mike Lee curious...@gmail.com wrote:
 I can tell you that it works very well!

 And tell us -- does it run under Linux/Sugar? Linux/Gnome?


 m
 --
  martin.langh...@gmail.com
  mar...@laptop.org -- School Server Architect
  - ask interesting questions
  - don't get distracted with shiny stuff  - working code first
  - http://wiki.laptop.org/go/User:Martinlanghoff

___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2011-01-04 Thread Martin Langhoff
On Tue, Jan 4, 2011 at 4:00 PM, Mike Lee curious...@gmail.com wrote:
 It is a Sugar activity (Linux/Sugar).

Niiice.



m
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- School Server Architect
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


[Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2010-12-30 Thread Martin Langhoff
Hi Walter, list,

[ disclaimer: this is a hobby project, likely to proceed at very slow
pace, given insane amounts of real work around XOs ;-) ]

I got a lego nxt 2.0 for xmas! Looking around for how to use it from
Linux, I found NXC (a variant on NQC -- 'not quite C' that compiles to
NXT bytecode). It looks like a really pleasant programming language.

It's the most compelling env for various reasons -- but the
interesting thing is that there is no GUI for Linux, and that the
MacOSX/Windows GUI looks a lot like Turtle Blocks (but doesn't seem to
be as good ;-) ).

Here's a good visual summary, put together by a teacher:
http://www.nebomusic.net/rosettastone.html

What I am wondering is what is the smartest path to a TB mode or a
friendly fork of TB that exports NXC code?

After browsing the TB src (looking at master), my observations are

 - I'm very pleased there's a turtleart.py that runs w/o Sugar! Very nice!

 - talogo.py could be an inspiration

 - NXT has very different actions, and fairly specific sensors -- it'd
make sense to have a very different set of blocks available. Also some
blocks have many options. Not sure how to handle these issues.

Ideas?

= Notes on languages and NXT tools =

Notes for anyone else looking into NXT... from most interesting to least

 - NBC/NXC is the most popular tool by all accounts, actively
maintained, and jspaleta is planning to get it into F15. NBC/NXC
creates programs that download to the NXT CPU and run there -- it's a
nice ARM CPU. Fully features, well documented (free online docs). The
author of NBC/NXC has also published an apparently good book.

  http://bricxcc.sourceforge.net/nbc/
  http://www.amazon.com/exec/obidos/ASIN/0973864974/

  Found this tutorial best outline of NXC usage
  http://bricxcc.sourceforge.net/nbc/nxcdoc/NXC_tutorial.pdf

 - There is a python module for it, but it's for Python 2.4, looks
unmaintained, seems very limited in features and it's not clear
whether it creates programs that will execute on the NXT CPU, or just
controls it remotely. Others have reused it and extended it for file
transfers, but it all looks dated; if the NBC/NXC toolchain handles
the actions we need, better.

   http://www.danbbs.dk/~kibria/nxt/nxtsh.py
   
http://chromiteblue.com/archive/projects/nxt/nxt_pull-a-companion-program-for-nxt_push/

 - Big chart of options
   http://www.teamhassenplug.org/NXT/NXTSoftware.html

cheers,



m
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- School Server Architect
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2010-12-30 Thread Walter Bender
On Thu, Dec 30, 2010 at 5:34 PM, Martin Langhoff
martin.langh...@gmail.comwrote:

 Hi Walter, list,

 [ disclaimer: this is a hobby project, likely to proceed at very slow
 pace, given insane amounts of real work around XOs ;-) ]

 I got a lego nxt 2.0 for xmas! Looking around for how to use it from
 Linux, I found NXC (a variant on NQC -- 'not quite C' that compiles to
 NXT bytecode). It looks like a really pleasant programming language.

 It's the most compelling env for various reasons -- but the
 interesting thing is that there is no GUI for Linux, and that the
 MacOSX/Windows GUI looks a lot like Turtle Blocks (but doesn't seem to
 be as good ;-) ).

 Here's a good visual summary, put together by a teacher:
 http://www.nebomusic.net/rosettastone.html

 What I am wondering is what is the smartest path to a TB mode or a
 friendly fork of TB that exports NXC code?

 After browsing the TB src (looking at master), my observations are

  - I'm very pleased there's a turtleart.py that runs w/o Sugar! Very nice!

  - talogo.py could be an inspiration

  - NXT has very different actions, and fairly specific sensors -- it'd
 make sense to have a very different set of blocks available. Also some
 blocks have many options. Not sure how to handle these issues.

 Ideas?

 = Notes on languages and NXT tools =

 Notes for anyone else looking into NXT... from most interesting to least

  - NBC/NXC is the most popular tool by all accounts, actively
 maintained, and jspaleta is planning to get it into F15. NBC/NXC
 creates programs that download to the NXT CPU and run there -- it's a
 nice ARM CPU. Fully features, well documented (free online docs). The
 author of NBC/NXC has also published an apparently good book.

  http://bricxcc.sourceforge.net/nbc/
  http://www.amazon.com/exec/obidos/ASIN/0973864974/

  Found this tutorial best outline of NXC usage
  http://bricxcc.sourceforge.net/nbc/nxcdoc/NXC_tutorial.pdf

  - There is a python module for it, but it's for Python 2.4, looks
 unmaintained, seems very limited in features and it's not clear
 whether it creates programs that will execute on the NXT CPU, or just
 controls it remotely. Others have reused it and extended it for file
 transfers, but it all looks dated; if the NBC/NXC toolchain handles
 the actions we need, better.

   
 http://www.danbbs.dk/~kibria/nxt/nxtsh.pyhttp://www.danbbs.dk/%7Ekibria/nxt/nxtsh.py

 http://chromiteblue.com/archive/projects/nxt/nxt_pull-a-companion-program-for-nxt_push/

  - Big chart of options
   http://www.teamhassenplug.org/NXT/NXTSoftware.html

 cheers,



 m
 --
  martin.langh...@gmail.com
  mar...@laptop.org -- School Server Architect
  - ask interesting questions
  - don't get distracted with shiny stuff  - working code first
  - http://wiki.laptop.org/go/User:Martinlanghoff



I had a similar conversation with the Arduino team in .uy last month. We
discussed how I might make a palette class that made it easier to extend
Turtle Blocks without having to modify the taconstants.py file. I'll keep
you in the loop on that one.

I would recommend as a place to start simply adding a set of blocks to
control the motors and access the sensor data. And leave the programming
logic to the Sugar Activity.

Happy to help any way I can. (BTW, v106, not yet released, but in git, has
support for the XO camera as an additional sensor... a request from a
teacher in .uy.)

Happy 2011

-walter

-- 
Walter Bender
Sugar Labs
http://www.sugarlabs.org
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2010-12-30 Thread Martin Langhoff
On Thu, Dec 30, 2010 at 6:35 PM, Walter Bender walter.ben...@gmail.com wrote:
 I had a similar conversation with the Arduino team in .uy last month. We

Interesting!

 I would recommend as a place to start simply adding a set of blocks to
 control the motors and access the sensor data. And leave the programming
 logic to the Sugar Activity.

Right - but I will need to write an exporter that spits out NXC, and
perhaps some glue commands that try to export it to the USB-connected
Brick...

 Happy to help any way I can. (BTW, v106, not yet released, but in git, has
 support for the XO camera as an additional sensor... a request from a
 teacher in .uy.)

Thanks! Yes, I spotted that in the git repo -

Happy 2011!



m
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- School Server Architect
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2010-12-30 Thread Walter Bender
On Thu, Dec 30, 2010 at 7:23 PM, Martin Langhoff
martin.langh...@gmail.comwrote:

 On Thu, Dec 30, 2010 at 6:35 PM, Walter Bender walter.ben...@gmail.com
 wrote:
  I had a similar conversation with the Arduino team in .uy last month. We

 Interesting!

  I would recommend as a place to start simply adding a set of blocks to
  control the motors and access the sensor data. And leave the programming
  logic to the Sugar Activity.

 Right - but I will need to write an exporter that spits out NXC, and
 perhaps some glue commands that try to export it to the USB-connected
 Brick...


You'll need to write that regardless. You can start by writing some python
and import it into a block. These blocks can take up to 3 arguments. That
way you'd not need to hack any TA code at all to start.


  Happy to help any way I can. (BTW, v106, not yet released, but in git,
 has
  support for the XO camera as an additional sensor... a request from a
  teacher in .uy.)

 Thanks! Yes, I spotted that in the git repo -

 Happy 2011!



 m
 --
  martin.langh...@gmail.com
  mar...@laptop.org -- School Server Architect
  - ask interesting questions
  - don't get distracted with shiny stuff  - working code first
  - http://wiki.laptop.org/go/User:Martinlanghoff




-- 
Walter Bender
Sugar Labs
http://www.sugarlabs.org
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel


Re: [Sugar-devel] TurtleBlocks driving lego NXT 2.0 -

2010-12-30 Thread Martin Langhoff
On Thu, Dec 30, 2010 at 5:34 PM, Martin Langhoff
martin.langh...@gmail.com wrote:
  - NBC/NXC is the most popular tool by all accounts, actively

RPM at http://dev.laptop.org/~martin/nbc/

  - There is a python module for it, but it's for Python 2.4, looks
 unmaintained, seems very limited in features and it's not clear

nxt_python is in Fedora actually, has been for a long time.

cheers,



m
-- 
 martin.langh...@gmail.com
 mar...@laptop.org -- School Server Architect
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
___
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel