From ceec171c42bd79f1762b971569e20ead656f4fd0 Mon Sep 17 00:00:00 2001 From: Cody Hiar Date: Sun, 27 May 2018 15:29:21 -0600 Subject: Moving libs into separate own directory --- lib/Adafruit_Python_CharLCD/examples/char_lcd.py | 84 ++++++++++++++ .../examples/char_lcd_backpack.py | 63 ++++++++++ .../examples/char_lcd_mcp.py | 85 ++++++++++++++ .../examples/char_lcd_plate.py | 75 ++++++++++++ .../examples/char_lcd_rgb.py | 76 ++++++++++++ .../examples/char_lcd_rgb_pwm.py | 129 +++++++++++++++++++++ 6 files changed, 512 insertions(+) create mode 100755 lib/Adafruit_Python_CharLCD/examples/char_lcd.py create mode 100755 lib/Adafruit_Python_CharLCD/examples/char_lcd_backpack.py create mode 100755 lib/Adafruit_Python_CharLCD/examples/char_lcd_mcp.py create mode 100755 lib/Adafruit_Python_CharLCD/examples/char_lcd_plate.py create mode 100755 lib/Adafruit_Python_CharLCD/examples/char_lcd_rgb.py create mode 100755 lib/Adafruit_Python_CharLCD/examples/char_lcd_rgb_pwm.py (limited to 'lib/Adafruit_Python_CharLCD/examples') diff --git a/lib/Adafruit_Python_CharLCD/examples/char_lcd.py b/lib/Adafruit_Python_CharLCD/examples/char_lcd.py new file mode 100755 index 0000000..a7e017e --- /dev/null +++ b/lib/Adafruit_Python_CharLCD/examples/char_lcd.py @@ -0,0 +1,84 @@ +#!/usr/bin/python +# Example using a character LCD connected to a Raspberry Pi or BeagleBone Black. +import time + +import Adafruit_CharLCD as LCD + + +# Raspberry Pi pin configuration: +lcd_rs = 27 # Note this might need to be changed to 21 for older revision Pi's. +lcd_en = 22 +lcd_d4 = 25 +lcd_d5 = 24 +lcd_d6 = 23 +lcd_d7 = 18 +lcd_backlight = 4 + +# BeagleBone Black configuration: +# lcd_rs = 'P8_8' +# lcd_en = 'P8_10' +# lcd_d4 = 'P8_18' +# lcd_d5 = 'P8_16' +# lcd_d6 = 'P8_14' +# lcd_d7 = 'P8_12' +# lcd_backlight = 'P8_7' + +# Define LCD column and row size for 16x2 LCD. +lcd_columns = 16 +lcd_rows = 2 + +# Alternatively specify a 20x4 LCD. +# lcd_columns = 20 +# lcd_rows = 4 + +# Initialize the LCD using the pins above. +lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, + lcd_columns, lcd_rows, lcd_backlight) + +# Print a two line message +lcd.message('Hello\nworld!') + +# Wait 5 seconds +time.sleep(5.0) + +# Demo showing the cursor. +lcd.clear() +lcd.show_cursor(True) +lcd.message('Show cursor') + +time.sleep(5.0) + +# Demo showing the blinking cursor. +lcd.clear() +lcd.blink(True) +lcd.message('Blink cursor') + +time.sleep(5.0) + +# Stop blinking and showing cursor. +lcd.show_cursor(False) +lcd.blink(False) + +# Demo scrolling message right/left. +lcd.clear() +message = 'Scroll' +lcd.message(message) +for i in range(lcd_columns-len(message)): + time.sleep(0.5) + lcd.move_right() +for i in range(lcd_columns-len(message)): + time.sleep(0.5) + lcd.move_left() + +# Demo turning backlight off and on. +lcd.clear() +lcd.message('Flash backlight\nin 5 seconds...') +time.sleep(5.0) +# Turn backlight off. +lcd.set_backlight(0) +time.sleep(2.0) +# Change message. +lcd.clear() +lcd.message('Goodbye!') +# Turn backlight on. +lcd.set_backlight(1) diff --git a/lib/Adafruit_Python_CharLCD/examples/char_lcd_backpack.py b/lib/Adafruit_Python_CharLCD/examples/char_lcd_backpack.py new file mode 100755 index 0000000..3c24949 --- /dev/null +++ b/lib/Adafruit_Python_CharLCD/examples/char_lcd_backpack.py @@ -0,0 +1,63 @@ +#!/usr/bin/python +# Example using a character LCD backpack. +import time + +import Adafruit_CharLCD as LCD + +# Define LCD column and row size for 16x2 LCD. +lcd_columns = 16 +lcd_rows = 2 + +# Initialize the LCD using the pins +lcd = LCD.Adafruit_CharLCDBackpack() + +# Turn backlight on +lcd.set_backlight(0) + +# Print a two line message +lcd.message('Hello\nworld!') + +# Wait 5 seconds +time.sleep(5.0) + +# Demo showing the cursor. +lcd.clear() +lcd.show_cursor(True) +lcd.message('Show cursor') + +time.sleep(5.0) + +# Demo showing the blinking cursor. +lcd.clear() +lcd.blink(True) +lcd.message('Blink cursor') + +time.sleep(5.0) + +# Stop blinking and showing cursor. +lcd.show_cursor(False) +lcd.blink(False) + +# Demo scrolling message right/left. +lcd.clear() +message = 'Scroll' +lcd.message(message) +for i in range(lcd_columns-len(message)): + time.sleep(0.5) + lcd.move_right() +for i in range(lcd_columns-len(message)): + time.sleep(0.5) + lcd.move_left() + +# Demo turning backlight off and on. +lcd.clear() +lcd.message('Flash backlight\nin 5 seconds...') +time.sleep(5.0) +# Turn backlight off. +lcd.set_backlight(1) +time.sleep(2.0) +# Change message. +lcd.clear() +lcd.message('Goodbye!') +# Turn backlight on. +lcd.set_backlight(0) \ No newline at end of file diff --git a/lib/Adafruit_Python_CharLCD/examples/char_lcd_mcp.py b/lib/Adafruit_Python_CharLCD/examples/char_lcd_mcp.py new file mode 100755 index 0000000..58b8d70 --- /dev/null +++ b/lib/Adafruit_Python_CharLCD/examples/char_lcd_mcp.py @@ -0,0 +1,85 @@ +#!/usr/bin/python +# Example using an RGB character LCD connected to an MCP23017 GPIO extender. +import time + +import Adafruit_CharLCD as LCD +import Adafruit_GPIO.MCP230xx as MCP + + +# Define MCP pins connected to the LCD. +lcd_rs = 0 +lcd_en = 1 +lcd_d4 = 2 +lcd_d5 = 3 +lcd_d6 = 4 +lcd_d7 = 5 +lcd_red = 6 +lcd_green = 7 +lcd_blue = 8 + +# Define LCD column and row size for 16x2 LCD. +lcd_columns = 16 +lcd_rows = 2 + +# Alternatively specify a 20x4 LCD. +# lcd_columns = 20 +# lcd_rows = 4 + +# Initialize MCP23017 device using its default 0x20 I2C address. +gpio = MCP.MCP23017() + +# Alternatively you can initialize the MCP device on another I2C address or bus. +# gpio = MCP.MCP23017(0x24, busnum=1) + +# Initialize the LCD using the pins +lcd = LCD.Adafruit_RGBCharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, + lcd_columns, lcd_rows, lcd_red, lcd_green, lcd_blue, + gpio=gpio) + +# Print a two line message +lcd.message('Hello\nworld!') + +# Wait 5 seconds +time.sleep(5.0) + +# Demo showing the cursor. +lcd.clear() +lcd.show_cursor(True) +lcd.message('Show cursor') + +time.sleep(5.0) + +# Demo showing the blinking cursor. +lcd.clear() +lcd.blink(True) +lcd.message('Blink cursor') + +time.sleep(5.0) + +# Stop blinking and showing cursor. +lcd.show_cursor(False) +lcd.blink(False) + +# Demo scrolling message right/left. +lcd.clear() +message = 'Scroll' +lcd.message(message) +for i in range(lcd_columns-len(message)): + time.sleep(0.5) + lcd.move_right() +for i in range(lcd_columns-len(message)): + time.sleep(0.5) + lcd.move_left() + +# Demo turning backlight off and on. +lcd.clear() +lcd.message('Flash backlight\nin 5 seconds...') +time.sleep(5.0) +# Turn backlight off. +lcd.set_backlight(0) +time.sleep(2.0) +# Change message. +lcd.clear() +lcd.message('Goodbye!') +# Turn backlight on. +lcd.set_backlight(1) diff --git a/lib/Adafruit_Python_CharLCD/examples/char_lcd_plate.py b/lib/Adafruit_Python_CharLCD/examples/char_lcd_plate.py new file mode 100755 index 0000000..be7ccdd --- /dev/null +++ b/lib/Adafruit_Python_CharLCD/examples/char_lcd_plate.py @@ -0,0 +1,75 @@ +#!/usr/bin/python +# Example using a character LCD plate. +import time + +import Adafruit_CharLCD as LCD + + +# Initialize the LCD using the pins +lcd = LCD.Adafruit_CharLCDPlate() + +# create some custom characters +lcd.create_char(1, [2, 3, 2, 2, 14, 30, 12, 0]) +lcd.create_char(2, [0, 1, 3, 22, 28, 8, 0, 0]) +lcd.create_char(3, [0, 14, 21, 23, 17, 14, 0, 0]) +lcd.create_char(4, [31, 17, 10, 4, 10, 17, 31, 0]) +lcd.create_char(5, [8, 12, 10, 9, 10, 12, 8, 0]) +lcd.create_char(6, [2, 6, 10, 18, 10, 6, 2, 0]) +lcd.create_char(7, [31, 17, 21, 21, 21, 21, 17, 31]) + +# Show some basic colors. +lcd.set_color(1.0, 0.0, 0.0) +lcd.clear() +lcd.message('RED \x01') +time.sleep(3.0) + +lcd.set_color(0.0, 1.0, 0.0) +lcd.clear() +lcd.message('GREEN \x02') +time.sleep(3.0) + +lcd.set_color(0.0, 0.0, 1.0) +lcd.clear() +lcd.message('BLUE \x03') +time.sleep(3.0) + +lcd.set_color(1.0, 1.0, 0.0) +lcd.clear() +lcd.message('YELLOW \x04') +time.sleep(3.0) + +lcd.set_color(0.0, 1.0, 1.0) +lcd.clear() +lcd.message('CYAN \x05') +time.sleep(3.0) + +lcd.set_color(1.0, 0.0, 1.0) +lcd.clear() +lcd.message('MAGENTA \x06') +time.sleep(3.0) + +lcd.set_color(1.0, 1.0, 1.0) +lcd.clear() +lcd.message('WHITE \x07') +time.sleep(3.0) + +# Show button state. +lcd.clear() +lcd.message('Press buttons...') + +# Make list of button value, text, and backlight color. +buttons = ( (LCD.SELECT, 'Select', (1,1,1)), + (LCD.LEFT, 'Left' , (1,0,0)), + (LCD.UP, 'Up' , (0,0,1)), + (LCD.DOWN, 'Down' , (0,1,0)), + (LCD.RIGHT, 'Right' , (1,0,1)) ) + +print('Press Ctrl-C to quit.') +while True: + # Loop through each button and check if it is pressed. + for button in buttons: + if lcd.is_pressed(button[0]): + # Button is pressed, change the message and backlight. + lcd.clear() + lcd.message(button[1]) + lcd.set_color(button[2][0], button[2][1], button[2][2]) diff --git a/lib/Adafruit_Python_CharLCD/examples/char_lcd_rgb.py b/lib/Adafruit_Python_CharLCD/examples/char_lcd_rgb.py new file mode 100755 index 0000000..312a9e4 --- /dev/null +++ b/lib/Adafruit_Python_CharLCD/examples/char_lcd_rgb.py @@ -0,0 +1,76 @@ +#!/usr/bin/python +# Example using an RGB character LCD wired directly to Raspberry Pi or BeagleBone Black. +import time + +import Adafruit_CharLCD as LCD + + +# Raspberry Pi configuration: +lcd_rs = 27 # Change this to pin 21 on older revision Raspberry Pi's +lcd_en = 22 +lcd_d4 = 25 +lcd_d5 = 24 +lcd_d6 = 23 +lcd_d7 = 18 +lcd_red = 4 +lcd_green = 17 +lcd_blue = 7 # Pin 7 is CE1 + +# BeagleBone Black configuration: +# lcd_rs = 'P8_8' +# lcd_en = 'P8_10' +# lcd_d4 = 'P8_18' +# lcd_d5 = 'P8_16' +# lcd_d6 = 'P8_14' +# lcd_d7 = 'P8_12' +# lcd_red = 'P8_7' +# lcd_green = 'P8_9' +# lcd_blue = 'P8_11' + +# Define LCD column and row size for 16x2 LCD. +lcd_columns = 16 +lcd_rows = 2 + +# Alternatively specify a 20x4 LCD. +# lcd_columns = 20 +# lcd_rows = 4 + +# Initialize the LCD using the pins above. +lcd = LCD.Adafruit_RGBCharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, + lcd_columns, lcd_rows, lcd_red, lcd_green, lcd_blue) + +# Show some basic colors. +lcd.set_color(1.0, 0.0, 0.0) +lcd.clear() +lcd.message('RED') +time.sleep(3.0) + +lcd.set_color(0.0, 1.0, 0.0) +lcd.clear() +lcd.message('GREEN') +time.sleep(3.0) + +lcd.set_color(0.0, 0.0, 1.0) +lcd.clear() +lcd.message('BLUE') +time.sleep(3.0) + +lcd.set_color(1.0, 1.0, 0.0) +lcd.clear() +lcd.message('YELLOW') +time.sleep(3.0) + +lcd.set_color(0.0, 1.0, 1.0) +lcd.clear() +lcd.message('CYAN') +time.sleep(3.0) + +lcd.set_color(1.0, 0.0, 1.0) +lcd.clear() +lcd.message('MAGENTA') +time.sleep(3.0) + +lcd.set_color(1.0, 1.0, 1.0) +lcd.clear() +lcd.message('WHITE') +time.sleep(3.0) diff --git a/lib/Adafruit_Python_CharLCD/examples/char_lcd_rgb_pwm.py b/lib/Adafruit_Python_CharLCD/examples/char_lcd_rgb_pwm.py new file mode 100755 index 0000000..8f6fc2b --- /dev/null +++ b/lib/Adafruit_Python_CharLCD/examples/char_lcd_rgb_pwm.py @@ -0,0 +1,129 @@ +#!/usr/bin/python +# Example using an RGB character LCD with PWM control of the backlight. +import math +import time + +import Adafruit_CharLCD as LCD + + +def hsv_to_rgb(hsv): + """Converts a tuple of hue, saturation, value to a tuple of red, green blue. + Hue should be an angle from 0.0 to 359.0. Saturation and value should be a + value from 0.0 to 1.0, where saturation controls the intensity of the hue and + value controls the brightness. + """ + # Algorithm adapted from http://www.cs.rit.edu/~ncs/color/t_convert.html + h, s, v = hsv + if s == 0: + return (v, v, v) + h /= 60.0 + i = math.floor(h) + f = h-i + p = v*(1.0-s) + q = v*(1.0-s*f) + t = v*(1.0-s*(1.0-f)) + if i == 0: + return (v, t, p) + elif i == 1: + return (q, v, p) + elif i == 2: + return (p, v, t) + elif i == 3: + return (p, q, v) + elif i == 4: + return (t, p, v) + else: + return (v, p, q) + +# Raspberry Pi configuration: +lcd_rs = 27 # Change this to pin 21 on older revision Raspberry Pi's +lcd_en = 22 +lcd_d4 = 25 +lcd_d5 = 24 +lcd_d6 = 23 +lcd_d7 = 18 +lcd_red = 4 +lcd_green = 17 +lcd_blue = 7 # Pin 7 is CE1 + +# BeagleBone Black configuration: +# lcd_rs = 'P8_8' +# lcd_en = 'P8_10' +# lcd_d4 = 'P8_18' +# lcd_d5 = 'P8_16' +# lcd_d6 = 'P8_14' +# lcd_d7 = 'P8_12' +# lcd_red = 'P9_16' +# lcd_green = 'P9_14' +# lcd_blue = 'P8_13' + +# Define LCD column and row size for 16x2 LCD. +lcd_columns = 16 +lcd_rows = 2 + +# Alternatively specify a 20x4 LCD. +# lcd_columns = 20 +# lcd_rows = 4 + +# Initialize the LCD using the pins +lcd = LCD.Adafruit_RGBCharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, + lcd_columns, lcd_rows, lcd_red, lcd_green, lcd_blue, + enable_pwm=True) + +# Show some basic colors. +lcd.set_color(1.0, 0.0, 0.0) +lcd.clear() +lcd.message('RED') +time.sleep(3.0) + +lcd.set_color(0.0, 1.0, 0.0) +lcd.clear() +lcd.message('GREEN') +time.sleep(3.0) + +lcd.set_color(0.0, 0.0, 1.0) +lcd.clear() +lcd.message('BLUE') +time.sleep(3.0) + +lcd.set_color(1.0, 1.0, 0.0) +lcd.clear() +lcd.message('YELLOW') +time.sleep(3.0) + +lcd.set_color(0.0, 1.0, 1.0) +lcd.clear() +lcd.message('CYAN') +time.sleep(3.0) + +lcd.set_color(1.0, 0.0, 1.0) +lcd.clear() +lcd.message('MAGENTA') +time.sleep(3.0) + +lcd.set_color(1.0, 1.0, 1.0) +lcd.clear() +lcd.message('WHITE') +time.sleep(3.0) + +# Use HSV color space so the hue can be adjusted to see a nice gradient of colors. +# Hue ranges from 0.0 to 359.0, saturation from 0.0 to 1.0, and value from 0.0 to 1.0. +hue = 0.0 +saturation = 1.0 +value = 1.0 + +# Loop through all RGB colors. +lcd.clear() +print('Press Ctrl-C to quit.') +while True: + # Convert HSV to RGB colors. + red, green, blue = hsv_to_rgb((hue, saturation, value)) + # Set backlight color. + lcd.set_color(red, green, blue) + # Print message with RGB values to display. + lcd.set_cursor(0, 0) + lcd.message('RED GREEN BLUE\n{0:0.2f} {1:0.2f} {2:0.2f}'.format(red, green, blue)) + # Increment hue (wrapping around at 360 degrees). + hue += 1.0 + if hue > 359.0: + hue = 0.0 -- cgit v1.2.3