Scratch4Propeller or Scratch4PropBOE
MJB
Posts: 1,235
My 7 year old nice loves SCRATCH the MIT programming language / environment for kids.
http://scratch.mit.edu/ which has a HUGE community.
Now I discovered an interface for Scratch to the outside world called Scratch4Arduino.
Homepage: http://web.media.mit.edu/~ericr/s4a.php
Videos:
http://www.youtube.com/watch?v=rHPmHwdGte0
http://www.youtube.com/watch?v=hrZOCmlOjiQ
Scratch and Scratch4Arduino is open source, written in Squeak, a Smalltalk dialect.
This is not meant as a replacement for e.g. 12Blocks, even if it looks similar.
It is PC-based and uses Arduino or even better Propeller to interact with the physical world.
Since I worked with Smalltalk many years ago this sounds like fun to me
having a Scratch4PropBOE. With Scratch for building PC user interfaces
and PropBOE to do real things out there.
Any comments??
Markus
http://scratch.mit.edu/ which has a HUGE community.
Now I discovered an interface for Scratch to the outside world called Scratch4Arduino.
Homepage: http://web.media.mit.edu/~ericr/s4a.php
Videos:
http://www.youtube.com/watch?v=rHPmHwdGte0
http://www.youtube.com/watch?v=hrZOCmlOjiQ
Scratch and Scratch4Arduino is open source, written in Squeak, a Smalltalk dialect.
This is not meant as a replacement for e.g. 12Blocks, even if it looks similar.
It is PC-based and uses Arduino or even better Propeller to interact with the physical world.
Since I worked with Smalltalk many years ago this sounds like fun to me
having a Scratch4PropBOE. With Scratch for building PC user interfaces
and PropBOE to do real things out there.
Any comments??
Markus
Comments
Hey Markus
The propforth project does something you might be interested in, even if you don't use propforth.
PF has multichannel serial (MCS) which implement a high speed synchronous channel (similar to Bean's high speed serial).
MCS also implements channels similar to the Go language's Go Channels. These are modelled after CSP channels, although it has been pointed out that these are sufficiently different from CSP channels that we shouldn't call them CSP channels).
Anyways, we find that we can run on the prop and talk over these channels, and run on the PC and talk on these channels. The prop thinks the PC is another core, and the PC thinks the prop is another task. So we can use the prop to do the realtime stuff, and the PC (or RPi, etc) for the crunching, long terms storage, long term processing, and other workstation services. Nifty!
So basically, what you want is doable, and has been implemented and is working in another language, and you could follow this to do the same with small talk etc.
EDIT - some of the material is a little tough, if you want to walk through it, don't hesitate to ask.
Cheers!
I don't know what it takes to plug into Scratch, but we'd be honored to support such an effort as practical.
Ken Gracey
12blocks is a very powerful, mature environment that continues to be updated and enhanced. 1blocks allows you to program your propeller and allows it to communicate information back to the PC and be displayed in various graphical ways.
Then there is something like this:
Where you would have a Propeller running some sort of control program (like the Arduino does with Firmata and Processing) that the PC can communicate with. As above, then your host based Scratch program can interact with your Prop as a peripheral. 12blocks offers this now. We can do this between GO and PropForth at a basic level. The trick here is providing a control program that can run on the Prop and expose all the hardware to a PC host through the serial port with a common, documented protocol than can be expanded and packed up in various modules for various Prop languages.
http://www.picocricket.com/picoboard.html
Edited to add - see here for the internals http://info.scratch.mit.edu/Sensor_Board
Edited to add - maybe the GoGo board protocol is more in line with what you would need - http://richardgoyette.com/gogoSerialProtocol2004.pdf
Here's something else that might be interesting:
"A block module and local server for Snap! to interface with the Parallax S2"
http://technoboy10.github.io/ssquared/
If you don't know what Snap! is:
"Snap! (formerly BYOB) is a visual, drag-and-drop programming language. It is an extended reimplementation of Scratch (a project of the Lifelong Kindergarten Group at the MIT Media Lab) that allows you to Build Your Own Blocks. It also features first class lists, first class procedures, and continuations. These added capabilities make it suitable for a serious introduction to computer science for high school or college students."
Hanno
I write about some of the aspects below.
There is a new SCRATCH 2.0 and support for the Scratch-Sensor-Board is
announced for this summer. A PropBOE with a poti and a few sensors could do the
basic job of the Scratch-Sensor-Board as well with a little program and expose
Scratchers to the Propeller.
@KeithE
thanks
exactly this was my thought to start with.
Write a litte Prop-Firmware to emulate the Picoboard / Scratch-Sensor-Board protocol,
so you are able to talk to a PropBOE from SCRATCH.
Of course this protocal is quite restricted.
So my next idea was to use Tachyon on the Prop,
so I can download little code pieces and have them communicate with SCRATCH.
Didn't see GoGo before, will have a look - thanks.
@jazzed
Yes - 12blocks shows some similarity to Scratch.
I google searched Hannos onerobot.org for SCRATCH, but only found this one reference.
HANNO: "My goal remains to get students started with an intuitive yet powerful "scratch-like" visual programming language ..."
There is no mention, that 12blocks is based on MIT Scratch. EDIT: see Hannos post above
As I understand MIT Scratch is GPL-2 licensed so everything based on it should be GPL-2 licensed as well,
whereas 12blocks seems to be closed source (I don't want to start another open vs. closed discussion here !!)
@prof_braino
thanks, I am following the Prop-Forth threads here. I have installed it here,
but when doing FORTH I am with Tachyon at the moment,
since I am mostly using the close to the HW side and I like the openness of Peter's
code which I love to read an do my little experiments with.
My interest in this topic really starts from SCRATCH which I (and my 6 year old nice) are using.
And since I like the Prop I want the Prop be accessible from SCRATCH.
It is not my focus to program the Prop via SCRATCH, but just to use its interface to the real world.
Programming the Prop visually, that is the 12blocks approach
(I have recently installed the 12blocks demo and like it very much btw..).
That is why PropForth doesn't really help here.
@mindrobots / @ALL
sometimes the discussions here look a little Propeller centric to me (understandably, in a Propeller-Forum of course).
we had something similar recently in a thread about Prop & Arduino.
Where the question was - 'why should we use the Arduino IDE to program the Prop,
given all the Prop-Tools available.'
but my thought was the other way round.
Why don't give the Arduino users a 'better' Arduino-Board, based on the Prop. (like PropASC).
s.o. replied: "don't find the herd - lead it" - which I like.
But there again, PropASC was mostly seen as a Prop-Board, that can reuse Arduino-Shields (which is great of course)
but not as a HW to get Arduino users interrested in the Propeller. (I know - this need some SW effort)
Of course we here in the Propeller Forums know the Prop already.
So this both (Arduino-Multicore as I called it and Scratch4PropBOE) is more a question of Parallax marketing strategy to tap into the huge user bases of Arduino (I don't know how many) and SCRATCH (3 million shared projects, >500000 registered users?)
@ Ken Gracey & ALL
STEPS:
1. step could be to write a little Propeller program plus a HW guide,
e.g. for PropBOE to emulate the Scratch-Sensor-Board to be used with Scratch 1.4 and later with Scratch 2.0
2. There is a special extended version of Scratch, the S4A - Scratch for Arduino,
which provides HW access to Arduino-Duemillanove
Attachment not found.
This could be extended to support the Prop / e.g. starting with PropBOE ?
3. Extension of S4A to provide HW access to Propeller (I envision running Tachyon on the Prop,
so new code could be downloaded from SCRATCH (not visually constructed yet)
X. Using Scratch to create code for the prop is a completely different animal
(and quite complex to build like 12blocks)
Here the question might be, how to sell the Prop with 12blocks to the Scratch community.
@Hanno
thanks for the clarification above (still have 29 trial days on 12blocks left ...)