rabbit-slide-hasumikin-Euruko2024 2024.09.12.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
![](images/hasumi.jpg){:
|
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
|
+
![](images/rpi_pico.jpg){:
|
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
|
+
![](images/setup.png){:
|
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
|
+
![](images/QR_picoruby.png){:
|
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
|