Changes

Line 4: Line 4:     
The plugin mechanism is currently used to provide support for sensors, the camera, RFID, and the Media, Extras, and Portfolio palettes. A plugin has been [http://lists.sugarlabs.org/archive/iaep/2011-March/012715.html developed for WeDo] [http://tonyforster.blogspot.com/2012/01/wedo-plugin-for-turtle-art.html (and here)] and additional plugins are being developed for Arduino, NXT, and GoGo.
 
The plugin mechanism is currently used to provide support for sensors, the camera, RFID, and the Media, Extras, and Portfolio palettes. A plugin has been [http://lists.sugarlabs.org/archive/iaep/2011-March/012715.html developed for WeDo] [http://tonyforster.blogspot.com/2012/01/wedo-plugin-for-turtle-art.html (and here)] and additional plugins are being developed for Arduino, NXT, and GoGo.
 +
 +
'''NOTE''': As of Version 193, it is necessary to use a set of refactored plugins. These will be posted to the wiki ASAP.
    
===How to install a plugin===
 
===How to install a plugin===
Plugins are typically distributed as a *.tar.gz archive
+
Plugins are typically distributed as a *.tar.gz archive.
 +
 
 +
In versions 137+, there is a built-in method for installing plugins from Turtle Art itself:
 +
# Download the plugin to your Sugar Journal, a USB key, or $HOME/Documents.
 +
# Click on the 'Load plugin' button found on the Activity toolbar.
 +
# Select the plugin downloaded in Step 1.
 +
# Go to the Palette toolbar to confirm that the plugin has installed and loaded properly.
 +
 
 +
In early versions of Turtle Art, please follow these instructions:
    
[[File:Archivemanager.jpg]]
 
[[File:Archivemanager.jpg]]
Line 26: Line 36:     
Note that you should not need root access to install plugins into your home directory.
 
Note that you should not need root access to install plugins into your home directory.
 +
 +
===How to uninstall a plugin===
 +
Your plugin is installed in a subdirectory of
 +
 +
/home/olpc/Activities/TurtleArt.activity/plugins
 +
 +
In Terminal or Gnome, delete that subdirectory. You may need to make the Activities directory writeable first, in Terminal type
 +
 +
chmod 777 /home/olpc/Activities
    
===Available plugins===
 
===Available plugins===
Line 34: Line 53:  
* rfid (This plugin allows interfacing with a RFID reader)
 
* rfid (This plugin allows interfacing with a RFID reader)
   −
====Project Butia====
+
====Xevents====
 +
Xevents it's a plugin for make accesibility interfaces in an easy way.
 +
 
 +
[[File:Xpalette1.png]]
 +
 
 +
=====GIT code=====
 +
http://sourceforge.net/p/butia/code/ci/master/tree/turtlebots/xevents/
 +
 
 +
=====Download=====
 +
http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php/Archivo:Xevents.tar.gz
 +
 
 +
=====Wiki=====
 +
http://wiki.sugarlabs.org/go/Xevents
 +
 
 +
====Butia====
    
Add a palette to control the Butiá robot
 
Add a palette to control the Butiá robot
   −
[[File:butia_palette.png|900px]]
+
[[File:butia_palette.png|1050px]]
 +
 
 +
And a extra palette to control the hacks pin of USB4Butiá board and special sensors:
 +
 
 +
[[File:butia_palette_extra.png|1050px]]
    
Andrés Aguirre is part of the Butiá team in Montevideo:
 
Andrés Aguirre is part of the Butiá team in Montevideo:
Line 44: Line 81:  
:In future months we will go to the schools where we give the robots to continue teaching and giving new challenges. If you would like to see more about Butiá, we have a flickr site: http://www.flickr.com/photos/butiarobot/ and also a web page: http://www.fing.edu.uy/inco/proyectos/butia  
 
:In future months we will go to the schools where we give the robots to continue teaching and giving new challenges. If you would like to see more about Butiá, we have a flickr site: http://www.flickr.com/photos/butiarobot/ and also a web page: http://www.fing.edu.uy/inco/proyectos/butia  
   −
[http://www.fing.edu.uy/inco/proyectos/butia Proyecto Butiá]
+
Ceibal has this publication (in Spanish): [https://www.google.com/url?q=http://valijas.ceibal.edu.uy/storage/app/media/Guias%2520de%2520uso/Turtlebots.pdf&sa=D&ust=1518962161565000&usg=AFQjCNFsTETjQ_25Fz-hX9giAVz-YRLIyQ]
 +
 
 +
Butiá is also featured in a short film by Antel [http://www.adinettv.com.uy/video/2932] (go to 1:30).
 +
 
 +
[http://www.fing.edu.uy/inco/proyectos/butia Proyecto Butiá] (in Spanish) , [[Activities/TurtleBots]] (in English)
 +
 
 +
=====GIT code=====
 +
 
 +
[http://sourceforge.net/projects/butia/?source=directory Butia in SourceForge]
    
=====Download=====
 
=====Download=====
   −
[http://www.fing.edu.uy/inco/proyectos/butia/files/butia_plugin/butia_plugin.tar.gz butia_plugin.tar.gz]
+
[http://www.fing.edu.uy/inco/proyectos/butia/files/plugins/butia_plugin.tar.gz butia_plugin.tar.gz]
    
====FollowMe====
 
====FollowMe====
Line 54: Line 99:  
This plugin uses the camera and get the position of an object of a color.
 
This plugin uses the camera and get the position of an object of a color.
 
The plugin add this palette:
 
The plugin add this palette:
[[File:turtleart-followme-palette2.png|800px]]
+
[[File:turtleart-followme-palette2.png|1050px]]
    
=====Examples=====
 
=====Examples=====
Line 82: Line 127:  
=====Download=====
 
=====Download=====
   −
[http://www.fing.edu.uy/inco/proyectos/butia/files/followme_ta_plugin.zip followme_ta_plugin.zip]
+
[http://www.fing.edu.uy/inco/proyectos/butia/files/plugins/followme_plugin.tar.gz followme_plugin.tar.gz]
 +
 
 +
====Pattern detection====
 +
 
 +
Add a palette to enable pattern detection with the camera.
 +
 
 +
[[File:PatternDetectionPalette.png]]
 +
 
 +
Translation:
 +
* "Viendo Señal": Pattern in sight
 +
* "Distancia Señal" Pattern distance
 +
 
 +
This palette adds blocks to detect ARToolkit patterns and the distance to them. This plugin is an ARToolkit wrapper, and comes with several traffic signals already configured.
 +
 
 +
=====Examples=====
 +
 
 +
Here are some samples and videos on how to use the palette blocks.
 +
 
 +
[[File:PatternDetectionSampleStop.png | top]] {{#widget:YouTube|id=vF9ZhQYIwVg}}
 +
 
 +
[[File:PatternDetectionSampleYield.png | top]] {{#widget:YouTube|id=vF9ZhQYIwVg}}
 +
 
 +
[[File:PatternDetectionSampleWrongWay.png | top]] {{#widget:YouTube|id=vF9ZhQYIwVg}}
 +
 
 +
[http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php/Butia_reconocimiento_marcas Pattern detection plugin] (in Spanish)
 +
 
 +
=====GIT code=====
 +
 
 +
Hosted with the Butiá source
 +
[http://sourceforge.net/p/butia/code/ci/dcc226276a565a54bbdf1807c30ff50aa648f70f/tree/turtle_art_plugin/pattern_detection/ Pattern Detection in SourceForge (part of Butia project)]
 +
 
 +
=====Download=====
 +
 
 +
[http://www.fing.edu.uy/inco/proyectos/butia/files/plugins/pattern_detection.tar.gz pattern_detection.tar.gz]
    
====WeDo====
 
====WeDo====
   −
Tony Forster created a [http://tonyforster.blogspot.com/2012/01/wedo-plugin-for-turtle-art.html WeDo plugin] based on the [https://github.com/itdaniher/WeDoMore/tree/master/TurtleArt work of I.T. Daniher].
+
Tony Forster created a [http://tonyforster.blogspot.com/2012/01/wedo-plugin-for-turtle-art.html WeDo plugin] based on the [https://github.com/itdaniher/WeDoMore/tree/master/TurtleArt work of I.T. Daniher]. Alan Aguiar has also helped with the plugin.
 +
 
 +
The source code repository is available here: [https://github.com/itdaniher/wedomore].
    
[[File:WeDo plugin.png|250px]]
 
[[File:WeDo plugin.png|250px]]
    
=====Download=====
 
=====Download=====
[[File:Wedo_plugin.tar.gz]] WeDo plugin
+
 
 +
* [[File:Wedo_plugin_2.tar.gz]] Version 2, which supports multiple WeDo devices.
 +
* [http://www.fing.edu.uy/inco/proyectos/butia/files/plugins/wedo_plugin.tar.gz /wedo_plugin.tar.gz]
    
'''Note:''' Check out https://github.com/itdaniher/WeDoMore/tree/master/udev for instructions on how to setup the proper permissions talk to the device. In the new versions of Sugar the udev is included.
 
'''Note:''' Check out https://github.com/itdaniher/WeDoMore/tree/master/udev for instructions on how to setup the proper permissions talk to the device. In the new versions of Sugar the udev is included.
Line 97: Line 179:  
====LEGO NxT====
 
====LEGO NxT====
   −
[[File:turtleart-lego-nxt-palette.png]]
+
Motors palette:
 +
 
 +
[[File:turtleart-lego-nxt-palette.png|1050px]]
 +
 
 +
Sensors palette:
 +
 
 +
[[File:turtleart-lego-nxt-palette-sensors.png|1050px]]
   −
=====Example=====
+
=====Examples=====
    
[[File:turtleart-lego-nxt-example1.png]]
 
[[File:turtleart-lego-nxt-example1.png]]
   −
====Downloads====
+
Moving the Turtle:
 +
 
 +
[http://www.youtube.com/watch?v=C6Na6MRfyEc Example - Part 1]
 +
 
 +
[http://www.youtube.com/watch?v=UlD-c2CE0bs Example - Part 2]
 +
 
 +
A crane:
 +
[http://www.youtube.com/watch?v=S8HRbDLO7LM Example of Crane]
 +
 
 +
=====GIT code =====
 +
 
 +
You can see all code in: [http://git.sugarlabs.org/nxt_plugin NXT_plugin GIT]
 +
 
 +
=====Downloads=====
 +
 
 +
LEGO NxT Plugin [http://www.fing.edu.uy/inco/proyectos/butia/files/plugins/nxt_plugin.tar.gz nxt_plugin.tar.gz]
 +
 
 +
====Expeyes====
   −
[[File:nxt_plugin.tar.gz]] LEGO NxT plugin
+
The Expeyes Plugin:
 +
 
 +
[https://github.com/walterbender/expeyes]
 +
 
 +
[[Image:Expeyes.png|300px]]
 +
 
 +
This is a first pass at a plugin for the ExpEyes Junior. For more info, see [http://expeyes.in].
 +
 
 +
Note that you need to set up the udev rules for the device before first using this plugin by running the postinst script bundled with the plugin:
 +
 
 +
sudo sh ~/Activities/TurtleArt.activity/plugins/eyes/postinst
    
====Arduino====
 
====Arduino====
 +
The Arduino is an inexpensive single board computer which can be controlled by Turtle Art and used for robotics experiments. The XO-4 touchscreen laptop comes with two unpopulated circuit boards, the [http://wiki.laptop.org/go/XO_Stick XOstick] and the [http://wiki.laptop.org/go/XOrduino XOrduino].
    
The Arduino Plugin:
 
The Arduino Plugin:
   −
[[File:turtleart-arduino-palette.png|800px]]
+
[[File:turtleart-arduino-palette.png|1050px]]
    
There are several efforts to develop Turtle Art support for Arduino.
 
There are several efforts to develop Turtle Art support for Arduino.
Line 125: Line 241:  
* Auto detection of ttyUSBx port for FTDI device (Arduino board uses this for USB)
 
* Auto detection of ttyUSBx port for FTDI device (Arduino board uses this for USB)
   −
It requires the Firmata protocol to be uploaded to the Arduino board.
+
It requires the Firmata protocol to be uploaded to the Arduino board. (see [http://wiki.laptop.org/go/Arduino here])
 
Use the latest Firmata version (2.1 as of now) downloaded from the Firmata page (firmata.org)
 
Use the latest Firmata version (2.1 as of now) downloaded from the Firmata page (firmata.org)
 
The Firmata version included with the Arduino IDE has some inconsistencies.
 
The Firmata version included with the Arduino IDE has some inconsistencies.
Line 131: Line 247:  
This version has english and spanish translations.
 
This version has english and spanish translations.
   −
====Examples====
+
=====Examples=====
 
[[File:turtleart-arduino-example1.png]]
 
[[File:turtleart-arduino-example1.png]]
   −
====Downloads====
+
=====GIT code =====
The plugin file can be downloaded from [[File:arduino.tar.gz]].
+
 
 +
You can see all code in: [http://git.sugarlabs.org/arduino arduino_plugin GIT]
 +
 
 +
=====Downloads=====
 +
The plugin file can be downloaded from [http://www.fing.edu.uy/inco/proyectos/butia/files/plugins/arduino_plugin.tar.gz arduino_plugin.tar.gz].
    
====Currency====
 
====Currency====
 
This plugin adds a pallette of currency (notes and coins), these items can be acted on by arithmetic operators
 
This plugin adds a pallette of currency (notes and coins), these items can be acted on by arithmetic operators
   −
[[File:Oz currency.png|250px]]
+
[[File:Oz currency.png|250px]] [[File:Soles.png|250px]]
    
:[[File:Oz-coins.tar.gz]] Australian coins plugin
 
:[[File:Oz-coins.tar.gz]] Australian coins plugin
Line 150: Line 270:  
:[[File:Rwanda-currency.tar.gz]] Rwanda francs plugin
 
:[[File:Rwanda-currency.tar.gz]] Rwanda francs plugin
 
:[[File:UY-currency.tar.gz]] Uruguayan peso plugin  
 
:[[File:UY-currency.tar.gz]] Uruguayan peso plugin  
:[[File:US-bills.tar.gz]] US bills plugin
+
:[[File:US-bills.tar.gz]] US dollars plugin
:[[File:US-currency.tar.gz]] US dollar plugin
+
:[[File:Soles.tar.gz]] Peruvian Soles plugin
 +
:<strike>[[File:US-currency.tar.gz]] US dollars plugin</strike>
    
====Nutrition====
 
====Nutrition====
Line 158: Line 279:  
[[File:Food-plugin.png|250px]]
 
[[File:Food-plugin.png|250px]]
   −
====Downloads====
+
=====Downloads=====
    
[[File:Food-plugin.tar.gz]] ('''Note:''' Requires TurtleBlocks v133 or greater)
 
[[File:Food-plugin.tar.gz]] ('''Note:''' Requires TurtleBlocks v133 or greater)
Line 168: Line 289:     
Use these blocks to create objects that are added to the bodylist and jointlist of a Box2d database used by the Physics Activity. Objects are positioned by the turtle x,y and colored based on the current pen attributes. From left to right:
 
Use these blocks to create objects that are added to the bodylist and jointlist of a Box2d database used by the Physics Activity. Objects are positioned by the turtle x,y and colored based on the current pen attributes. From left to right:
 +
* density: set the object density (0 is light; 1 is heavy)
 +
* friction: set the object friction (0 is slippery; 1 is sticky)
 +
* bounciness: set the object restitution (0 is rigid; 1 is bouncy)
 
* start polygon: use the current turtle x,y position to specify the first vertex of a polygon
 
* start polygon: use the current turtle x,y position to specify the first vertex of a polygon
 
* add point: use the current turtle x,y position to add a vertex to a polygon
 
* add point: use the current turtle x,y position to add a vertex to a polygon
Line 177: Line 301:  
* rectangle: add a rectangle object at the current turtle x,y position
 
* rectangle: add a rectangle object at the current turtle x,y position
 
* gear: add a gear object at the current turtle x,y position with the number of teeth as the argument
 
* gear: add a gear object at the current turtle x,y position with the number of teeth as the argument
 +
* gear radius: returns the radius of a gear with the number of teeth as the argument (useful for positioning gears)
 
* motor: add a motor at the current turtle x,y position (attached to the object at this position)
 
* motor: add a motor at the current turtle x,y position (attached to the object at this position)
* pin: add a pin at the current turtle x,y position (attached to the object at this position)
+
* pin: add a pin at the current turtle x,y position (attached to the object at this position) to prevent movement
 +
* pen: add a pen at the current turtle x,y position (attached to the object at this position) to trace motion
 
* joint: add a joint between the object at the current turtle x,y position and the object at x, y
 
* joint: add a joint between the object at the current turtle x,y position and the object at x, y
* density: set the object density (0 is light; 1 is heavy)
  −
* friction: set the object friction (0 is slippery; 1 is sticky)
  −
* bounciness: set the object restitution (0 is rigid; 1 is bouncy)
   
* save as Physics project: save the current bodylist and jointlist as a Physics project in the Journal
 
* save as Physics project: save the current bodylist and jointlist as a Physics project in the Journal
 
'''Note:''' The current model is cleared whenever the Erase button is pressed or a Clean block is run.
 
'''Note:''' The current model is cleared whenever the Erase button is pressed or a Clean block is run.
  −
====Downloads====
  −
  −
[[File:Physics-plugin.tar.gz]] Physics plugin
      
===== Example =====
 
===== Example =====
Line 196: Line 315:  
[[File:TAGear.png|300px]]
 
[[File:TAGear.png|300px]]
    +
'''For Turtle Blocks versions 107 - 183'''
 
[[File:TAgear.ta]] [[File:Gear.physics]]
 
[[File:TAgear.ta]] [[File:Gear.physics]]
 +
 +
'''For Turtle Blocks verisons 184 - '''
 +
[http://people.sugarlabs.org/walter/physics-plugin.tar.gz]
 +
 +
'''A chain'''
 +
 +
[[File:Chain.png|300px]]
 +
 +
Turtle Blocks project file: [http://people.sugarlabs.org/walter/chain.tb]
 +
 +
=====Downloads=====
 +
 +
[[File:Physics-plugin.tar.gz]] Physics plugin
 +
 +
[http://github.com/walterbender/physics-plugin git repository]
 +
 +
==== Logic ====
 +
This plugin provides logical bit operations in Turtle Art, such as AND, OR, XOR, NOT, logical shift left, logical shift right.
 +
 +
[[File:Logic.png]]
 +
 +
===== Example =====
 +
[[File:And.png|300px]]
 +
[[File:Lsl2.png|300px]]
 +
 +
=====Downloads=====
 +
[[File:Logic.tar.gz]] Logic plugin
 +
 +
==== Math ====
 +
The math plugin allows to use advanced mathematical functions in your program.
 +
 +
[[File:Tb-math.png|800px]]
 +
===== Download =====
 +
http://people.sugarlabs.org/francis/tb-math-plugin/
 +
===== Source code =====
 +
https://github.com/sdanielf/turtleblocks-math
 +
 +
 +
==== Mashape ====
 +
This plugins enable the mashape palette (plugins using web APIs)<br>
 +
The mashape palette is easy to detect, its use a sugarized icon of original mashape icon. (A monkey ''':)''')<br>
 +
Also, this version include Translate plugin.<br>
 +
 +
[[File:Tb-mashape-palette.png|800px]]<br><br>
 +
[[File:Tb-mashape-plugin.png|800px]]
 +
 +
===== Download =====
 +
[[File:TA-Mashape.tar.gz]]
 +
===== Source code =====
 +
https://github.com/ignaciouy/mashape-plugin
 +
 +
=== GNOME plugins ===
 +
There are some plugins that are specific to running Turtle Art from the GNOME desktop. These include mechanisms for uploading projects to Facebook (See [[Activities/TurtleArt/Fb_plugin.py]] and http://turtleartsite.appspot.com/
 +
 +
([[File:Turtleblocks-167.1.xo]] is the Alpha version of Turtle Art for GTK3. It requires GTK3 and GST1 (both available in Sugar 0.98 on [http://wiki.laptop.org/go/13.1.0 OLPC 13.1.0 builds]) This version includes the Facebook plugin.
 +
 +
===TurtleArt + icaro = Tortucaro===
 +
 +
See http://proyectofedora.org/argentina/?p=320
 +
 +
(The above link is down. The cached version of the page can be found at [http://webcache.googleusercontent.com/search?q=cache:Vab9UyzE61MJ:proyectofedora.org/argentina/%3Fp%3D320+&cd=1&hl=es&ct=clnk&gl=ar])
    
===How to write a plugin===
 
===How to write a plugin===
Line 245: Line 426:  
the default icon size for Sugar toolbars.)
 
the default icon size for Sugar toolbars.)
    +
As of Turtle Art v137, there is a built-in mechanism for installing plugins. Please include a plugin.info file in the top level of your tar.gz bundle.
 +
 +
plugin.info
 +
myplugin
 +
    myplugin.py
 +
    __init.py__
 +
    icons
 +
      mypluginoff.svg
 +
      mypluginon.svg
 +
 +
The plugin.info file must contain the following sections and fields:
 +
 +
[Plugin]
 +
name=the name of your plugin
 +
palette=the names of any palettes created by your plugin as a comma-separated list
 +
 +
e.g.,
 +
 +
[Plugin]
 +
name=food
 +
palette=eatme, food
   −
{{:Activities/TurtleArt/Arduino}}
+
Other fields, such as version, license, etc. may be used in the future.