Changes

Jump to navigation Jump to search
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]]
   −
[http://www.fing.edu.uy/inco/proyectos/butia Proyecto Butiá]
+
And a extra palette to control the hacks pin of USB4Butiá board and special sensors:
   −
Download: [http://www.fing.edu.uy/inco/proyectos/butia/files/butia_plugin/butia_plugin.tar.gz butia_plugin.tar.gz]
+
[[File:butia_palette_extra.png|1050px]]
 +
 
 +
Andrés Aguirre is part of the Butiá team in Montevideo:
 +
:We have released the 1.0 version of the sources, which has full integration with tortugarte (http://www.fing.edu.uy/inco/proyectos/butia/publicaciones.html). Last month we gave away nearly 30 Butiá robots in a robotic event organized by the University. These robots were given to secondary schools throughout the country, in this event we gave some tutorials and exercises to do with our help. One of the schools made a great line follower in tortugarte ;) : http://www.youtube.com/watch?v=Szp0LWLyPIg Then on the second day we give some tutorials and some children really enjoyed the experience, like Pedro a 10 year old child who really has programming skills! http://www.flickr.com/photos/butiarobot/5059177334/ http://www.youtube.com/aguirrea#p/u/7/p0y11iyhFko
 +
: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
 +
 
 +
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=====
 +
 
 +
[http://www.fing.edu.uy/inco/proyectos/butia/files/plugins/butia_plugin.tar.gz butia_plugin.tar.gz]
    
====FollowMe====
 
====FollowMe====
Line 48: 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]]
 
  −
Download: [http://www.fing.edu.uy/inco/proyectos/butia/files/followme_ta_plugin.zip followme_ta_plugin.zip]
     −
Examples:
+
=====Examples=====
    
The "classic" use: on "Start", use the "Calibrate" block to open a window that shows the camera output. In the center of that window there is red square. The FollowMe Plugin uses an algorithm that obtains the "promedial" color of the object in the square. The result of that algorithm is shown in a small square in the corner. When you consider that the color is a good "representation of the object",  press any key, the window will close, and FollowMe will use this color. After calibration, you can use the "X position" and "Y position" blocks. The block "X position" is the "center" of the object seen by the camera along the "X" (horizontal) axis. This value is an integer between 0 and 320. When the object is not detected,the algorithm returns -1. The operation of the "Y position" block are the same, but returns the position respect the "Y" (vertical) axis. The value returned is between 0 and 240.
 
The "classic" use: on "Start", use the "Calibrate" block to open a window that shows the camera output. In the center of that window there is red square. The FollowMe Plugin uses an algorithm that obtains the "promedial" color of the object in the square. The result of that algorithm is shown in a small square in the corner. When you consider that the color is a good "representation of the object",  press any key, the window will close, and FollowMe will use this color. After calibration, you can use the "X position" and "Y position" blocks. The block "X position" is the "center" of the object seen by the camera along the "X" (horizontal) axis. This value is an integer between 0 and 320. When the object is not detected,the algorithm returns -1. The operation of the "Y position" block are the same, but returns the position respect the "Y" (vertical) axis. The value returned is between 0 and 240.
Line 74: Line 123:  
The code used in this videos:
 
The code used in this videos:
   −
[[File:turtleart-followme-example-ongoing.png|800px]]
+
[[File:turtleart-followme-example-ongoing.png|250px]]
 +
 
 +
=====Download=====
 +
 
 +
[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]]
   −
[[File:Wedo_plugin.tar.gz]] WeDo plugin
+
=====Download=====
   −
'''Note:''' Check out https://github.com/itdaniher/WeDoMore/tree/master/udev for instructions on how to setup the proper permissions talk to the device.
+
* [[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.
 +
 
 +
====LEGO NxT====
 +
 
 +
Motors palette:
 +
 
 +
[[File:turtleart-lego-nxt-palette.png|1050px]]
 +
 
 +
Sensors palette:
 +
 
 +
[[File:turtleart-lego-nxt-palette-sensors.png|1050px]]
 +
 
 +
=====Examples=====
 +
 
 +
[[File:turtleart-lego-nxt-example1.png]]
 +
 
 +
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====
 +
 
 +
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====
 +
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:
 +
 
 +
[[File:turtleart-arduino-palette.png|1050px]]
 +
 
 +
There are several efforts to develop Turtle Art support for Arduino.
 +
 
 +
* [http://tonyforster.blogspot.com/2010/10/arduino-fork-of-turtle-art.html Setting up Turtle Arduino]
 +
* [http://tonyforster.blogspot.com/2010/10/turtle-arduino-display-inputs.html Read digital inputs] [[File:Ard.ta]]
 +
* [http://tonyforster.blogspot.com/2010/10/turtle-arduino-digital-write.html Arduino write output] [[File:Turtle Art Activity ardout.ta]] [[File:Tamyblock mouse.odt]]
 +
* [http://tonyforster.blogspot.com/2012/01/arduino-and-xo-laptop.html The Freetronics Leostick]
 +
 
 +
 
 +
The Arduino functionality was corrected from previous versions:
 +
* Analog and digital reading now works correctly
 +
* 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. (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)
 +
The Firmata version included with the Arduino IDE has some inconsistencies.
 +
 
 +
This version has english and spanish translations.
 +
 
 +
=====Examples=====
 +
[[File:turtleart-arduino-example1.png]]
 +
 
 +
=====GIT code =====
 +
 
 +
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 98: 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====
This is just a first rough pass at a plugin do calculations on the nutritional value of different food types.
+
This is just a first rough pass at a plugin do calculations on the nutritional value of different food types. The plugin itself comes with some sample foods: apples, bananas, cookies, and cake. It is expected that the food choices will be customized by deployment. See https://www.choosemyplate.gov/SuperTracker/ for nutritional values (calories, protein, carbohydrates, fiber, and fat) of different foods.
    
[[File:Food-plugin.png|250px]]
 
[[File:Food-plugin.png|250px]]
 +
 +
=====Downloads=====
 +
 +
[[File:Food-plugin.tar.gz]] ('''Note:''' Requires TurtleBlocks v133 or greater)
    
==== Physics ====
 
==== Physics ====
Line 112: 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 121: 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.
  −
===== Where to get the Physics plugin =====
  −
:[[File:Physics-plugin.tar.gz]] Physics plugin
      
===== Example =====
 
===== Example =====
Line 139: 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 188: 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.

Navigation menu