Skip to content

Commit 6d79686

Browse files
authored
Merge pull request #4 from Ellipse0934/master
Add show_char and show_message
2 parents 9827529 + b2889a6 commit 6d79686

File tree

5 files changed

+174
-18
lines changed

5 files changed

+174
-18
lines changed

README.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ function for resetting the LED matrix to black.
1717

1818
using SenseHat
1919
using ColorTypes
20-
20+
2121
const LED = led_matrix()
22-
22+
2323
LED[:] = SenseHat.JULIA_LOGO
2424
sleep(3)
2525
led_clear()
@@ -33,20 +33,19 @@ manipulated, returning a `StickEvent`:
3333

3434
e = readstick()
3535

36-
For querying within a loop, `sticktask()` will create a `Task` that produces `StickEvent`s. Use
37-
with `@schedule` for asynchronous use, e.g.
36+
For querying within a loop, use a `Channel` to create a buffer of `StickEvent`.
3837

3938
using SenseHat
4039

41-
@schedule for e in sticktask()
42-
println(e)
40+
c = Channel{StickEvent}(32)
41+
42+
@async while true
43+
put!(c, readstick())
4344
end
4445

45-
will create a new task that prints the event, then and add it to the scheduler. See the
46-
help for `StickEvent` and `sticktask` for more details.
4746

4847
## Sensors
4948

5049
`humidity()`, `temperature()` and `pressure()` will read values from the corresponding sensors.
5150

