Shop OBEX P1 Docs P2 Docs Learn Events
Scratch4Propeller or Scratch4PropBOE — Parallax Forums

Scratch4Propeller or Scratch4PropBOE

MJBMJB Posts: 1,235
edited 2013-06-08 16:36 in Propeller 1
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

Comments

  • jazzedjazzed Posts: 11,803
    edited 2013-06-06 17:16
    Hanno's 12Blocks seems to be based on MIT Scratch.
  • prof_brainoprof_braino Posts: 4,313
    edited 2013-06-07 07:31
    MJB wrote: »
    This is not meant as a replacement for e.g. 12Blocks, even if it looks similar.

    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.

    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!
  • Ken GraceyKen Gracey Posts: 7,392
    edited 2013-06-07 07:59
    Scratch for Propeller has been requested several times before, and if it existed it would provide a seamless connection for using the Propeller from elementary through university.

    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
  • mindrobotsmindrobots Posts: 6,506
    edited 2013-06-07 09:42
    I'm missing something here. Other than being called 12blocks and not Scratch, how is 12blocks NOT Scratch for Propeller?
    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:
    However, Raspberry Pi blogger “SimpleSi” (http://cymplecy.wordpress.com/) has produced a plug-in to allow Scratch to talk to the GPIO pins on the Raspberry Pi too. This allows Scratch to control “real things” and to respond to the “real environment”, which literally opens up a whole new world of possibilities.

    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.
  • KeithEKeithE Posts: 957
    edited 2013-06-07 11:43
    It shouldn't be too hard to interface a propeller to scratch if you can live with the picoboard interface. You can get the source code for it:

    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."
  • HannoHanno Posts: 1,130
    edited 2013-06-08 14:34
    The "Scratch" visual paradigm is very powerful- especially for teaching non-programmers. 12Blocks was initially inspired by Scratch, but really takes every part to the next level- check out my videos/tutorials/pdfs for more info. 12Blocks supports all sorts of devices including the PICAXE, Basic Stamp, DemoBoard, PropBOE 2, Scribbler, TBot, Arduino, Lego NXT, Cogmation Simulator...
    Hanno
  • MJBMJB Posts: 1,235
    edited 2013-06-08 16:36
    @Ken Gracey
    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 ...)
Sign In or Register to comment.