Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/plugins/accelerometer
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/accelerometer')
-rw-r--r--plugins/accelerometer/__init__.py0
-rw-r--r--plugins/accelerometer/accelerometer.py86
-rw-r--r--plugins/accelerometer/icons/sensoroff.svg41
-rw-r--r--plugins/accelerometer/icons/sensoron.svg41
4 files changed, 168 insertions, 0 deletions
diff --git a/plugins/accelerometer/__init__.py b/plugins/accelerometer/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/plugins/accelerometer/__init__.py
diff --git a/plugins/accelerometer/accelerometer.py b/plugins/accelerometer/accelerometer.py
new file mode 100644
index 0000000..da3b1fa
--- /dev/null
+++ b/plugins/accelerometer/accelerometer.py
@@ -0,0 +1,86 @@
+#!/usr/bin/env python
+#Copyright (c) 2011 Walter Bender
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+import os
+
+from gettext import gettext as _
+
+from plugins.plugin import Plugin
+
+from TurtleArt.tapalette import make_palette
+from TurtleArt.taconstants import XO1, XO15
+from TurtleArt.talogo import primitive_dictionary
+from TurtleArt.tautils import debug_output
+
+import logging
+_logger = logging.getLogger('turtleart-activity accelerometer plugin')
+
+
+class Accelerometer(Plugin):
+
+ def __init__(self, parent):
+ self._parent = parent
+ if os.path.exists('/sys/devices/platform/lis3lv02d/position'):
+ self._status = True
+ else:
+ self._status = False
+ self.running_sugar = self._parent.running_sugar
+
+ def setup(self):
+ # set up accelerometer specific blocks
+ palette = make_palette('sensor',
+ colors=["#FF6060", "#A06060"],
+ help_string=_('Palette of sensor blocks'))
+
+ primitive_dictionary['xyz'] = self.prim_xyz
+ if self._status:
+ palette.add_block('xyz',
+ style='basic-style-extended-vertical',
+ label=_('acceleration'),
+ help_string=_('push accereration in x, y, z to heap'),
+ prim_name='xyz')
+ else:
+ palette.add_block('xyz',
+ style='basic-style-extended-vertical',
+ label=_('acceleration'),
+ help_string=_('push accereration in x, y, z to heap'),
+ hidden=True,
+ prim_name='xyz')
+
+ self._parent.lc.def_prim(
+ 'xyz', 0, lambda self: primitive_dictionary['xyz']())
+
+ def _status_report(self):
+ debug_output('Reporting accelerator status: %s' % (str(self._status)))
+ return self._status
+
+ # Block primitives used in talogo
+
+ def prim_xyz(self):
+ ''' push accelerometer xyz to stack '''
+ if not self._status:
+ self._parent.lc.heap.append(0)
+ self._parent.lc.heap.append(0)
+ self._parent.lc.heap.append(0)
+ else:
+ fh = open('/sys/devices/platform/lis3lv02d/position')
+ string = fh.read()
+ xyz = string[1:-2].split(',')
+ self._parent.lc.heap.append(int(xyz[2]))
+ self._parent.lc.heap.append(int(xyz[1]))
+ self._parent.lc.heap.append(int(xyz[0]))
+ fh.close()
diff --git a/plugins/accelerometer/icons/sensoroff.svg b/plugins/accelerometer/icons/sensoroff.svg
new file mode 100644
index 0000000..ec55f03
--- /dev/null
+++ b/plugins/accelerometer/icons/sensoroff.svg
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ version="1.1"
+ width="55"
+ height="55"
+ viewBox="0 0 55 55"
+ id="svg2"
+ xml:space="preserve"><metadata
+ id="metadata15"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+ id="defs13" /><rect
+ width="55"
+ height="55"
+ x="0"
+ y="0"
+ id="rect3269"
+ style="fill:#282828;fill-opacity:1;fill-rule:nonzero;stroke:none" /><g
+ transform="matrix(0.67,0,0,0.67,9.075,9.0749996)"
+ id="toolbar_x5F_view"
+ style="fill:#ffffff;fill-opacity:1;display:block">
+ <g
+ id="g5"
+ style="fill:#ffffff;fill-opacity:1">
+ <path
+ d="m 21.937,27.499 c 0,3.07 2.492,5.562 5.562,5.562 3.067,0 5.559,-2.492 5.559,-5.562 0,-3.067 -2.491,-5.564 -5.559,-5.564 -3.07,0 -5.562,2.497 -5.562,5.564 z"
+ id="path7"
+ style="fill:#ffffff;fill-opacity:1" />
+ <path
+ d="m 27.499,13.037 c -14.476,0 -26.531,14.432 -26.531,14.432 0,0 12.056,14.504 26.531,14.494 14.474,-0.01 26.533,-14.513 26.533,-14.513 0,0 -12.059,-14.425 -26.533,-14.413 z M 27.5,36.562 c -5.003,0 -9.063,-4.061 -9.063,-9.063 0,-4.998 4.061,-9.066 9.063,-9.066 4.997,0 9.058,4.068 9.058,9.066 0,5.003 -4.061,9.063 -9.058,9.063 z"
+ id="path9"
+ style="fill:#ffffff;fill-opacity:1" />
+ </g>
+</g></svg> \ No newline at end of file
diff --git a/plugins/accelerometer/icons/sensoron.svg b/plugins/accelerometer/icons/sensoron.svg
new file mode 100644
index 0000000..e902656
--- /dev/null
+++ b/plugins/accelerometer/icons/sensoron.svg
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ version="1.1"
+ width="55"
+ height="55"
+ viewBox="0 0 55 55"
+ id="svg2"
+ xml:space="preserve"><metadata
+ id="metadata15"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+ id="defs13" /><rect
+ width="55"
+ height="55"
+ x="0"
+ y="0"
+ id="rect3269"
+ style="fill:#ffd200;fill-opacity:1;fill-rule:nonzero;stroke:none" /><g
+ transform="matrix(0.67,0,0,0.67,9.075,9.0749996)"
+ id="toolbar_x5F_view"
+ style="fill:#ff0000;fill-opacity:1;display:block">
+ <g
+ id="g5"
+ style="fill:#ff0000;fill-opacity:1">
+ <path
+ d="m 21.937,27.499 c 0,3.07 2.492,5.562 5.562,5.562 3.067,0 5.559,-2.492 5.559,-5.562 0,-3.067 -2.491,-5.564 -5.559,-5.564 -3.07,0 -5.562,2.497 -5.562,5.564 z"
+ id="path7"
+ style="fill:#ff0000;fill-opacity:1" />
+ <path
+ d="m 27.499,13.037 c -14.476,0 -26.531,14.432 -26.531,14.432 0,0 12.056,14.504 26.531,14.494 14.474,-0.01 26.533,-14.513 26.533,-14.513 0,0 -12.059,-14.425 -26.533,-14.413 z M 27.5,36.562 c -5.003,0 -9.063,-4.061 -9.063,-9.063 0,-4.998 4.061,-9.066 9.063,-9.066 4.997,0 9.058,4.068 9.058,9.066 0,5.003 -4.061,9.063 -9.058,9.063 z"
+ id="path9"
+ style="fill:#ff0000;fill-opacity:1" />
+ </g>
+</g></svg> \ No newline at end of file