Skip to content

Commit e058f1a

Browse files
committed
start with article
0 parents  commit e058f1a

6 files changed

Lines changed: 261 additions & 0 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# This file was created automatically with `myst init --gh-pages` 🪄 💚
2+
# Ensure your GitHub Pages settings for this repository are set to deploy with **GitHub Actions**.
3+
4+
name: MyST GitHub Pages Deploy
5+
on:
6+
push:
7+
# Runs on pushes targeting the default branch
8+
branches: [main]
9+
env:
10+
# `BASE_URL` determines, relative to the root of the domain, the URL that your site is served from.
11+
# E.g., if your site lives at `https://mydomain.org/myproject`, set `BASE_URL=/myproject`.
12+
# If, instead, your site lives at the root of the domain, at `https://mydomain.org`, set `BASE_URL=''`.
13+
BASE_URL: /${{ github.event.repository.name }}
14+
15+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
16+
permissions:
17+
contents: read
18+
pages: write
19+
id-token: write
20+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
21+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
22+
concurrency:
23+
group: 'pages'
24+
cancel-in-progress: false
25+
jobs:
26+
deploy:
27+
environment:
28+
name: github-pages
29+
url: ${{ steps.deployment.outputs.page_url }}
30+
runs-on: ubuntu-latest
31+
steps:
32+
- uses: actions/checkout@v4
33+
- name: Setup Pages
34+
uses: actions/configure-pages@v3
35+
- uses: actions/setup-node@v4
36+
with:
37+
node-version: 18.x
38+
- name: Install MyST
39+
run: npm install -g mystmd
40+
- name: Build HTML Assets
41+
run: myst build --html
42+
- name: Upload artifact
43+
uses: actions/upload-pages-artifact@v3
44+
with:
45+
path: './_build/html'
46+
- name: Deploy to GitHub Pages
47+
id: deployment
48+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# MyST build outputs
2+
_build

.vscode/settings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"cSpell.words": [
3+
"microcontroller"
4+
]
5+
}

article.md

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
---
2+
title: An affordable and adaptable educational escape room
3+
abstract: some abstract here
4+
---
5+
6+
# Introduction
7+
- engaging students difficult
8+
- gamification, escape rooms
9+
- solution in education? efforts?
10+
- challenges: cost, setup time, adaptability
11+
- here we outline ...
12+
- use it yourselves, or let your students build one based on this idea: resulting in an entertaining experience and a learning experience in electronics and programming
13+
14+
# Background
15+
- some info on the educational escape rooms
16+
17+
https://www.instructables.com/id/Escaperoom
18+
19+
# The design
20+
21+
## Outline of the escape room
22+
- box with buttons and lcd screen
23+
- puzzles to solve, input codes
24+
- indication of level of completion
25+
- hints should be possible, but not by asking teacher
26+
- timer
27+
- resistors
28+
- tea box, size of ...
29+
30+
31+
32+
## Materials and setup
33+
34+
The entire setup is designed to be affordable and easy to assemble using commonly available components.
35+
We used a tea box with dimensions of approximately 20 x 15 x 10 cm as the enclosure for the electronics.
36+
However, any box of similar size can be used - it might be worthwhile to visit the local second-hand store to find a suitable box.
37+
We disassembled the lid of the box and used a laser cutter to create holes for the buttons, leds, buzzer, and LCD screen (the source file is included in the supplementary files), see figure {numref}`figure {number} <fig_top>`.
38+
39+
````{figure}
40+
:label: fig_top
41+
```{figure} top1.*
42+
:label: fig_top1
43+
44+
Top view of the tea box with holes for buttons, leds, buzzer, and LCD screen.
45+
```
46+
```{figure} top2.*
47+
:label: fig_top2
48+
49+
Top view of the tea box with holes for buttons, leds, buzzer, and LCD screen.
50+
```
51+
````
52+
53+
54+
55+
For this project, we used the Arduino Uno R3 as the main microcontroller.
56+
It is both affordable, widely available and has enough input and output pins to connect all the necessary components.
57+
58+
We included four 16 mm panel mount push buttons for user input.
59+
Using a series circuit with resistors, where each button is connected to a different resistor value, we can read the button presses using a single analog input pin on the Arduino, see {numref}`figure {number} <fig_circuit>`.
60+
This reduces the number of required pins and simplifies the wiring.
61+
Moreover, this system allows to easily add more buttons if needed.
62+
63+
```{figure} circuit.*
64+
:label: fig_circuit
65+
66+
Wiring diagram of the button input circuit using resistors. [circuit](@https://www.circuit-diagram.org/editor/c/5fd81e68c4b84dc39689d8260aeaba49)
67+
```
68+
69+
Four green leds are required to indicate the progress of the team (though more leds can be added, optionally using a multiplexer to reduce the number of required pins).
70+
A red led is used to indicate a wrong code entry, or running out of time.
71+
A buzzer is used to sound an alarm or, when complete, a victory tune.
72+
73+
In this project we used the internal clock of the Arduino to keep track of time.
74+
Optionally, a real time clock (RTC) module can be added to keep more accurate time, especially when the device is powered off and on again.
75+
76+
An LCD screen is used to display the timer, hints, and other information to the players.
77+
We opted for the LCD with integrated I2C module, which reduces the number of required pins to just two (SDA and SCL), and off course power and ground.
78+
79+
Finally, a battery pack and on/off switch are used to power the entire setup, making it portable and easy to set up anywhere.
80+
81+
82+
83+
84+
## Code
85+
86+
87+
88+
# Implementation
89+
90+
91+
92+
# Conclusion

circuit.svg

Lines changed: 97 additions & 0 deletions
Loading

myst.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# See docs at: https://mystmd.org/guide/frontmatter
2+
version: 1
3+
project:
4+
id: 8a478874-8f2f-4f8e-9b56-fd21507f0275
5+
title: An affordable and adaptable educational escape room
6+
# description:
7+
keywords: [Escape room; Physics; Education; Instructable; Open Science; Open Hardware]
8+
authors:
9+
- name: Freek Pols
10+
- name: Koen Caspers
11+
github: https://github.com/FreekPols/EscapeTheClassroom
12+
# To autogenerate a Table of Contents, run "myst init --write-toc"
13+
site:
14+
template: article-theme
15+
# options:
16+
# favicon: favicon.ico
17+
# logo: site_logo.png

0 commit comments

Comments
 (0)