52-
The inertial measurement unit (IMU) is not yet supported, but is coming soon. In the meantime, you can use the [python library](https://pythonhosted.org/sense-hat/) via [PyCall.jl](https://github.com/JuliaPy/PyCall.jl).
51+
The inertial measurement unit (IMU) is not yet supported, but is coming soon. In the meantime, you can use the [python library](https://pythonhosted.org/sense-hat/) via [PyCall.jl](https://github.com/JuliaPy/PyCall.jl).

src/SenseHat.jl

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ __precompile__()
22
module SenseHat
33

44
export led_matrix, RGB565, led_clear,
5-
Stick, StickEvent, sticktask, readstick,
6-
pressure, temperature, humidity
5+
show_char, show_message,
6+
Stick, StickEvent, readstick, sticktask,
7+
pressure, temperature, humidity,
8+
@colorant_str
79

810

911
include("ioctl.jl")
@@ -18,4 +20,7 @@ using .Stick
1820
include("sensors.jl")
1921
using .Sensors
2022

23+
include("text.jl")
24+
using .Text
25+
2126
end # module

src/led.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ end
3030

3131

3232

33-
typealias U5 UFixed{UInt8,5}
34-
typealias U6 UFixed{UInt8,6}
33+
const U5 = Normed{UInt8,5}
34+
const U6 = Normed{UInt8,6}
3535

36-
immutable RGB565 <: AbstractRGB{U8}
36+
immutable RGB565 <: AbstractRGB{Normed{UInt8, 8}}
3737
data::UInt16
3838
end
3939

src/stick.jl

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,21 +85,18 @@ end
8585

8686
"""
8787
sticktask()
88-
8988
This is a `Task` that produces `StickEvent`s when the joystick on the Sense HAT is
9089
manipulated. It will block until new `StickEvent`s occur.
91-
9290
A typical usage will be to create a new task which will call this asynchronously, e.g. the
9391
following will call the function `f(::StickEvent)` for each event:
94-
9592
```
9693
@schedule for e in sticktask()
9794
f(e)
9895
end
9996
```
100-
10197
"""
10298
function sticktask()
99+
Base.depwarn("`sticktask()` is deprecated. Use `Channel` instead to create a buffer of `StickEvent`.", :sticktask)
103100
@task open(STICK_INPUT_DEVICE) do dev
104101
fddev = RawFD(fd(dev))
105102
while true

src/text.jl

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
module Text
2+
3+
using ColorTypes, Colors.@colorant_str
4+
5+
import SenseHat.LED: RGB565, led_matrix, led_clear
6+
7+
export show_char, show_message, @colorant_str
8+
9+
"""
10+
show_char(c::Char, color::ColorTypes.AbstractRGB = colorant"white")
11+
12+
Display a single character `c` on the `SenseHat` LED Matrix.
13+
"""
14+
function show_char(c::Char, color::ColorTypes.AbstractRGB = colorant"white")
15+
if haskey(font, c)
16+
tocolor(b) = b ? RGB565(color) : RGB565(colorant"black")
17+
L = PermutedDimsArray(led_matrix(), (2, 1))
18+
L[:] .= colorant"black"
19+
L[:,2:6] .= tocolor.(font[c])
20+
else
21+
error("Character font for $c not available \n")
22+
end
23+
return
24+
end
25+
26+
"""
27+
show_message(s::String, speed::Real = 0.2, color::ColorTypes.AbstractRGB = colorant"white")
28+
29+
Display a scrolling message `s` on the `SenseHat` LED Matrix. `speed` is the time in seconds per frame and `color` is the color of text.
30+
31+
# Example
32+
33+
```
34+
using SenseHat
35+
36+
show_message("Hello, World!", 0.2, colorant"purple")
37+
```
38+
"""
39+
function show_message(s::String, speed::Real = 0.2, color::ColorTypes.AbstractRGB = colorant"white")
40+
for c in s
41+
if haskey(font, c) == false
42+
error("Character font for $c not available \n")
43+
return
44+
end
45+
img = Array{Bool}(8, 16 + 5*length(s))
46+
img[1:8,1:8] = Bool.(zeros(8,8))
47+
img[1:8,(9 + 5*length(s)):(16 + 5*length(s))] = Bool.(zeros(8,8))
48+
for i in 1:length(s)
49+
img[1:8, (4 + 5*i):(8 + 5*i)] = font[s[i]]
50+
end
51+
tocolor(b) = b ? RGB565(color) : RGB565(colorant"black")
52+
for i in 1:(size(img,2) - 7)
53+
frame = tocolor.(img[1:8, i:(i + 7)])
54+
led_matrix()[:] = permutedims(frame, (2,1))
55+
sleep(speed)
56+
end
57+
return
58+
end
59+
end
60+
61+
show_message(s::String, color::ColorTypes.AbstractRGB) = show_message(s, 0.2, color)
62+
63+
font = Dict(' ' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; ]),
64+
'+' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 1 1 1 1 1 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 0 0 0 ; ]),
65+
'-' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 1 1 1 1 1 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; ]),
66+
'*' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 1 0 0 ; 1 0 1 0 1 ; 0 1 1 1 0 ; 1 0 1 0 1 ; 0 0 1 0 0 ; 0 0 0 0 0 ; ]),
67+
'/' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 1 ; 0 0 0 1 0 ; 0 0 1 0 0 ; 0 1 0 0 0 ; 1 0 0 0 0 ; 0 0 0 0 0 ; ]),
68+
'!' => Bool.([0 0 0 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 0 0 0 ; 0 0 1 0 0 ; ]),
69+
'"' => Bool.([0 0 0 0 0 ; 0 1 0 1 0 ; 0 1 0 1 0 ; 0 1 0 1 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; ]),
70+
'#' => Bool.([0 0 0 0 0 ; 0 1 0 1 0 ; 0 1 0 1 0 ; 1 1 1 1 1 ; 0 1 0 1 0 ; 1 1 1 1 1 ; 0 1 0 1 0 ; 0 1 0 1 0 ; ]),
71+
'$' => Bool.([0 0 0 0 0 ; 0 0 1 0 0 ; 0 1 1 1 1 ; 1 0 1 0 0 ; 0 1 1 1 0 ; 0 0 1 0 1 ; 1 1 1 1 0 ; 0 0 1 0 0 ; ]),
72+
'>' => Bool.([0 0 0 0 0 ; 0 1 0 0 0 ; 0 0 1 0 0 ; 0 0 0 1 0 ; 0 0 0 0 1 ; 0 0 0 1 0 ; 0 0 1 0 0 ; 0 1 0 0 0 ; ]),
73+
'<' => Bool.([0 0 0 0 0 ; 0 0 0 1 0 ; 0 0 1 0 0 ; 0 1 0 0 0 ; 1 0 0 0 0 ; 0 1 0 0 0 ; 0 0 1 0 0 ; 0 0 0 1 0 ; ]),
74+
'0' => Bool.([0 0 0 0 0 ; 0 1 1 1 0 ; 1 0 0 0 1 ; 1 0 0 1 1 ; 1 0 1 0 1 ; 1 1 0 0 1 ; 1 0 0 0 1 ; 0 1 1 1 0 ; ]),
75+
'1' => Bool.([0 0 0 0 0 ; 0 0 1 0 0 ; 0 1 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 1 1 1 0 ; ]),
76+
'2' => Bool.([0 0 0 0 0 ; 0 1 1 1 0 ; 1 0 0 0 1 ; 0 0 0 0 1 ; 0 0 0 1 0 ; 0 0 1 0 0 ; 0 1 0 0 0 ; 1 1 1 1 1 ; ]),
77+
'3' => Bool.([0 0 0 0 0 ; 1 1 1 1 1 ; 0 0 0 1 0 ; 0 0 1 0 0 ; 0 0 0 1 0 ; 0 0 0 0 1 ; 1 0 0 0 1 ; 0 1 1 1 0 ; ]),
78+
'4' => Bool.([0 0 0 0 0 ; 0 0 0 1 0 ; 0 0 1 1 0 ; 0 1 0 1 0 ; 1 0 0 1 0 ; 1 1 1 1 1 ; 0 0 0 1 0 ; 0 0 0 1 0 ; ]),
79+
'5' => Bool.([0 0 0 0 0 ; 1 1 1 1 1 ; 1 0 0 0 0 ; 1 1 1 1 0 ; 0 0 0 0 1 ; 0 0 0 0 1 ; 1 0 0 0 1 ; 0 1 1 1 0 ; ]),
80+
'6' => Bool.([0 0 0 0 0 ; 0 0 1 1 0 ; 0 1 0 0 0 ; 1 0 0 0 0 ; 1 1 1 1 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 0 1 1 1 0 ; ]),
81+
'7' => Bool.([0 0 0 0 0 ; 1 1 1 1 1 ; 0 0 0 0 1 ; 0 0 0 1 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; ]),
82+
'8' => Bool.([0 0 0 0 0 ; 0 1 1 1 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 0 1 1 1 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 0 1 1 1 0 ; ]),
83+
'9' => Bool.([0 0 0 0 0 ; 0 1 1 1 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 0 1 1 1 1 ; 0 0 0 0 1 ; 0 0 0 1 0 ; 0 1 1 0 0 ; ]),
84+
'.' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 1 1 0 0 ; 0 1 1 0 0 ; ]),
85+
'=' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 1 1 1 1 1 ; 0 0 0 0 0 ; 1 1 1 1 1 ; 0 0 0 0 0 ; 0 0 0 0 0 ; ]),
86+
')' => Bool.([0 0 0 0 0 ; 0 1 0 0 0 ; 0 0 1 0 0 ; 0 0 0 1 0 ; 0 0 0 1 0 ; 0 0 0 1 0 ; 0 0 1 0 0 ; 0 1 0 0 0 ; ]),
87+
'(' => Bool.([0 0 0 0 0 ; 0 0 0 1 0 ; 0 0 1 0 0 ; 0 1 0 0 0 ; 0 1 0 0 0 ; 0 1 0 0 0 ; 0 0 1 0 0 ; 0 0 0 1 0 ; ]),
88+
'A' => Bool.([0 0 0 0 0 ; 0 1 1 1 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 1 1 1 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; ]),
89+
'B' => Bool.([0 0 0 0 0 ; 1 1 1 1 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 1 1 1 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 1 1 1 0 ; ]),
90+
'C' => Bool.([0 0 0 0 0 ; 0 1 1 1 0 ; 1 0 0 0 1 ; 1 0 0 0 0 ; 1 0 0 0 0 ; 1 0 0 0 0 ; 1 0 0 0 1 ; 0 1 1 1 0 ; ]),
91+
'D' => Bool.([0 0 0 0 0 ; 1 1 1 0 0 ; 1 0 0 1 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 1 0 ; 1 1 1 0 0 ; ]),
92+
'E' => Bool.([0 0 0 0 0 ; 1 1 1 1 1 ; 1 0 0 0 0 ; 1 0 0 0 0 ; 1 1 1 1 0 ; 1 0 0 0 0 ; 1 0 0 0 0 ; 1 1 1 1 1 ; ]),
93+
'F' => Bool.([0 0 0 0 0 ; 1 1 1 1 1 ; 1 0 0 0 0 ; 1 0 0 0 0 ; 1 1 1 1 0 ; 1 0 0 0 0 ; 1 0 0 0 0 ; 1 0 0 0 0 ; ]),
94+
'G' => Bool.([0 0 0 0 0 ; 0 1 1 1 0 ; 1 0 0 0 1 ; 1 0 0 0 0 ; 1 0 1 1 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 0 1 1 1 1 ; ]),
95+
'H' => Bool.([0 0 0 0 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 1 1 1 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; ]),
96+
'I' => Bool.([0 0 0 0 0 ; 0 1 1 1 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 1 1 1 0 ; ]),
97+
'J' => Bool.([0 0 0 0 0 ; 0 0 1 1 1 ; 0 0 0 1 0 ; 0 0 0 1 0 ; 0 0 0 1 0 ; 0 0 0 1 0 ; 1 0 0 1 0 ; 0 1 1 0 0 ; ]),
98+
'K' => Bool.([0 0 0 0 0 ; 1 0 0 0 1 ; 1 0 0 1 0 ; 1 0 1 0 0 ; 1 1 0 0 0 ; 1 0 1 0 0 ; 1 0 0 1 0 ; 1 0 0 0 1 ; ]),
99+
'L' => Bool.([0 0 0 0 0 ; 1 0 0 0 0 ; 1 0 0 0 0 ; 1 0 0 0 0 ; 1 0 0 0 0 ; 1 0 0 0 0 ; 1 0 0 0 0 ; 1 1 1 1 1 ; ]),
100+
'M' => Bool.([0 0 0 0 0 ; 1 0 0 0 1 ; 1 1 0 1 1 ; 1 0 1 0 1 ; 1 0 1 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; ]),
101+
'N' => Bool.([0 0 0 0 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 1 0 0 1 ; 1 0 1 0 1 ; 1 0 0 1 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; ]),
102+
'O' => Bool.([0 0 0 0 0 ; 0 1 1 1 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 0 1 1 1 0 ; ]),
103+
'P' => Bool.([0 0 0 0 0 ; 1 1 1 1 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 1 1 1 0 ; 1 0 0 0 0 ; 1 0 0 0 0 ; 1 0 0 0 0 ; ]),
104+
'Q' => Bool.([0 0 0 0 0 ; 0 1 1 1 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 1 0 1 ; 1 0 0 1 0 ; 0 1 1 0 1 ; ]),
105+
'R' => Bool.([0 0 0 0 0 ; 1 1 1 1 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 1 1 1 0 ; 1 0 1 0 0 ; 1 0 0 1 0 ; 1 0 0 0 1 ; ]),
106+
'S' => Bool.([0 0 0 0 0 ; 0 1 1 1 1 ; 1 0 0 0 0 ; 1 0 0 0 0 ; 0 1 1 1 0 ; 0 0 0 0 1 ; 0 0 0 0 1 ; 1 1 1 1 0 ; ]),
107+
'T' => Bool.([0 0 0 0 0 ; 1 1 1 1 1 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; ]),
108+
'U' => Bool.([0 0 0 0 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 0 1 1 1 0 ; ]),
109+
'V' => Bool.([0 0 0 0 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 0 1 0 1 0 ; 0 0 1 0 0 ; ]),
110+
'W' => Bool.([0 0 0 0 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 1 0 1 ; 1 0 1 0 1 ; 1 1 0 1 1 ; 1 0 0 0 1 ; ]),
111+
'X' => Bool.([0 0 0 0 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 0 1 0 1 0 ; 0 0 1 0 0 ; 0 1 0 1 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; ]),
112+
'Y' => Bool.([0 0 0 0 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 0 1 0 1 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; ]),
113+
'Z' => Bool.([0 0 0 0 0 ; 1 1 1 1 1 ; 0 0 0 0 1 ; 0 0 0 1 0 ; 0 0 1 0 0 ; 0 1 0 0 0 ; 1 0 0 0 0 ; 1 1 1 1 1 ; ]),
114+
'a' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 1 1 1 0 ; 0 0 0 0 1 ; 0 1 1 1 1 ; 1 0 0 0 1 ; 0 1 1 1 1 ; ]),
115+
'b' => Bool.([0 0 0 0 0 ; 1 0 0 0 0 ; 1 0 0 0 0 ; 1 0 1 1 0 ; 1 1 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 0 1 1 1 0 ; ]),
116+
'c' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 1 1 1 0 ; 1 0 0 0 0 ; 1 0 0 0 0 ; 1 0 0 0 1 ; 0 1 1 1 0 ; ]),
117+
'd' => Bool.([0 0 0 0 0 ; 0 0 0 0 1 ; 0 0 0 0 1 ; 0 1 1 0 1 ; 1 0 0 1 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 0 1 1 1 1 ; ]),
118+
'e' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 1 1 1 0 ; 1 0 0 0 1 ; 1 1 1 1 1 ; 1 0 0 0 0 ; 0 1 1 1 0 ; ]),
119+
'f' => Bool.([0 0 0 0 0 ; 0 0 0 1 0 ; 0 0 1 0 1 ; 0 0 1 0 0 ; 0 1 1 1 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; ]),
120+
'g' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 1 1 1 1 ; 1 0 0 0 1 ; 0 1 1 1 1 ; 0 0 0 0 1 ; 0 1 1 1 0 ; ]),
121+
'h' => Bool.([0 0 0 0 0 ; 1 0 0 0 0 ; 1 0 0 0 0 ; 1 0 1 1 0 ; 1 1 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; ]),
122+
'i' => Bool.([0 0 0 0 0 ; 0 0 1 0 0 ; 0 0 0 0 0 ; 0 1 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 1 1 1 0 ; ]),
123+
'j' => Bool.([0 0 0 0 0 ; 0 0 0 1 0 ; 0 0 0 0 0 ; 0 0 0 1 0 ; 0 0 0 1 0 ; 0 0 0 1 0 ; 1 0 0 1 0 ; 0 1 1 0 0 ; ]),
124+
'k' => Bool.([0 0 0 0 0 ; 0 1 0 0 0 ; 0 1 0 0 0 ; 0 1 0 0 1 ; 0 1 0 1 0 ; 0 1 1 0 0 ; 0 1 0 1 0 ; 0 1 0 0 1 ; ]),
125+
'l' => Bool.([0 0 0 0 0 ; 0 1 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 1 1 1 0 ; ]),
126+
'm' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 1 1 0 1 0 ; 1 0 1 0 1 ; 1 0 1 0 1 ; 1 0 1 0 1 ; 1 0 1 0 1 ; ]),
127+
'n' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 1 0 1 1 0 ; 1 1 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; ]),
128+
'o' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 1 1 1 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 0 1 1 1 0 ; ]),
129+
'p' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 1 1 1 1 0 ; 1 0 0 0 1 ; 1 1 1 1 0 ; 1 0 0 0 0 ; 1 0 0 0 0 ; ]),
130+
'q' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 1 1 1 1 ; 1 0 0 0 1 ; 0 1 1 1 1 ; 0 0 0 0 1 ; 0 0 0 0 1 ; ]),
131+
'r' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 1 0 1 1 ; 0 1 1 0 0 ; 0 1 0 0 0 ; 0 1 0 0 0 ; 0 1 0 0 0 ; ]),
132+
's' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 1 1 1 1 ; 1 0 0 0 0 ; 0 1 1 1 0 ; 0 0 0 0 1 ; 1 1 1 1 0 ; ]),
133+
't' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 1 0 0 ; 0 1 1 1 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 1 ; 0 0 0 1 0 ; ]),
134+
'u' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 1 1 ; 0 1 1 0 1 ; ]),
135+
'v' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 0 1 0 1 0 ; 0 0 1 0 0 ; ]),
136+
'w' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 1 0 0 0 1 ; 1 0 0 0 1 ; 1 0 1 0 1 ; 1 0 1 0 1 ; 0 1 0 1 0 ; ]),
137+
'x' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 1 1 0 0 1 ; 0 0 1 1 0 ; 0 0 1 0 0 ; 0 1 1 0 0 ; 1 0 0 1 1 ; ]),
138+
'y' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 1 0 0 0 1 ; 0 1 0 0 1 ; 0 0 1 1 0 ; 0 0 1 0 0 ; 1 1 0 0 0 ; ]),
139+
'z' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 1 1 1 1 1 ; 0 0 0 1 0 ; 0 0 1 0 0 ; 0 1 0 0 0 ; 1 1 1 1 1 ; ]),
140+
'?' => Bool.([0 0 0 0 0 ; 0 1 1 1 0 ; 1 0 0 0 1 ; 0 0 0 0 1 ; 0 0 0 1 0 ; 0 0 1 0 0 ; 0 0 0 0 0 ; 0 0 1 0 0 ; ]),
141+
',' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 1 1 0 0 ; 0 0 1 0 0 ; 0 1 0 0 0 ; ]),
142+
';' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 1 1 0 0 ; 0 1 1 0 0 ; 0 0 0 0 0 ; 0 1 1 0 0 ; 0 0 1 0 0 ; 0 1 0 0 0 ; ]),
143+
':' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 1 1 0 0 ; 0 1 1 0 0 ; 0 0 0 0 0 ; 0 1 1 0 0 ; 0 1 1 0 0 ; 0 0 0 0 0 ; ]),
144+
'|' => Bool.([0 0 0 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; 0 0 1 0 0 ; ]),
145+
'@' => Bool.([0 0 0 0 0 ; 0 1 1 1 0 ; 1 0 0 0 1 ; 0 0 0 0 1 ; 0 1 1 0 1 ; 1 0 1 0 1 ; 1 0 1 0 1 ; 0 1 1 1 0 ; ]),
146+
'%' => Bool.([0 0 0 0 0 ; 1 1 0 0 0 ; 1 1 0 0 1 ; 0 0 0 1 0 ; 0 0 1 0 0 ; 0 1 0 0 0 ; 1 0 0 1 1 ; 0 0 0 1 1 ; ]),
147+
'[' => Bool.([0 0 0 0 0 ; 0 1 1 1 0 ; 0 1 0 0 0 ; 0 1 0 0 0 ; 0 1 0 0 0 ; 0 1 0 0 0 ; 0 1 0 0 0 ; 0 1 1 1 0 ; ]),
148+
'&' => Bool.([0 0 0 0 0 ; 0 1 1 0 0 ; 1 0 0 1 0 ; 1 0 1 0 0 ; 0 1 0 0 0 ; 1 0 1 0 1 ; 1 0 0 1 0 ; 0 1 1 0 1 ; ]),
149+
'_' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 1 1 1 1 1 ; ]),
150+
'\'' => Bool.([0 0 0 0 0 ; 0 1 1 0 0 ; 0 0 1 0 0 ; 0 1 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; ]),
151+
']' => Bool.([0 0 0 0 0 ; 0 1 1 1 0 ; 0 0 0 1 0 ; 0 0 0 1 0 ; 0 0 0 1 0 ; 0 0 0 1 0 ; 0 0 0 1 0 ; 0 1 1 1 0 ; ]),
152+
'\\' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 1 0 0 0 0 ; 0 1 0 0 0 ; 0 0 1 0 0 ; 0 0 0 1 0 ; 0 0 0 0 1 ; 0 0 0 0 0 ; ]),
153+
'~' => Bool.([0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 1 1 0 1 ; 1 0 1 1 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; 0 0 0 0 0 ; ]));
154+
155+
end #module

0 commit comments

Comments
 (0)