Difference between revisions of "SHA2017Badge/Emulator"

From Badge team
Jump to navigation Jump to search
(Created page with "==Badge Emulator== You can now play with the badge software before you even receive your badge! ==Limitations== Apparently key-presses etc can only be caught while actively...")
 
 
Line 67: Line 67:
 
  <nowiki>./micropython demo.py</nowiki>
 
  <nowiki>./micropython demo.py</nowiki>
 
[[File:SHA2017Badge emulator.jpg|thumb|SHA2017Badge emulator running Mandelbrod]]
 
[[File:SHA2017Badge emulator.jpg|thumb|SHA2017Badge emulator running Mandelbrod]]
You can also just start <code>./micropython</code> and start using the [[Projects:Badge/MicroPython|MicroPython modules]].
+
You can also just start <code>./micropython</code> and start using the [[SHA2017Badge/MicroPython|MicroPython modules]].
 
  <nowiki>import ugfx
 
  <nowiki>import ugfx
  
Line 93: Line 93:
 
</nowiki>
 
</nowiki>
  
You can also use [[Projects:Badge/woezel|woezel]] to install software from the [[Projects:Badge/Hatchery|Hatchery]].
+
You can also use [[SHA2017Badge/woezel|woezel]] to install software from the [[SHA2017Badge/Hatchery|Hatchery]].
  
 
  <nowiki>import woezel
 
  <nowiki>import woezel

Latest revision as of 15:10, 15 January 2019

Badge Emulator[edit]

You can now play with the badge software before you even receive your badge!

Limitations[edit]

Apparently key-presses etc can only be caught while actively waiting. Might not be much of a limitation.

Keys[edit]

Arrow keys: UP, DOWN, LEFT, RIGHT

PageUP: A

PageDown: B

Home: Select

End: Start

Delete: Flash

Enter: Middle (unused)

Installation[edit]

Debian-based GNU/Linux[edit]

sudo apt-get install libncurses5-dev flex bison gperf python-serial libffi-dev libsdl2-dev libmbedtls-dev

Or equivalent installation of requirements on your distribution.

git clone --recursive https://github.com/SHA2017-badge/Firmware.git
cd Firmware/micropython/unix
make

Arch-Linux[edit]

git clone --recursive https://github.com/SHA2017-badge/Firmware.git
cd Firmware/micropython/unix
git clone https://github.com/ARMmbed/mbedtls.git
cd mbedtls
make
sudo make install
cd ..
make

NixOS[edit]

git clone --recursive https://github.com/SHA2017-badge/Firmware.git
cd Firmware/micropython/unix
nix-shell --packages gcc ncurses5 flex bison2 gperf \
  python35Packages.pyserial libffi SDL2 mbedtls \
  --pure --command make

macOS[edit]

git clone --recursive https://github.com/SHA2017-badge/Firmware.git
cd Firmware/micropython/lib
git clone https://github.com/ARMmbed/mbedtls.git
cd mbedtls
make
sudo make install
cd ../../unix
make

if you get an error that sdl2-config is missing (/usr/local/bin/sdl2-config: No such file or directory), you can install it using e.g. homebrew, like this: brew install SDL2

Older macOS installs have some missing headers: https://github.com/SHA2017-badge/Firmware/issues/99

Usage[edit]

./micropython demo.py
SHA2017Badge emulator running Mandelbrod

You can also just start ./micropython and start using the MicroPython modules.

import ugfx

ugfx.init()

ugfx.clear(ugfx.BLACK)

ugfx.fill_circle(60, 60, 50, ugfx.WHITE);
ugfx.fill_circle(60, 60, 40, ugfx.BLACK);
ugfx.fill_circle(60, 60, 30, ugfx.WHITE);
ugfx.fill_circle(60, 60, 20, ugfx.BLACK);
ugfx.fill_circle(60, 60, 10, ugfx.WHITE);

ugfx.thickline(1,1,100,100,ugfx.WHITE,10,5)
ugfx.box(30,30,50,50,ugfx.WHITE)

ugfx.string(150,25,"STILL","Roboto_BlackItalic24",ugfx.WHITE)
ugfx.string(130,50,"Hacking","PermanentMarker22",ugfx.WHITE)
len = ugfx.get_string_width("Hacking","PermanentMarker22")
ugfx.line(130, 72, 144 + len, 72, ugfx.WHITE)
ugfx.line(140 + len, 52, 140 + len, 70, ugfx.WHITE)
ugfx.string(140,75,"Anyway","Roboto_BlackItalic24",ugfx.WHITE)

ugfx.flush()

You can also use woezel to install software from the Hatchery.

import woezel
woezel.install('game_of_life')
import game_of_life
woezel.install('game_of_life')