papirus 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +54 -10
- data/README.rdoc +4 -4
- data/lib/chunky.rb +1 -2
- data/lib/papirus.rb +0 -2
- metadata +3 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2ea7eafaea2155d636ec9e6b712ce6310679a57e
|
4
|
+
data.tar.gz: 967ca7fb5503b8079e098b98f43c76e77c6d8477
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f99ad2bcf1bd57e4fb8504e411718654d65c456f996eb72a8540d795e6983ad437902ae869e866983880d6ae870a6b81b3c5e7ff10e251f7481adf4c90a0d4a
|
7
|
+
data.tar.gz: e97870beae1b628636cba2630a0b3f0a4b2a5b5f0b6596a42ec2804c9f90223980d605a475b969e7c448c4e04cc9e94153038be8ca9f5c1565d487e42e45d91c
|
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# papirus
|
2
2
|
|
3
|
-
ruby gem to talk to the
|
3
|
+
ruby gem to talk to the [PaPiRus](https://www.pi-supply.com/?s=papirus&post_type=product&tags=1&limit=5&ixwps=1) display
|
4
|
+
|
5
|
+
before you start playing make sure you got the edp-fuse setup
|
4
6
|
|
5
7
|
## epaper fuse driver installation instructions (if you have not done that already ::)
|
6
8
|
```bash
|
@@ -13,6 +15,9 @@ make rpi-install EPD_IO=epd_io.h PANEL_VERSION='V231_G2'
|
|
13
15
|
systemctl enable epd-fuse.service
|
14
16
|
systemctl start epd-fuse
|
15
17
|
```
|
18
|
+
|
19
|
+
You can find more detailed instructions [https://github.com/repaper/gratis](here)
|
20
|
+
|
16
21
|
## gem installation
|
17
22
|
|
18
23
|
```bash
|
@@ -25,13 +30,29 @@ require 'papirus'
|
|
25
30
|
|
26
31
|
# first we get ourself a display
|
27
32
|
display = PaPiRus::Display.new()
|
33
|
+
```
|
28
34
|
|
29
|
-
#
|
35
|
+
# Playing with RMagic
|
36
|
+
|
37
|
+
```
|
38
|
+
require 'rmakgick'
|
39
|
+
img = Magick::Image::read('mischa.jpg')[0]
|
40
|
+
display.show(img.resize_to_fit(display.width, display.height).quantize(2, Magick::GRAYColorspace).to_blob()
|
41
|
+
```
|
42
|
+
|
43
|
+
# Playing with Chunky_PNG
|
44
|
+
```
|
45
|
+
require_relative "lib/chunky" # add's to_bit_stream function to chucky
|
46
|
+
|
47
|
+
#lets get a clean png of the size of the display to play with using chunky_png
|
30
48
|
image = ChunkyPNG::Image.new(display.width, display.height, ChunkyPNG::Color::WHITE)
|
31
49
|
#and we draw a circle on it which is about the size of the screen
|
32
50
|
image.circle(display.width/2, display.height/2, display.height/2-2)
|
33
|
-
|
51
|
+
```
|
52
|
+
|
53
|
+
have a look at [chunky_png](https://github.com/wvanbergen/chunky_png/wiki) for more examples
|
34
54
|
|
55
|
+
```
|
35
56
|
#and last we dump the image as bitsteam to the display
|
36
57
|
display.show(image.to_bit_stream)
|
37
58
|
|
@@ -47,15 +68,35 @@ display.clear
|
|
47
68
|
image.circle(display.width/2, display.height/2, radius)
|
48
69
|
display.show(image.to_bit_stream, 'F')
|
49
70
|
end
|
71
|
+
```
|
72
|
+
|
73
|
+
## there are multiple screen commands ['F', 'P', 'U', 'C']
|
74
|
+
|
75
|
+
Full update (with screen cleaning):
|
76
|
+
|
77
|
+
```display.show(image.to_bit_stream); display.update``` or
|
78
|
+
|
79
|
+
```display.show(image.to_bit_stream, 'U')```
|
80
|
+
|
81
|
+
Fast update:
|
82
|
+
|
83
|
+
```display.show(image.to_bit_stream); display.fast_update```
|
84
|
+
```display.show(image.to_bit_stream, 'F')```
|
50
85
|
|
51
|
-
|
86
|
+
Partial update:
|
52
87
|
|
53
|
-
|
54
|
-
* you can call `display.show(image.to_bit_stream); display.fast_update` or `display.show(image.to_bit_stream, 'F')`
|
55
|
-
* you can call `display.show(image.to_bit_stream); display.partial_update` or `display.show(image.to_bit_stream, 'P')`
|
88
|
+
```display.show(image.to_bit_stream); display.partial_update``` or
|
56
89
|
|
90
|
+
```display.show(image.to_bit_stream, 'P')```
|
91
|
+
|
92
|
+
## Load an image from a png file
|
93
|
+
|
94
|
+
```
|
95
|
+
image = ChunkyPNG::Image.from_file('/some/png/file/path.png')
|
96
|
+
display.show(encode_png_pixels_to_scanline_grayscale_1bit(pixels))
|
57
97
|
```
|
58
|
-
|
98
|
+
|
99
|
+
## Testing without a PAPiRus display
|
59
100
|
|
60
101
|
If you want to test the gem, but don't have your PaPiRus available, you can do the following
|
61
102
|
|
@@ -68,12 +109,15 @@ If you want to test the gem, but don't have your PaPiRus available, you can do t
|
|
68
109
|
* when you run `display.show` the **fake** display /tmp/epd/LE/display is filled with your image
|
69
110
|
* now you can use a bin editor like xxd to have a look at the result: `xxd -b /tmp/epd/LE/display`
|
70
111
|
|
71
|
-
|
112
|
+
## TODO
|
72
113
|
|
73
114
|
* make the image.to_bit_stream routine faster (as it is now to slow to do animations with partial updates)
|
74
115
|
* add support for reading the temperature of the display
|
75
116
|
* add support for changing the update rate
|
76
|
-
* make the gem not depending on chunky_png
|
77
117
|
* make load png image with chunky_png work (now output is black)
|
78
118
|
* make a display.load(image) that takes multiple formats and figures out how to present them
|
79
119
|
* create an issue to add your own requests :)
|
120
|
+
|
121
|
+
## Other resources
|
122
|
+
|
123
|
+
* [pi supply python driver](https://github.com/PiSupply/PaPiRus)
|
data/README.rdoc
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
= papirus
|
2
2
|
|
3
|
-
|
3
|
+
This gem can be used to communicate with the {PaPiRus}[https://github.com/PiSupply/PaPiRus] display.
|
4
|
+
Checkout {GitHub}[http://github.com/mmolhoek/papirus] for examples
|
4
5
|
|
5
6
|
== Contributing to papirus
|
6
|
-
|
7
|
+
|
7
8
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
|
8
9
|
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
|
9
10
|
* Fork the project.
|
@@ -14,5 +15,4 @@ Description goes here.
|
|
14
15
|
|
15
16
|
== Copyright
|
16
17
|
|
17
|
-
Copyright (c) 2017 Mischa Molhoek. See LICENSE.txt for
|
18
|
-
further details.
|
18
|
+
Copyright (c) 2017 Mischa Molhoek. See LICENSE.txt for further details.
|
data/lib/chunky.rb
CHANGED
@@ -11,7 +11,6 @@ module ChunkyPNG::Canvas::StreamExporting
|
|
11
11
|
#as the ChunkyPNG library works with 4 bytes data per pixel (1 byte for R, G, B and transparancy)
|
12
12
|
#and the EDP needs 1 bit per pixel (on or off), we need some way to traverse over all pixels
|
13
13
|
#and add a bit to a byte stream for each pixel. so
|
14
|
-
|
15
14
|
bytes = []
|
16
15
|
#for each 8 pixels (the ChunkyPNG library keeps an array of all pixels used, containing ChunkyPNG::Color elements)
|
17
16
|
pixels.each_slice(8).map do |pixels|
|
@@ -26,6 +25,6 @@ module ChunkyPNG::Canvas::StreamExporting
|
|
26
25
|
bytes.push(byte)
|
27
26
|
end
|
28
27
|
#now we just need to pack all bytes into a file writable string
|
29
|
-
bytes.pack('C'
|
28
|
+
bytes.pack('C*')
|
30
29
|
end
|
31
30
|
end
|
data/lib/papirus.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: papirus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mischa Molhoek
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-10-
|
11
|
+
date: 2017-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: shoulda
|
@@ -80,20 +80,6 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: chunky_png
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :runtime
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
83
|
description: This gem can be used to talk to the PaPiRus e-paper display
|
98
84
|
email: mischamolhoek@gmail.com
|
99
85
|
executables: []
|
@@ -130,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
116
|
version: '0'
|
131
117
|
requirements: []
|
132
118
|
rubyforge_project:
|
133
|
-
rubygems_version: 2.
|
119
|
+
rubygems_version: 2.5.1
|
134
120
|
signing_key:
|
135
121
|
specification_version: 4
|
136
122
|
summary: ruby gem to access the PaPiRus display
|