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 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
@@ -0,0 +1,2 @@
1
+ --size 1920,1080
2
+ PicoRubyHandsOn.md
@@ -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
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file