If you have kids who play Minecraft and a spare QuickStart board...
KeithE
Posts: 957
I posted some information about using a QuickStart board to interface with a Minecraft server on this site:
https://groups.google.com/forum/embed/?place=categories%2Fadventures-in-minecraft-forum&showsearch=true&showtabs=false&parenturl=http%3A%2F%2Fwww.stuffaboutcode.com%2Fp%2Fadventures-in-minecraft-forum.html&theme=default#!category-topic/adventures-in-minecraft-forum/mRuna0xfBeI
This is just a trivial port of work done by others, and is pretty simple compared to a lot of things posted up here. But it might be a way to get kids interested in Parallax devices. I had posted about how much interest the Piper kickstarter received here previously. It seems to me that this could be interesting to Parallax since they have so many other educational products, and Minecraft is getting some interest from schools.
Here is the bulk of the post - let me know if anyone gets this working, or has any suggestions for improvements. I didn't want to post code here because the licensing isn't entirely clear to me. But the authors do discuss the license on their site, and are ok with people using the code as a basis for their own project.
One question I do have is if anyone knows of an alternative serial protocol that could be easily used to interface with sensors and devices such as LED strips. Ideally it would deal with serial corruption and loss as well, and be available for Python. The authors of the Adventures in Minecraft hint that they are working on something like this, but it's hard to imagine that something suitable doesn't exist. Maybe everyone invents their own proprietary protocol. I remember there being something like this for Scratch. (e.g. Go Go Board Serial Protocol)
Heater - someone on that site did post about using an Espruino ;-)
---
Here is information about the book "Adventures in Minecraft" for those who somehow stumbled upon this forum without going through [url]www.stuffaboutcode.com:[/url]
http://www.wiley.com/WileyCDA/WileyTitle/productCd-111894691X.html
http://www.stuffaboutcode.com/p/adventures-in-minecraft.html
Download the appropriate starter kit from here:
http://www.wiley.com/WileyCDA/Section/id-823690.html
Martin discusses setting up canarymod and raspberry juice here:
http://www.stuffaboutcode.com/2014/10/minecraft-raspberryjuice-and-canarymod.html
Use the Parallax SimpleIDE to compile anyio.c and program it into EEPROM on a QuickStart board. See here for more information:
http://learn.parallax.com/propeller-c-set-simpleide
Note that your system needs the FTDI drivers to communicate with the QuickStart board. On some systems such as recent OS X installations this is built-in. (At least I think the built-in ones should work.) Parallax should have some guidance for this. (Note that you can even find people programming their Propeller chips from Raspberry PIs.) The Parallax forums are very helpful.
I recommend patching anyio/arduino/GPIO.py so that it gives time for the Propeller chip to boot, and flushes some garbage characters from the host's UART receive buffer. (See attached file for the changes. You can rename your original if you want to see the changes.)
diff anyio/arduino/GPIO.py.orig anyio/arduino/GPIO.py
4a5,10
> ###
> # Begin QuickStart hack
> import time
> # End QuickStart hack
> ###
>
52a59,62
> ###
> # Begin QuickStart hack
> # Trying lower baudrate to see if it improves reliability - this requires that the QuickStart
> # firmware be recompiled and loaded into the EEPROM
53a64,66
> #BAUD = 57600
> # End QuickStart hack
> ###
65a79,86
> ###
> # Begin QuickStart hack
> time.sleep(3)
> print "Waiting 3 seconds for QuickStart board to boot (since DTR resets the Parallax Propeller)"
> # Flush malformed characters that are sent before the Propeller is done with initialization
> s.flushInput()
> # End QuickStart hack
> ###
buttonscan.py is an example Python script to scan the resistive touch buttons and light up LEDs. It doesn't communicate with the Minecraft server, so run it before doing anything else as a sanity check that the QuickStart is good to go. Don't forget to run findPort.py first to let it setup portscan.cache.
One the above is working then startup the minecraft server and then client, and run the modified detonator.py as a quick test case.
https://groups.google.com/forum/embed/?place=categories%2Fadventures-in-minecraft-forum&showsearch=true&showtabs=false&parenturl=http%3A%2F%2Fwww.stuffaboutcode.com%2Fp%2Fadventures-in-minecraft-forum.html&theme=default#!category-topic/adventures-in-minecraft-forum/mRuna0xfBeI
This is just a trivial port of work done by others, and is pretty simple compared to a lot of things posted up here. But it might be a way to get kids interested in Parallax devices. I had posted about how much interest the Piper kickstarter received here previously. It seems to me that this could be interesting to Parallax since they have so many other educational products, and Minecraft is getting some interest from schools.
Here is the bulk of the post - let me know if anyone gets this working, or has any suggestions for improvements. I didn't want to post code here because the licensing isn't entirely clear to me. But the authors do discuss the license on their site, and are ok with people using the code as a basis for their own project.
One question I do have is if anyone knows of an alternative serial protocol that could be easily used to interface with sensors and devices such as LED strips. Ideally it would deal with serial corruption and loss as well, and be available for Python. The authors of the Adventures in Minecraft hint that they are working on something like this, but it's hard to imagine that something suitable doesn't exist. Maybe everyone invents their own proprietary protocol. I remember there being something like this for Scratch. (e.g. Go Go Board Serial Protocol)
Heater - someone on that site did post about using an Espruino ;-)
---
Here is information about the book "Adventures in Minecraft" for those who somehow stumbled upon this forum without going through [url]www.stuffaboutcode.com:[/url]
http://www.wiley.com/WileyCDA/WileyTitle/productCd-111894691X.html
http://www.stuffaboutcode.com/p/adventures-in-minecraft.html
Download the appropriate starter kit from here:
http://www.wiley.com/WileyCDA/Section/id-823690.html
Martin discusses setting up canarymod and raspberry juice here:
http://www.stuffaboutcode.com/2014/10/minecraft-raspberryjuice-and-canarymod.html
Use the Parallax SimpleIDE to compile anyio.c and program it into EEPROM on a QuickStart board. See here for more information:
http://learn.parallax.com/propeller-c-set-simpleide
Note that your system needs the FTDI drivers to communicate with the QuickStart board. On some systems such as recent OS X installations this is built-in. (At least I think the built-in ones should work.) Parallax should have some guidance for this. (Note that you can even find people programming their Propeller chips from Raspberry PIs.) The Parallax forums are very helpful.
I recommend patching anyio/arduino/GPIO.py so that it gives time for the Propeller chip to boot, and flushes some garbage characters from the host's UART receive buffer. (See attached file for the changes. You can rename your original if you want to see the changes.)
diff anyio/arduino/GPIO.py.orig anyio/arduino/GPIO.py
4a5,10
> ###
> # Begin QuickStart hack
> import time
> # End QuickStart hack
> ###
>
52a59,62
> ###
> # Begin QuickStart hack
> # Trying lower baudrate to see if it improves reliability - this requires that the QuickStart
> # firmware be recompiled and loaded into the EEPROM
53a64,66
> #BAUD = 57600
> # End QuickStart hack
> ###
65a79,86
> ###
> # Begin QuickStart hack
> time.sleep(3)
> print "Waiting 3 seconds for QuickStart board to boot (since DTR resets the Parallax Propeller)"
> # Flush malformed characters that are sent before the Propeller is done with initialization
> s.flushInput()
> # End QuickStart hack
> ###
buttonscan.py is an example Python script to scan the resistive touch buttons and light up LEDs. It doesn't communicate with the Minecraft server, so run it before doing anything else as a sanity check that the QuickStart is good to go. Don't forget to run findPort.py first to let it setup portscan.cache.
One the above is working then startup the minecraft server and then client, and run the modified detonator.py as a quick test case.