rabbit-slide-hasumikin-Euruko2024 2024.09.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.rabbit +2 -0
- data/PicoRubyHandsOn.md +203 -0
- data/README.md +32 -0
- data/Rakefile +17 -0
- data/config.yaml +23 -0
- data/gist/1_led/rgb_led.jpg +0 -0
- data/gist/1_led/rgbled.png +0 -0
- data/gist/1_led/single_led.jpg +0 -0
- data/gist/4_lcd/lcd.png +0 -0
- data/images/QR_picoruby.png +0 -0
- data/images/Terminal-dec-vt100.jpg +0 -0
- data/images/assets/bg_pattern.png +0 -0
- data/images/assets/bg_slide.png +0 -0
- data/images/assets/bg_title.png +0 -0
- data/images/assets/bg_title.svg +60 -0
- data/images/assets/hero_image.png +0 -0
- data/images/assets/title_dot.svg +13 -0
- data/images/assets/title_dot_24.png +0 -0
- data/images/assets/title_dot_30.png +0 -0
- data/images/assets/title_dot_36.png +0 -0
- data/images/boot_button_1.png +0 -0
- data/images/download-r2p2.png +0 -0
- data/images/hasumi.jpg +0 -0
- data/images/install-uf2.png +0 -0
- data/images/rpi_pico.jpg +0 -0
- data/images/setup.png +0 -0
- data/images/teraterm-0.png +0 -0
- data/images/teraterm.png +0 -0
- data/pdf/Euruko2024-PicoRubyHandsOn.pdf +0 -0
- data/theme.rb +203 -0
- metadata +84 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 807a1861d643d2788e6c6c28df0f6890e1300aa1755fa8a915e02f833bc5a1d1
|
4
|
+
data.tar.gz: 163b4c9dfcee2309331bd0a016b96870f4b7c71754a5af9abb09a9d36ef524c0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ba0cbe63d85549fb4b3acff317ee9268a44c5172b585cff0397fff9f050ba0e119271b52d7b61465e6c68b4cdc930a33bf51689417bfa9efbc022897339c7fd1
|
7
|
+
data.tar.gz: c35b4601950482f735381d76de8dd3e01accf55c81de77f7810efe5e8f0af6224ca52207a8c4b713ef1c843e3a804556985364aa63d7341ffc51c2e3b8f2c7a7
|
data/.rabbit
ADDED
data/PicoRubyHandsOn.md
ADDED
@@ -0,0 +1,203 @@
|
|
1
|
+
# Embedded Ruby Revolution:
|
2
|
+
|
3
|
+
subtitle
|
4
|
+
: A Hands-On Workshop\\nwith PicoRuby
|
5
|
+
|
6
|
+
author
|
7
|
+
: hasumikin
|
8
|
+
|
9
|
+
content-source
|
10
|
+
: EuRuKo 2024 in Sarajevo
|
11
|
+
|
12
|
+
date
|
13
|
+
: 12 Sept 2024
|
14
|
+
|
15
|
+
allotted-time
|
16
|
+
: 120m
|
17
|
+
|
18
|
+
theme
|
19
|
+
: theme
|
20
|
+
|
21
|
+
# self.inspect
|
22
|
+
|
23
|
+
- Hitoshi HASUMI
|
24
|
+
- @hasumikin {::tag name="small"}(GitHub and Twitter){:/tag}
|
25
|
+
- Creator of PicoRuby
|
26
|
+
- Contributor to CRuby and mruby
|
27
|
+
- Member of IRB maintainer team
|
28
|
+
|
29
|
+
{:
|
30
|
+
align="right"
|
31
|
+
relative-height="65"
|
32
|
+
relative_margin_top="10"
|
33
|
+
relative_margin_left="10"
|
34
|
+
}
|
35
|
+
|
36
|
+
# Agenda
|
37
|
+
|
38
|
+
- Introduction to PicoRuby
|
39
|
+
- Quick Demo
|
40
|
+
- Hands-On Workshop
|
41
|
+
- LED Blinking, Temperature Sensor,
|
42
|
+
LCD Display, then All Work Together
|
43
|
+
|
44
|
+
{:.center}
|
45
|
+
*Including basic training on microcontroller*
|
46
|
+
|
47
|
+
# Befoer that,
|
48
|
+
|
49
|
+
\\n\\n
|
50
|
+
|
51
|
+
{:.center}
|
52
|
+
Dounload the latest *R2P2-\*.uf2* from
|
53
|
+
https://github.com/picoruby/R2P2/releases
|
54
|
+
|
55
|
+
# chapter
|
56
|
+
{::tag name="xx-large"}Introduction to *PicoRuby*{:/tag}
|
57
|
+
|
58
|
+
## Properties
|
59
|
+
hide-title
|
60
|
+
: true
|
61
|
+
|
62
|
+
# What is *PicoRuby*?
|
63
|
+
|
64
|
+
- Smallest Ruby implementation for microcontrollers
|
65
|
+
- Based on mruby's VM code design
|
66
|
+
- Targeting *RP2040* (so far)
|
67
|
+
- Parser: Prism, *merged this week*🎉
|
68
|
+
- Used be my own parser
|
69
|
+
- Now almost full-compatible with CRuby!!!
|
70
|
+
|
71
|
+
# *RP2040* and Raspberry Pi *Pico*
|
72
|
+
- Raspberry Pi Pico: Microcontroller board
|
73
|
+
- MCU: *RP2040*
|
74
|
+
- Cortex-Mzero+ (dual)
|
75
|
+
- 264 KB RAM, 2 MB flash ROM
|
76
|
+
- Generally runs without an OS
|
77
|
+
- Completely different from
|
78
|
+
Raspberry Pi (Single Board Computer)
|
79
|
+
|
80
|
+
{:
|
81
|
+
align="right"
|
82
|
+
relative-height="95"
|
83
|
+
relative_margin_top="8"
|
84
|
+
relative_margin_left="0"
|
85
|
+
draw0="[rectangle, false, 0.3, 0.41, 0.37, 0.2, {color: red, line_width: 8\}]"
|
86
|
+
draw1="[text, RP2040, 0.12, 0.61, {color: red, size: 70, font_family: 'Courier Prime', weight: bold\}]"
|
87
|
+
}
|
88
|
+
|
89
|
+
# chapter
|
90
|
+
{::tag name="xx-large"}Quick *Demo*{:/tag}
|
91
|
+
|
92
|
+
## Properties
|
93
|
+
hide-title
|
94
|
+
: true
|
95
|
+
|
96
|
+
# What You Saw in the Demo
|
97
|
+
- Unix-like shell running on Raspberry Pi Pico
|
98
|
+
- You can use some commands like `cd`, `ls`, `mkdir`, and *`irb`*
|
99
|
+
- In IRB, your Ruby snippet is compiled into mruby VM code and executed *on the fly*
|
100
|
+
- If you put */home/app.rb*, it will be executed automatically on startup
|
101
|
+
|
102
|
+
# chapter
|
103
|
+
{::tag name="xx-large"}Hands-On *Workshop*{:/tag}
|
104
|
+
|
105
|
+
## Properties
|
106
|
+
hide-title
|
107
|
+
: true
|
108
|
+
|
109
|
+
# Please check: All parts are ready
|
110
|
+
|
111
|
+
{:
|
112
|
+
align="center"
|
113
|
+
relative-height="100"
|
114
|
+
relative_margin_left="0"
|
115
|
+
relative_margin_top="0"
|
116
|
+
}
|
117
|
+
|
118
|
+
# You can take this kit home with you!
|
119
|
+
|
120
|
+
It's a gift from *ITOC*, a research institute in Shimane Prefecture (the most beautiful prefecture in Japan, where Matz and I live)!
|
121
|
+
|
122
|
+
# chapter
|
123
|
+
|
124
|
+
{::tag name="xx-large"}*Mutual Support* Is Essential{:/tag}
|
125
|
+
{::tag name="xx-large"}For A Successful Workshop!{:/tag}
|
126
|
+
|
127
|
+
## Properties
|
128
|
+
hide-title
|
129
|
+
: true
|
130
|
+
|
131
|
+
# Hands-On 1: Setup and LED Blinking
|
132
|
+
|
133
|
+
- LED is the most basic component in electronics
|
134
|
+
- You can control the LED by *GPIO* pins
|
135
|
+
|
136
|
+
{:.center}
|
137
|
+
\\n
|
138
|
+
{::tag name="large"}*`https://tinyurl.com/picoruby-setup`*{:/tag}
|
139
|
+
{::tag name="large"}*`https://tinyurl.com/picoruby-led`*{:/tag}
|
140
|
+
|
141
|
+
# Hands-On 2: RGB LED Fading
|
142
|
+
|
143
|
+
- You can control the brightness of the LED by *PWM*
|
144
|
+
- It simulates analog output by changing the duty cycle of the signal
|
145
|
+
|
146
|
+
{:.center}
|
147
|
+
\\n
|
148
|
+
{::tag name="large"}*`https://tinyurl.com/picoruby-rgb`*{:/tag}
|
149
|
+
|
150
|
+
# Hands-On 3: Temperature Sensor
|
151
|
+
|
152
|
+
- Thermistor is a resistor whose resistance changes with temperature
|
153
|
+
- You can read the resistance via *ADC*
|
154
|
+
|
155
|
+
{:.center}
|
156
|
+
\\n
|
157
|
+
{::tag name="large"}*`https://tinyurl.com/picoruby-temp`*{:/tag}
|
158
|
+
|
159
|
+
# Hands-On 4: Character Display
|
160
|
+
|
161
|
+
- *I2C* is one of the serial communication protocols
|
162
|
+
- Low-level operation is messy, so you might want to use a library (*gem*)
|
163
|
+
|
164
|
+
{:.center}
|
165
|
+
\\n
|
166
|
+
{::tag name="large"}*`https://tinyurl.com/picoruby-lcd`*{:/tag}
|
167
|
+
|
168
|
+
# Hands-On 5: Talk to Your Neighbor
|
169
|
+
|
170
|
+
- *UART* is another serial communication protocol
|
171
|
+
- Let's talk to your neighbor's Pico through UART!
|
172
|
+
|
173
|
+
{:.center}
|
174
|
+
\\n
|
175
|
+
{::tag name="large"}*`https://tinyurl.com/picoruby-uart`*{:/tag}
|
176
|
+
|
177
|
+
# Hands-On 6: All Work Together
|
178
|
+
|
179
|
+
- Make a new project with your own idea
|
180
|
+
- Share your cool PicoRuby application with us!
|
181
|
+
- Resouces:
|
182
|
+
`https://tinyurl.com/picoruby-setup`
|
183
|
+
`https://tinyurl.com/picoruby-led`
|
184
|
+
`https://tinyurl.com/picoruby-rgb`
|
185
|
+
`https://tinyurl.com/picoruby-temp`
|
186
|
+
`https://tinyurl.com/picoruby-lcd`
|
187
|
+
`https://tinyurl.com/picoruby-uart`
|
188
|
+
|
189
|
+
# chapter
|
190
|
+
|
191
|
+
{::tag name="xx-large"}Stargaze at{:/tag}
|
192
|
+
github.com/picoruby/picoruby
|
193
|
+
|
194
|
+
{:
|
195
|
+
relative_height="70"
|
196
|
+
}
|
197
|
+
|
198
|
+
{::tag name="xx-large"}*Thank you!*{:/tag}
|
199
|
+
|
200
|
+
## Properties
|
201
|
+
hide-title
|
202
|
+
: true
|
203
|
+
|
data/README.md
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
# Embedded Ruby Revolution: A Hands-On Workshop with PicoRuby
|
2
|
+
|
3
|
+
Presentation slide for Euruko 2024
|
4
|
+
|
5
|
+
## For author
|
6
|
+
|
7
|
+
### Show
|
8
|
+
|
9
|
+
```
|
10
|
+
rake
|
11
|
+
```
|
12
|
+
|
13
|
+
# Publish
|
14
|
+
|
15
|
+
```
|
16
|
+
rake publish
|
17
|
+
```
|
18
|
+
|
19
|
+
## For viewers
|
20
|
+
|
21
|
+
### Install
|
22
|
+
|
23
|
+
```
|
24
|
+
gem install rabbit-slide-hasumikin-Euruko2024
|
25
|
+
```
|
26
|
+
|
27
|
+
### Show
|
28
|
+
|
29
|
+
```
|
30
|
+
rabbit rabbit-slide-hasumikin-Euruko2024.gem
|
31
|
+
```
|
32
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require "rabbit/task/slide"
|
2
|
+
|
3
|
+
# Edit ./config.yaml to customize meta data
|
4
|
+
|
5
|
+
spec = nil
|
6
|
+
Rabbit::Task::Slide.new do |task|
|
7
|
+
spec = task.spec
|
8
|
+
# spec.files += Dir.glob("doc/**/*.*")
|
9
|
+
# spec.files -= Dir.glob("private/**/*.*")
|
10
|
+
# spec.add_runtime_dependency("rabbit-theme-YOUR-THEME")
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "Tag #{spec.version}"
|
14
|
+
task :tag do
|
15
|
+
sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
|
16
|
+
sh("git", "push", "--tags")
|
17
|
+
end
|
data/config.yaml
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
---
|
2
|
+
id: Euruko2024
|
3
|
+
base_name: PicoRubyHandsOn
|
4
|
+
tags:
|
5
|
+
- PicoRuby
|
6
|
+
- hands-on
|
7
|
+
presentation_date: '2024-09-12'
|
8
|
+
presentation_start_time:
|
9
|
+
presentation_end_time:
|
10
|
+
version: 2024.09.12.0
|
11
|
+
licenses: ["MIT"]
|
12
|
+
slideshare_id:
|
13
|
+
speaker_deck_id:
|
14
|
+
ustream_id:
|
15
|
+
vimeo_id:
|
16
|
+
youtube_id:
|
17
|
+
author:
|
18
|
+
markup_language: :md
|
19
|
+
name: HASUMI Hitoshi
|
20
|
+
email: hasumikin@gmail.com
|
21
|
+
rubygems_user: hasumikin
|
22
|
+
slideshare_user:
|
23
|
+
speaker_deck_user:
|
Binary file
|
Binary file
|
Binary file
|
data/gist/4_lcd/lcd.png
ADDED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|