diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..773b822
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,8 @@
+# frozen_string_literal: true
+
+source "https://rubygems.org"
+
+git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
+gem 'github-pages', group: :jekyll_plugins
+
+# gem "rails"
diff --git a/Gemfile.lock b/Gemfile.lock
new file mode 100644
index 0000000..770d550
--- /dev/null
+++ b/Gemfile.lock
@@ -0,0 +1,251 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ activesupport (4.2.9)
+ i18n (~> 0.7)
+ minitest (~> 5.1)
+ thread_safe (~> 0.3, >= 0.3.4)
+ tzinfo (~> 1.1)
+ addressable (2.5.2)
+ public_suffix (>= 2.0.2, < 4.0)
+ coffee-script (2.4.1)
+ coffee-script-source
+ execjs
+ coffee-script-source (1.11.1)
+ colorator (1.1.0)
+ commonmarker (0.17.13)
+ ruby-enum (~> 0.5)
+ concurrent-ruby (1.1.5)
+ dnsruby (1.61.3)
+ addressable (~> 2.5)
+ em-websocket (0.5.1)
+ eventmachine (>= 0.12.9)
+ http_parser.rb (~> 0.6.0)
+ ethon (0.11.0)
+ ffi (>= 1.3.0)
+ eventmachine (1.2.7)
+ execjs (2.7.0)
+ faraday (0.15.0)
+ multipart-post (>= 1.2, < 3)
+ ffi (1.9.23)
+ forwardable-extended (2.6.0)
+ gemoji (3.0.0)
+ github-pages (183)
+ activesupport (= 4.2.9)
+ github-pages-health-check (= 1.7.3)
+ jekyll (= 3.7.3)
+ jekyll-avatar (= 0.5.0)
+ jekyll-coffeescript (= 1.1.1)
+ jekyll-commonmark-ghpages (= 0.1.5)
+ jekyll-default-layout (= 0.1.4)
+ jekyll-feed (= 0.9.3)
+ jekyll-gist (= 1.5.0)
+ jekyll-github-metadata (= 2.9.4)
+ jekyll-mentions (= 1.3.0)
+ jekyll-optional-front-matter (= 0.3.0)
+ jekyll-paginate (= 1.1.0)
+ jekyll-readme-index (= 0.2.0)
+ jekyll-redirect-from (= 0.13.0)
+ jekyll-relative-links (= 0.5.3)
+ jekyll-remote-theme (= 0.2.3)
+ jekyll-sass-converter (= 1.5.2)
+ jekyll-seo-tag (= 2.4.0)
+ jekyll-sitemap (= 1.2.0)
+ jekyll-swiss (= 0.4.0)
+ jekyll-theme-architect (= 0.1.1)
+ jekyll-theme-cayman (= 0.1.1)
+ jekyll-theme-dinky (= 0.1.1)
+ jekyll-theme-hacker (= 0.1.1)
+ jekyll-theme-leap-day (= 0.1.1)
+ jekyll-theme-merlot (= 0.1.1)
+ jekyll-theme-midnight (= 0.1.1)
+ jekyll-theme-minimal (= 0.1.1)
+ jekyll-theme-modernist (= 0.1.1)
+ jekyll-theme-primer (= 0.5.3)
+ jekyll-theme-slate (= 0.1.1)
+ jekyll-theme-tactile (= 0.1.1)
+ jekyll-theme-time-machine (= 0.1.1)
+ jekyll-titles-from-headings (= 0.5.1)
+ jemoji (= 0.9.0)
+ kramdown (= 1.16.2)
+ liquid (= 4.0.0)
+ listen (= 3.1.5)
+ mercenary (~> 0.3)
+ minima (= 2.4.1)
+ nokogiri (>= 1.8.1, < 2.0)
+ rouge (= 2.2.1)
+ terminal-table (~> 1.4)
+ github-pages-health-check (1.7.3)
+ addressable (~> 2.3)
+ dnsruby (~> 1.60)
+ octokit (~> 4.0)
+ public_suffix (~> 2.0)
+ typhoeus (~> 1.3)
+ html-pipeline (2.7.2)
+ activesupport (>= 2)
+ nokogiri (>= 1.4)
+ http_parser.rb (0.6.0)
+ i18n (0.9.5)
+ concurrent-ruby (~> 1.0)
+ jekyll (3.7.3)
+ addressable (~> 2.4)
+ colorator (~> 1.0)
+ em-websocket (~> 0.5)
+ i18n (~> 0.7)
+ jekyll-sass-converter (~> 1.0)
+ jekyll-watch (~> 2.0)
+ kramdown (~> 1.14)
+ liquid (~> 4.0)
+ mercenary (~> 0.3.3)
+ pathutil (~> 0.9)
+ rouge (>= 1.7, < 4)
+ safe_yaml (~> 1.0)
+ jekyll-avatar (0.5.0)
+ jekyll (~> 3.0)
+ jekyll-coffeescript (1.1.1)
+ coffee-script (~> 2.2)
+ coffee-script-source (~> 1.11.1)
+ jekyll-commonmark (1.2.0)
+ commonmarker (~> 0.14)
+ jekyll (>= 3.0, < 4.0)
+ jekyll-commonmark-ghpages (0.1.5)
+ commonmarker (~> 0.17.6)
+ jekyll-commonmark (~> 1)
+ rouge (~> 2)
+ jekyll-default-layout (0.1.4)
+ jekyll (~> 3.0)
+ jekyll-feed (0.9.3)
+ jekyll (~> 3.3)
+ jekyll-gist (1.5.0)
+ octokit (~> 4.2)
+ jekyll-github-metadata (2.9.4)
+ jekyll (~> 3.1)
+ octokit (~> 4.0, != 4.4.0)
+ jekyll-mentions (1.3.0)
+ activesupport (~> 4.0)
+ html-pipeline (~> 2.3)
+ jekyll (~> 3.0)
+ jekyll-optional-front-matter (0.3.0)
+ jekyll (~> 3.0)
+ jekyll-paginate (1.1.0)
+ jekyll-readme-index (0.2.0)
+ jekyll (~> 3.0)
+ jekyll-redirect-from (0.13.0)
+ jekyll (~> 3.3)
+ jekyll-relative-links (0.5.3)
+ jekyll (~> 3.3)
+ jekyll-remote-theme (0.2.3)
+ jekyll (~> 3.5)
+ rubyzip (>= 1.2.1, < 3.0)
+ typhoeus (>= 0.7, < 2.0)
+ jekyll-sass-converter (1.5.2)
+ sass (~> 3.4)
+ jekyll-seo-tag (2.4.0)
+ jekyll (~> 3.3)
+ jekyll-sitemap (1.2.0)
+ jekyll (~> 3.3)
+ jekyll-swiss (0.4.0)
+ jekyll-theme-architect (0.1.1)
+ jekyll (~> 3.5)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-cayman (0.1.1)
+ jekyll (~> 3.5)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-dinky (0.1.1)
+ jekyll (~> 3.5)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-hacker (0.1.1)
+ jekyll (~> 3.5)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-leap-day (0.1.1)
+ jekyll (~> 3.5)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-merlot (0.1.1)
+ jekyll (~> 3.5)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-midnight (0.1.1)
+ jekyll (~> 3.5)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-minimal (0.1.1)
+ jekyll (~> 3.5)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-modernist (0.1.1)
+ jekyll (~> 3.5)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-primer (0.5.3)
+ jekyll (~> 3.5)
+ jekyll-github-metadata (~> 2.9)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-slate (0.1.1)
+ jekyll (~> 3.5)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-tactile (0.1.1)
+ jekyll (~> 3.5)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-time-machine (0.1.1)
+ jekyll (~> 3.5)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-titles-from-headings (0.5.1)
+ jekyll (~> 3.3)
+ jekyll-watch (2.0.0)
+ listen (~> 3.0)
+ jemoji (0.9.0)
+ activesupport (~> 4.0, >= 4.2.9)
+ gemoji (~> 3.0)
+ html-pipeline (~> 2.2)
+ jekyll (~> 3.0)
+ kramdown (1.16.2)
+ liquid (4.0.0)
+ listen (3.1.5)
+ rb-fsevent (~> 0.9, >= 0.9.4)
+ rb-inotify (~> 0.9, >= 0.9.7)
+ ruby_dep (~> 1.2)
+ mercenary (0.3.6)
+ mini_portile2 (2.3.0)
+ minima (2.4.1)
+ jekyll (~> 3.5)
+ jekyll-feed (~> 0.9)
+ jekyll-seo-tag (~> 2.1)
+ minitest (5.14.0)
+ multipart-post (2.0.0)
+ nokogiri (1.8.2)
+ mini_portile2 (~> 2.3.0)
+ octokit (4.8.0)
+ sawyer (~> 0.8.0, >= 0.5.3)
+ pathutil (0.16.1)
+ forwardable-extended (~> 2.6)
+ public_suffix (2.0.5)
+ rb-fsevent (0.10.3)
+ rb-inotify (0.9.10)
+ ffi (>= 0.5.0, < 2)
+ rouge (2.2.1)
+ ruby-enum (0.7.2)
+ i18n
+ ruby_dep (1.5.0)
+ rubyzip (1.2.1)
+ safe_yaml (1.0.4)
+ sass (3.5.6)
+ sass-listen (~> 4.0.0)
+ sass-listen (4.0.0)
+ rb-fsevent (~> 0.9, >= 0.9.4)
+ rb-inotify (~> 0.9, >= 0.9.7)
+ sawyer (0.8.1)
+ addressable (>= 2.3.5, < 2.6)
+ faraday (~> 0.8, < 1.0)
+ terminal-table (1.8.0)
+ unicode-display_width (~> 1.1, >= 1.1.1)
+ thread_safe (0.3.6)
+ typhoeus (1.3.0)
+ ethon (>= 0.9.0)
+ tzinfo (1.2.6)
+ thread_safe (~> 0.1)
+ unicode-display_width (1.3.2)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ github-pages
+
+BUNDLED WITH
+ 2.1.4
diff --git a/README.md b/README.md
index a3768b2..70b0459 100644
--- a/README.md
+++ b/README.md
@@ -4,33 +4,23 @@ Just the basics to get coding using MicroPython on the BBC microbit [python.micr
[PDF copy for print](https://microbitcheatsheet.mrkn.us/cheatsheet.pdf)
-## Features
-
-### import microbit library
+### import microbit library (usually the first line of code)
Import every class, function and variable
`from microbit import *`
-Import only the display class
-
-`from microbit import display`
-
-Import the microbit library
-
-`import microbit`
-
-
+## Features
### [Buttons](https://microbit-micropython.readthedocs.io/en/latest/tutorials/buttons.html)
Was a button pressed?
-`buttona.was_pressed()`
+`button_a.was_pressed()`
Is a button currently pressed?
-`buttonb.is_pressed()`
+`button_b.is_pressed()`
@@ -52,7 +42,7 @@ What is the value of the accellerometer x axis?
-### [ Compass](https://microbit-micropython.readthedocs.io/en/latest/compass.html)
+### [Compass](https://microbit-micropython.readthedocs.io/en/latest/compass.html)
Run the compass calibration routine
@@ -200,6 +190,19 @@ while True:
display.show(Image.HEART_SMALL)
sleep(10)
```
+``` python
+while (temperature() < 18):
+ display.scroll(Image.SAD)
+ sleep(1000)
+```
+``` python
+for i in range (5):
+ # set the pixel in column 0, row i to 9
+ display.set_pixel(0, i, 9)
+
+ # set the pixel in column 4, row i to 9
+ display.set_pixel(4, i, 9)
+```
@@ -208,14 +211,20 @@ while True:
```python
if accelerometer.was_gesture("shake"):
display.scroll('shake')
- elif accelerometer.was_gesture("face down"):
+elif accelerometer.was_gesture("face down"):
display.show(Image.HAPPY)
else:
display.clear()
```
-### MicroPython Easter Eggs
-`import love()`
+### Functions
+```python
+def happyBirthday(name, age):
+ return "Happy Birthday " + name + ", you are " + str(age) + " years old"
+
+display.scroll(happyBirthday("Emma", 8))
+display.scroll(happyBirthday("Mark", 9))
+```
diff --git a/_site/README.md b/_site/README.md
new file mode 100644
index 0000000..a3768b2
--- /dev/null
+++ b/_site/README.md
@@ -0,0 +1,221 @@
+# 🐍 Python cheatsheet
+
+Just the basics to get coding using MicroPython on the BBC microbit [python.microbit.org](https://python.microbit.org)
+
+[PDF copy for print](https://microbitcheatsheet.mrkn.us/cheatsheet.pdf)
+
+## Features
+
+### import microbit library
+
+Import every class, function and variable
+
+`from microbit import *`
+
+Import only the display class
+
+`from microbit import display`
+
+Import the microbit library
+
+`import microbit`
+
+
+
+### [Buttons](https://microbit-micropython.readthedocs.io/en/latest/tutorials/buttons.html)
+
+Was a button pressed?
+
+`buttona.was_pressed()`
+
+Is a button currently pressed?
+
+`buttonb.is_pressed()`
+
+
+
+### [Accelerometer](https://microbit-micropython.readthedocs.io/en/latest/accelerometer.html)
+
+Gestures: `up`, `down`, `left`, `right`, `face up`, `face down`, `freefall`, `3g`, `6g`, `8g`, `shake`
+
+Was the micro:bit shaken?
+
+`accelerometer.was_gesture("shake")`
+
+Is the micro:bit currently falling?
+
+`accelerometer.is_gesture("freefall")`
+
+What is the value of the accellerometer x axis?
+
+`accelerometer.get_x()`
+
+
+
+### [ Compass](https://microbit-micropython.readthedocs.io/en/latest/compass.html)
+
+Run the compass calibration routine
+
+`compass.calibrate()`
+
+What is the compass heading from 0 - 360 degrees?
+
+`compass.heading()`
+
+What is the field strength on the y axis in nano teslas?
+
+`compass.get_y()`
+
+
+
+### [Music](https://microbit-micropython.readthedocs.io/en/latest/music.html)
+
+Play happy birthday
+
+`music.play(music.BIRTHDAY)`
+
+Create an array called `tune` of "NOTE OCTAVE:DURATION" then play it.
+
+```python
+tune = ["C4:4", "D4:4", "E4:4", "C4:4", "C4:4", "D4:4", "E4:4", "C4:4",
+ "E4:4", "F4:4", "G4:8", "E4:4", "F4:4", "G4:8"]
+music.play(tune)
+```
+
+Play a pitch (Frequency(Hz), Duration(ticks))
+
+`music.pitch(440, 6)`
+
+Set the tempo
+
+`music.set_tempo(ticks=4, bpm=120)`
+
+
+
+### [Radio](https://microbit-micropython.readthedocs.io/en/latest/tutorials/radio.html)
+
+Import the radio module
+
+`import radio`
+
+Turn the radio on or off
+
+`radio.on()`
+
+Send a string via radio
+
+`radio.send('duck')`
+
+Return whatever radio message was received
+
+`radio.receive()`
+
+
+
+### [Input/Output pins](https://microbit-micropython.readthedocs.io/en/latest/pin.html)
+
+Is a pin currently being touched?
+
+`pin0.is_touched()`
+
+Return the current value on a pin
+
+`pin1.read_analog()`
+
+Write a value to a pin
+
+`pin2.write-digital(1)`
+
+
+
+### LED Display (text, [image](https://microbit-micropython.readthedocs.io/en/latest/image.html))
+
+Images: `HEART`, `HEART_SMALL`, `HAPPY`, `SMILE`, `SAD`,`CONFUSED`, `ANGRY`, `ASLEEP`, `SURPRISED`, `SILLY`, `FABULOUS`, `MEH`, `YES`, `NO`, `CLOCK12`, `CLOCK11`, `CLOCK10`, `CLOCK9`, `CLOCK8`, `CLOCK7`, `CLOCK6`, `CLOCK5`, `CLOCK4`, `CLOCK3`, `CLOCK2`, `CLOCK1`, `ARROW_N`, `ARROW_NE`, `ARROW_E`, `ARROW_SE`, `ARROW_S`, `ARROW_SW`, `ARROW_W`, `ARROW_NW`, `TRIANGLE`, `TRIANGLE_LEFT`, `CHESSBOARD`, `DIAMOND`, `DIAMOND_SMALL`, `SQUARE`, `SQUARE_SMALL`, `RABBIT`, `COW`, `MUSIC_CROTCHET`, `MUSIC_QUAVER`, `MUSIC_QUAVERS`, `PITCHFORK`, `XMAS`, `PACMAN`, `TARGET`, `TSHIRT`, `ROLLERSKATE`, `DUCK`, `HOUSE`, `TORTOISE`, `BUTTERFLY`, `STICKFIGURE`, `GHOST`, `SWORD`, `GIRAFFE`, `SKULL`, `UMBRELLA`, `SNAKE`
+
+Scroll a string across the display
+
+`display.scroll('hello world')`
+
+Show an image on the display
+
+`display.show(Image.DUCK)`
+
+Return the light level from the display
+
+`display.read_light_level()`
+
+
+### [Temperature](https://microbit-micropython.readthedocs.io/en/latest/microbit.html?highlight=temp#microbit.temperature)
+
+What is the current temperature?
+
+`temperature()`
+
+
+
+### [Neopixels](https://microbit-micropython.readthedocs.io/en/latest/pin.html)
+
+Import the Neopixel module
+
+`import neopixel`
+
+Initialise a strip of Neopixels (pin, number of Neopixels)
+
+`neopixel.Neopixel(pin0, 10)`
+
+Send the current colour data to the Neopixels
+
+`neopixel.Neopixel.show()`
+
+
+
+### [Pause](https://microbit-micropython.readthedocs.io/en/latest/microbit.html#microbit.sleep)
+
+Sleep for a number of milliseconds(ms)
+
+`sleep(500)`
+
+
+
+## Coding concepts
+
+### Variables
+
+Set the compass heading to a variable
+
+`direction = compass.heading()`
+
+Set the received radio message to a variable
+
+`incoming = radio.receive()`
+
+
+
+### Loops
+
+```python
+while True:
+ display.show(Image.HEART)
+ sleep(10)
+ display.show(Image.HEART_SMALL)
+ sleep(10)
+```
+
+
+
+### Conditions
+
+```python
+if accelerometer.was_gesture("shake"):
+ display.scroll('shake')
+ elif accelerometer.was_gesture("face down"):
+ display.show(Image.HAPPY)
+else:
+ display.clear()
+```
+
+### MicroPython Easter Eggs
+
+`import love()`
+
+
diff --git a/_site/assets/css/style.css b/_site/assets/css/style.css
new file mode 100644
index 0000000..15f265e
--- /dev/null
+++ b/_site/assets/css/style.css
@@ -0,0 +1,319 @@
+/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */
+@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,700");
+html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ }
+
+/** Remove default margin. */
+body { margin: 0; }
+
+/* HTML5 display definitions ========================================================================== */
+/** Correct `block` display not defined for any HTML5 element in IE 8/9. Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. Correct `block` display not defined for `main` in IE 11. */
+article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; }
+
+/** 1. Correct `inline-block` display not defined in IE 8/9. 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. */
+audio, canvas, progress, video { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ }
+
+/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */
+audio:not([controls]) { display: none; height: 0; }
+
+/** Address `[hidden]` styling not present in IE 8/9/10. Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. */
+[hidden], template { display: none; }
+
+/* Links ========================================================================== */
+/** Remove the gray background color from active links in IE 10. */
+a { background-color: transparent; }
+
+/** Improve readability when focused and also mouse hovered in all browsers. */
+a:active, a:hover { outline: 0; }
+
+/* Text-level semantics ========================================================================== */
+/** Address styling not present in IE 8/9/10/11, Safari, and Chrome. */
+abbr[title] { border-bottom: 1px dotted; }
+
+/** Address style set to `bolder` in Firefox 4+, Safari, and Chrome. */
+b, strong { font-weight: bold; }
+
+/** Address styling not present in Safari and Chrome. */
+dfn { font-style: italic; }
+
+/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari, and Chrome. */
+h1 { font-size: 2em; margin: 0.67em 0; }
+
+/** Address styling not present in IE 8/9. */
+mark { background: #ff0; color: #000; }
+
+/** Address inconsistent and variable font size in all browsers. */
+small { font-size: 80%; }
+
+/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */
+sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
+
+sup { top: -0.5em; }
+
+sub { bottom: -0.25em; }
+
+/* Embedded content ========================================================================== */
+/** Remove border when inside `a` element in IE 8/9/10. */
+img { border: 0; }
+
+/** Correct overflow not hidden in IE 9/10/11. */
+svg:not(:root) { overflow: hidden; }
+
+/* Grouping content ========================================================================== */
+/** Address margin not present in IE 8/9 and Safari. */
+figure { margin: 1em 40px; }
+
+/** Address differences between Firefox and other browsers. */
+hr { box-sizing: content-box; height: 0; }
+
+/** Contain overflow in all browsers. */
+pre { overflow: auto; }
+
+/** Address odd `em`-unit font size rendering in all browsers. */
+code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; }
+
+/* Forms ========================================================================== */
+/** Known limitation: by default, Chrome and Safari on OS X allow very limited styling of `select`, unless a `border` property is set. */
+/** 1. Correct color not being inherited. Known issue: affects color of disabled elements. 2. Correct font properties not being inherited. 3. Address margins set differently in Firefox 4+, Safari, and Chrome. */
+button, input, optgroup, select, textarea { color: inherit; /* 1 */ font: inherit; /* 2 */ margin: 0; /* 3 */ }
+
+/** Address `overflow` set to `hidden` in IE 8/9/10/11. */
+button { overflow: visible; }
+
+/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. Correct `select` style inheritance in Firefox. */
+button, select { text-transform: none; }
+
+/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */
+button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ }
+
+/** Re-set default cursor for disabled elements. */
+button[disabled], html input[disabled] { cursor: default; }
+
+/** Remove inner padding and border in Firefox 4+. */
+button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
+
+/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */
+input { line-height: normal; }
+
+/** It's recommended that you don't attempt to style these elements. Firefox's implementation doesn't respect box-sizing, padding, or width. 1. Address box sizing set to `content-box` in IE 8/9/10. 2. Remove excess padding in IE 8/9/10. */
+input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ }
+
+/** Fix the cursor style for Chrome's increment/decrement buttons. For certain `font-size` values of the `input`, it causes the cursor style of the decrement button to change from `default` to `text`. */
+input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; }
+
+/** 1. Address `appearance` set to `searchfield` in Safari and Chrome. 2. Address `box-sizing` set to `border-box` in Safari and Chrome (include `-moz` to future-proof). */
+input[type="search"] { -webkit-appearance: textfield; /* 1 */ /* 2 */ box-sizing: content-box; }
+
+/** Remove inner padding and search cancel button in Safari and Chrome on OS X. Safari (but not Chrome) clips the cancel button when the search input has padding (and `textfield` appearance). */
+input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
+
+/** Define consistent border, margin, and padding. */
+fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }
+
+/** 1. Correct `color` not being inherited in IE 8/9/10/11. 2. Remove padding so people aren't caught out if they zero out fieldsets. */
+legend { border: 0; /* 1 */ padding: 0; /* 2 */ }
+
+/** Remove default vertical scrollbar in IE 8/9/10/11. */
+textarea { overflow: auto; }
+
+/** Don't inherit the `font-weight` (applied by a rule above). NOTE: the default cannot safely be changed in Chrome and Safari on OS X. */
+optgroup { font-weight: bold; }
+
+/* Tables ========================================================================== */
+/** Remove most spacing between table cells. */
+table { border-collapse: collapse; border-spacing: 0; }
+
+td, th { padding: 0; }
+
+.highlight table td { padding: 5px; }
+
+.highlight table pre { margin: 0; }
+
+.highlight .cm { color: #999988; font-style: italic; }
+
+.highlight .cp { color: #999999; font-weight: bold; }
+
+.highlight .c1 { color: #999988; font-style: italic; }
+
+.highlight .cs { color: #999999; font-weight: bold; font-style: italic; }
+
+.highlight .c, .highlight .cd { color: #999988; font-style: italic; }
+
+.highlight .err { color: #a61717; background-color: #e3d2d2; }
+
+.highlight .gd { color: #000000; background-color: #ffdddd; }
+
+.highlight .ge { color: #000000; font-style: italic; }
+
+.highlight .gr { color: #aa0000; }
+
+.highlight .gh { color: #999999; }
+
+.highlight .gi { color: #000000; background-color: #ddffdd; }
+
+.highlight .go { color: #888888; }
+
+.highlight .gp { color: #555555; }
+
+.highlight .gs { font-weight: bold; }
+
+.highlight .gu { color: #aaaaaa; }
+
+.highlight .gt { color: #aa0000; }
+
+.highlight .kc { color: #000000; font-weight: bold; }
+
+.highlight .kd { color: #000000; font-weight: bold; }
+
+.highlight .kn { color: #000000; font-weight: bold; }
+
+.highlight .kp { color: #000000; font-weight: bold; }
+
+.highlight .kr { color: #000000; font-weight: bold; }
+
+.highlight .kt { color: #445588; font-weight: bold; }
+
+.highlight .k, .highlight .kv { color: #000000; font-weight: bold; }
+
+.highlight .mf { color: #009999; }
+
+.highlight .mh { color: #009999; }
+
+.highlight .il { color: #009999; }
+
+.highlight .mi { color: #009999; }
+
+.highlight .mo { color: #009999; }
+
+.highlight .m, .highlight .mb, .highlight .mx { color: #009999; }
+
+.highlight .sb { color: #d14; }
+
+.highlight .sc { color: #d14; }
+
+.highlight .sd { color: #d14; }
+
+.highlight .s2 { color: #d14; }
+
+.highlight .se { color: #d14; }
+
+.highlight .sh { color: #d14; }
+
+.highlight .si { color: #d14; }
+
+.highlight .sx { color: #d14; }
+
+.highlight .sr { color: #009926; }
+
+.highlight .s1 { color: #d14; }
+
+.highlight .ss { color: #990073; }
+
+.highlight .s { color: #d14; }
+
+.highlight .na { color: #008080; }
+
+.highlight .bp { color: #999999; }
+
+.highlight .nb { color: #0086B3; }
+
+.highlight .nc { color: #445588; font-weight: bold; }
+
+.highlight .no { color: #008080; }
+
+.highlight .nd { color: #3c5d5d; font-weight: bold; }
+
+.highlight .ni { color: #800080; }
+
+.highlight .ne { color: #990000; font-weight: bold; }
+
+.highlight .nf { color: #990000; font-weight: bold; }
+
+.highlight .nl { color: #990000; font-weight: bold; }
+
+.highlight .nn { color: #555555; }
+
+.highlight .nt { color: #000080; }
+
+.highlight .vc { color: #008080; }
+
+.highlight .vg { color: #008080; }
+
+.highlight .vi { color: #008080; }
+
+.highlight .nv { color: #008080; }
+
+.highlight .ow { color: #000000; font-weight: bold; }
+
+.highlight .o { color: #000000; font-weight: bold; }
+
+.highlight .w { color: #bbbbbb; }
+
+.highlight { background-color: #f8f8f8; }
+
+* { box-sizing: border-box; }
+
+body { padding: 0; margin: 0; font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.5; color: #606c71; }
+
+a { color: #1e6bb8; text-decoration: none; }
+a:hover { text-decoration: underline; }
+
+.btn { display: inline-block; margin-bottom: 1rem; color: rgba(255, 255, 255, 0.7); background-color: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.2); border-style: solid; border-width: 1px; border-radius: 0.3rem; transition: color 0.2s, background-color 0.2s, border-color 0.2s; }
+.btn:hover { color: rgba(255, 255, 255, 0.8); text-decoration: none; background-color: rgba(255, 255, 255, 0.2); border-color: rgba(255, 255, 255, 0.3); }
+.btn + .btn { margin-left: 1rem; }
+@media screen and (min-width: 64em) { .btn { padding: 0.75rem 1rem; } }
+@media screen and (min-width: 42em) and (max-width: 64em) { .btn { padding: 0.6rem 0.9rem; font-size: 0.9rem; } }
+@media screen and (max-width: 42em) { .btn { display: block; width: 100%; padding: 0.75rem; font-size: 0.9rem; }
+ .btn + .btn { margin-top: 1rem; margin-left: 0; } }
+
+.page-header { color: #fff; text-align: center; background-color: #159957; background-image: linear-gradient(120deg, #155799, #159957); }
+@media screen and (min-width: 64em) { .page-header { padding: 5rem 6rem; } }
+@media screen and (min-width: 42em) and (max-width: 64em) { .page-header { padding: 3rem 4rem; } }
+@media screen and (max-width: 42em) { .page-header { padding: 2rem 1rem; } }
+
+.project-name { margin-top: 0; margin-bottom: 0.1rem; }
+@media screen and (min-width: 64em) { .project-name { font-size: 3.25rem; } }
+@media screen and (min-width: 42em) and (max-width: 64em) { .project-name { font-size: 2.25rem; } }
+@media screen and (max-width: 42em) { .project-name { font-size: 1.75rem; } }
+
+.project-tagline { margin-bottom: 2rem; font-weight: normal; opacity: 0.7; }
+@media screen and (min-width: 64em) { .project-tagline { font-size: 1.25rem; } }
+@media screen and (min-width: 42em) and (max-width: 64em) { .project-tagline { font-size: 1.15rem; } }
+@media screen and (max-width: 42em) { .project-tagline { font-size: 1rem; } }
+
+.main-content { word-wrap: break-word; }
+.main-content :first-child { margin-top: 0; }
+@media screen and (min-width: 64em) { .main-content { max-width: 64rem; padding: 2rem 6rem; margin: 0 auto; font-size: 1.1rem; } }
+@media screen and (min-width: 42em) and (max-width: 64em) { .main-content { padding: 2rem 4rem; font-size: 1.1rem; } }
+@media screen and (max-width: 42em) { .main-content { padding: 2rem 1rem; font-size: 1rem; } }
+.main-content img { max-width: 100%; }
+.main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6 { margin-top: 2rem; margin-bottom: 1rem; font-weight: normal; color: #159957; }
+.main-content p { margin-bottom: 1em; }
+.main-content code { padding: 2px 4px; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 0.9rem; color: #567482; background-color: #f3f6fa; border-radius: 0.3rem; }
+.main-content pre { padding: 0.8rem; margin-top: 0; margin-bottom: 1rem; font: 1rem Consolas, "Liberation Mono", Menlo, Courier, monospace; color: #567482; word-wrap: normal; background-color: #f3f6fa; border: solid 1px #dce6f0; border-radius: 0.3rem; }
+.main-content pre > code { padding: 0; margin: 0; font-size: 0.9rem; color: #567482; word-break: normal; white-space: pre; background: transparent; border: 0; }
+.main-content .highlight { margin-bottom: 1rem; }
+.main-content .highlight pre { margin-bottom: 0; word-break: normal; }
+.main-content .highlight pre, .main-content pre { padding: 0.8rem; overflow: auto; font-size: 0.9rem; line-height: 1.45; border-radius: 0.3rem; -webkit-overflow-scrolling: touch; }
+.main-content pre code, .main-content pre tt { display: inline; max-width: initial; padding: 0; margin: 0; overflow: initial; line-height: inherit; word-wrap: normal; background-color: transparent; border: 0; }
+.main-content pre code:before, .main-content pre code:after, .main-content pre tt:before, .main-content pre tt:after { content: normal; }
+.main-content ul, .main-content ol { margin-top: 0; }
+.main-content blockquote { padding: 0 1rem; margin-left: 0; color: #819198; border-left: 0.3rem solid #dce6f0; }
+.main-content blockquote > :first-child { margin-top: 0; }
+.main-content blockquote > :last-child { margin-bottom: 0; }
+.main-content table { display: block; width: 100%; overflow: auto; word-break: normal; word-break: keep-all; -webkit-overflow-scrolling: touch; }
+.main-content table th { font-weight: bold; }
+.main-content table th, .main-content table td { padding: 0.5rem 1rem; border: 1px solid #e9ebec; }
+.main-content dl { padding: 0; }
+.main-content dl dt { padding: 0; margin-top: 1rem; font-size: 1rem; font-weight: bold; }
+.main-content dl dd { padding: 0; margin-bottom: 1rem; }
+.main-content hr { height: 2px; padding: 0; margin: 1rem 0; background-color: #eff0f1; border: 0; }
+
+.site-footer { padding-top: 2rem; margin-top: 2rem; border-top: solid 1px #eff0f1; }
+@media screen and (min-width: 64em) { .site-footer { font-size: 1rem; } }
+@media screen and (min-width: 42em) and (max-width: 64em) { .site-footer { font-size: 1rem; } }
+@media screen and (max-width: 42em) { .site-footer { font-size: 0.9rem; } }
+
+.site-footer-owner { display: block; font-weight: bold; }
+
+.site-footer-credits { color: #819198; }
diff --git a/_site/cheatsheet.pdf b/_site/cheatsheet.pdf
new file mode 100644
index 0000000..3ac226a
Binary files /dev/null and b/_site/cheatsheet.pdf differ
diff --git a/_site/favicon.ico b/_site/favicon.ico
new file mode 100644
index 0000000..5323678
Binary files /dev/null and b/_site/favicon.ico differ
diff --git a/_site/index.html b/_site/index.html
new file mode 100644
index 0000000..dcbf9d8
--- /dev/null
+++ b/_site/index.html
@@ -0,0 +1,241 @@
+
+
+
+
+
+
+🐍 Python cheatsheet | micro:bit MicroPython cheatsheet
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 🐍 Python cheatsheet
+
+Just the basics to get coding using MicroPython on the BBC microbit python.microbit.org
+
+PDF copy for print
+
+Features
+
+import microbit library
+
+Import every class, function and variable
+
+from microbit import *
+
+Import only the display class
+
+from microbit import display
+
+Import the microbit library
+
+import microbit
+
+
+
+Was a button pressed?
+
+buttona.was_pressed()
+
+Is a button currently pressed?
+
+buttonb.is_pressed()
+
+
+
+Gestures: up, down, left, right, face up, face down, freefall, 3g, 6g, 8g, shake
+
+Was the micro:bit shaken?
+
+accelerometer.was_gesture("shake")
+
+Is the micro:bit currently falling?
+
+accelerometer.is_gesture("freefall")
+
+What is the value of the accellerometer x axis?
+
+accelerometer.get_x()
+
+
+
+Run the compass calibration routine
+
+compass.calibrate()
+
+What is the compass heading from 0 - 360 degrees?
+
+compass.heading()
+
+What is the field strength on the y axis in nano teslas?
+
+compass.get_y()
+
+
+
+Play happy birthday
+
+music.play(music.BIRTHDAY)
+
+Create an array called tune of “NOTE OCTAVE:DURATION” then play it.
+
+tune = ["C4:4", "D4:4", "E4:4", "C4:4", "C4:4", "D4:4", "E4:4", "C4:4",
+ "E4:4", "F4:4", "G4:8", "E4:4", "F4:4", "G4:8"]
+music.play(tune)
+
+
+Play a pitch (Frequency(Hz), Duration(ticks))
+
+music.pitch(440, 6)
+
+Set the tempo
+
+music.set_tempo(ticks=4, bpm=120)
+
+
+
+Import the radio module
+
+import radio
+
+Turn the radio on or off
+
+radio.on()
+
+Send a string via radio
+
+radio.send('duck')
+
+Return whatever radio message was received
+
+radio.receive()
+
+
+
+Is a pin currently being touched?
+
+pin0.is_touched()
+
+Return the current value on a pin
+
+pin1.read_analog()
+
+Write a value to a pin
+
+pin2.write-digital(1)
+
+LED Display (text, image)
+
+Images: HEART, HEART_SMALL, HAPPY, SMILE, SAD,CONFUSED, ANGRY, ASLEEP, SURPRISED, SILLY, FABULOUS, MEH, YES, NO, CLOCK12, CLOCK11, CLOCK10, CLOCK9, CLOCK8, CLOCK7, CLOCK6, CLOCK5, CLOCK4, CLOCK3, CLOCK2, CLOCK1, ARROW_N, ARROW_NE, ARROW_E, ARROW_SE, ARROW_S, ARROW_SW, ARROW_W, ARROW_NW, TRIANGLE, TRIANGLE_LEFT, CHESSBOARD, DIAMOND, DIAMOND_SMALL, SQUARE, SQUARE_SMALL, RABBIT, COW, MUSIC_CROTCHET, MUSIC_QUAVER, MUSIC_QUAVERS, PITCHFORK, XMAS, PACMAN, TARGET, TSHIRT, ROLLERSKATE, DUCK, HOUSE, TORTOISE, BUTTERFLY, STICKFIGURE, GHOST, SWORD, GIRAFFE, SKULL, UMBRELLA, SNAKE
+
+Scroll a string across the display
+
+display.scroll('hello world')
+
+Show an image on the display
+
+display.show(Image.DUCK)
+
+Return the light level from the display
+
+display.read_light_level()
+
+
+
+What is the current temperature?
+
+temperature()
+
+
+
+Import the Neopixel module
+
+import neopixel
+
+Initialise a strip of Neopixels (pin, number of Neopixels)
+
+neopixel.Neopixel(pin0, 10)
+
+Send the current colour data to the Neopixels
+
+neopixel.Neopixel.show()
+
+
+
+Sleep for a number of milliseconds(ms)
+
+sleep(500)
+
+
+
+Coding concepts
+
+Variables
+
+Set the compass heading to a variable
+
+direction = compass.heading()
+
+Set the received radio message to a variable
+
+incoming = radio.receive()
+
+Loops
+
+while True:
+ display.show(Image.HEART)
+ sleep(10)
+ display.show(Image.HEART_SMALL)
+ sleep(10)
+
+
+Conditions
+
+if accelerometer.was_gesture("shake"):
+ display.scroll('shake')
+ elif accelerometer.was_gesture("face down"):
+ display.show(Image.HAPPY)
+else:
+ display.clear()
+
+
+MicroPython Easter Eggs
+
+import love()
+
+
+
+
+
+
+
+
+
diff --git a/cheatsheet.pdf b/cheatsheet.pdf
index 3ac226a..82b7e88 100644
Binary files a/cheatsheet.pdf and b/cheatsheet.pdf differ
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000..5323678
Binary files /dev/null and b/favicon.ico differ