summaryrefslogtreecommitdiffstatshomepage
path: root/docs/tutorial/lcd_skin.rst
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-09-25 17:21:59 +0100
committerDamien George <damien.p.george@gmail.com>2014-09-25 17:23:06 +0100
commitd19c256656d62397344a39351082281039d612c0 (patch)
treeb6282179a5c83433ee9a7e879df0b9c7ea6b44d2 /docs/tutorial/lcd_skin.rst
parent6162bea5b24fda48dfd56abba5011fbb262bad01 (diff)
downloadmicropython-d19c256656d62397344a39351082281039d612c0.tar.gz
micropython-d19c256656d62397344a39351082281039d612c0.zip
docs: Imported tutorials from previous documentation system.
Diffstat (limited to 'docs/tutorial/lcd_skin.rst')
-rw-r--r--docs/tutorial/lcd_skin.rst74
1 files changed, 74 insertions, 0 deletions
diff --git a/docs/tutorial/lcd_skin.rst b/docs/tutorial/lcd_skin.rst
new file mode 100644
index 0000000000..20f7543094
--- /dev/null
+++ b/docs/tutorial/lcd_skin.rst
@@ -0,0 +1,74 @@
+The LCD and touch-sensor skin
+=============================
+
+Soldering and using the LCD and touch-sensor skin.
+
+[<img src="/static/doc/skin-lcd-3.jpg" alt="pyboard with LCD skin" style="width:250px; border:1px solid black; display:inline-block;"/>](/static/doc/skin-lcd-3.jpg)
+[<img src="/static/doc/skin-lcd-1.jpg" alt="pyboard with LCD skin" style="width:250px; border:1px solid black; display:inline-block;"/>](/static/doc/skin-lcd-1.jpg)
+
+The following video shows how to solder the headers onto the LCD skin.
+At the end of the video, it shows you how to correctly connect the LCD skin to the pyboard.
+
+<iframe style="margin-left:3em;" width="560" height="315" src="//www.youtube.com/embed/PowCzdLYbFM?rel=0" frameborder="0" allowfullscreen></iframe>
+
+Using the LCD
+-------------
+
+To get started using the LCD, try the following at the Micro Python prompt.
+Make sure the LCD skin is attached to the pyboard as pictured at the top of this page. ::
+
+ >>> lcd = pyb.LCD('X')
+ >>> lcd.light(True)
+ >>> lcd.write('Hello uPy!\n')
+
+You can make a simple animation using the code::
+
+ lcd = pyb.LCD('X')
+ lcd.light(True)
+ for x in range(-80, 128):
+ lcd.fill(0)
+ lcd.text('Hello uPy!', x, 10, 1)
+ lcd.show()
+ pyb.delay(25)
+
+Using the touch sensor
+----------------------
+
+To read the touch-sensor data you need to use the I2C bus. The
+MPR121 capacitive touch sensor has address 90.
+
+To get started, try::
+
+ >>> i2c = pyb.I2C(1, pyb.I2C.MASTER)
+ >>> i2c.mem_write(4, 90, 0x5e)
+ >>> touch = i2c.mem_read(1, 90, 0)[0]
+
+The first line above makes an I2C object, and the second line
+enables the 4 touch sensors. The third line reads the touch
+status and the ``touch`` variable holds the state of the 4 touch
+buttons (A, B, X, Y).
+
+There is a simple driver [here](/static/doc/examples/mpr121.py)
+which allows you to set the threshold and debounce parameters, and
+easily read the touch status and electrode voltage levels. Copy
+this script to your pyboard (either flash or SD card, in the top
+directory or ``lib/`` directory) and then try::
+
+ >>> import pyb
+ >>> import mpr121
+ >>> m = mpr121.MPR121(pyb.I2C(1, pyb.I2C.MASTER))
+ >>> for i in range(100):
+ ... print(m.touch_status())
+ ... pyb.delay(100)
+ ...
+
+This will continuously print out the touch status of all electrodes.
+Try touching each one in turn.
+
+Note that if you put the LCD skin in the Y-position, then you need to
+initialise the I2C bus using::
+
+ >>> m = mpr121.MPR121(pyb.I2C(2, pyb.I2C.MASTER))
+
+There is also a demo which uses the LCD and the touch sensors together,
+and can be found [here](/static/doc/examples/lcddemo.py).