kopia lustrzana https://github.com/peterhinch/micropython-micro-gui
Add package.json. Update installation guide.
rodzic
a7ab3087f0
commit
8d6f65b541
98
README.md
98
README.md
|
@ -390,20 +390,33 @@ ssd.show()
|
||||||
|
|
||||||
## 1.7 Installation
|
## 1.7 Installation
|
||||||
|
|
||||||
The easy way to start is to use `mpremote` which allows a directory on your PC
|
Please ensure device firmware is up to date. Clone the repo to the PC with:
|
||||||
to be mounted on the host. In this way the filesystem on the host is left
|
|
||||||
unchanged. This is at some cost in loading speed, especially on ESP32. If
|
|
||||||
adopting this approach, you will need to ensure the `hardware_setup.py` file on
|
|
||||||
the PC matches your hardware. Install `mpremote` with
|
|
||||||
```bash
|
|
||||||
$ pip3 install mpremote
|
|
||||||
```
|
|
||||||
Clone the repo to your PC with
|
|
||||||
```bash
|
```bash
|
||||||
$ git clone https://github.com/peterhinch/micropython-micro-gui
|
$ git clone https://github.com/peterhinch/micropython-micro-gui
|
||||||
$ cd micropython-micro-gui
|
$ cd micropython-micro-gui
|
||||||
```
|
```
|
||||||
Edit `hardware_setup.py` then run:
|
In the `micropython-micro-gui` directory edit `hardware_setup.py` to match the
|
||||||
|
hardware in use.
|
||||||
|
|
||||||
|
The official
|
||||||
|
[mpremote](http://docs.micropython.org/en/latest/reference/mpremote.html#mpremote)
|
||||||
|
tool is recommended. Install with:
|
||||||
|
```bash
|
||||||
|
$ pip3 install mpremote
|
||||||
|
```
|
||||||
|
There are several options for installation
|
||||||
|
1. Using mpremote to run the GUI demos via the PC without installing.
|
||||||
|
2. Subtractive. Installing the entire GUI, then (optionally) removing unused
|
||||||
|
components.
|
||||||
|
3. Additive. Installing a minimal subset and manually adding extra components.
|
||||||
|
4. Using frozen bytecode.
|
||||||
|
|
||||||
|
### Testing without installing
|
||||||
|
|
||||||
|
The easy way to start is to use `mpremote` which allows a directory on your PC
|
||||||
|
to be mounted on the host. In this way the filesystem on the host is left
|
||||||
|
unchanged. This is at some cost in loading speed, especially on ESP32. In the
|
||||||
|
`micropython-micro-gui` directory run:
|
||||||
```bash
|
```bash
|
||||||
$ mpremote mount .
|
$ mpremote mount .
|
||||||
```
|
```
|
||||||
|
@ -411,18 +424,67 @@ This should provide a REPL. Run the minimal demo:
|
||||||
```python
|
```python
|
||||||
>>> import gui.demos.simple
|
>>> import gui.demos.simple
|
||||||
```
|
```
|
||||||
If installing to the device's filesystem it is necessary to maintain the
|
If this runs the hardware is correctly configured and other demos should run.
|
||||||
directory structure. The `drivers` and `gui` directories (with subdirectories
|
|
||||||
and contents) should be copied, along with `hardware_setup.py`. Filesystem
|
### Installing a display driver
|
||||||
space may be conserved by copying only the display driver in use. Unused
|
|
||||||
widgets, fonts and demos can also be trimmed, but the directory structure must
|
It is necessary to install a display driver prior to any GUI installation. On
|
||||||
be kept. Below is an example of a minimal installation to run the `simple.py`
|
networked hardware a display driver may be installed as follows (example is for
|
||||||
demo.
|
ST7789):
|
||||||
|
```python
|
||||||
|
>>> mip.install("github:peterhinch/micropython-nano-gui/drivers/st7789")
|
||||||
|
```
|
||||||
|
The last part of the addresss (`st7789`) is the name of the directory holding
|
||||||
|
drivers for the display in use. In cases where the directory holds more than
|
||||||
|
one driver all will be installed. Unused drivers may be deleted.
|
||||||
|
|
||||||
|
Install using mpremote on the PC as follows:
|
||||||
|
```bash
|
||||||
|
$ mpremote mip install "github:peterhinch/micropython-nano-gui/drivers/st7789"
|
||||||
|
```
|
||||||
|
### Full installation (subtractive)
|
||||||
|
|
||||||
|
The entire GUI is large. It is possible to install it all from the PC clone by
|
||||||
|
issuing:
|
||||||
|
```bash
|
||||||
|
$ cd micropython-micro-gui
|
||||||
|
$ mpremote cp -r gui :
|
||||||
|
$ mpremote cp hardware_setup.py :
|
||||||
|
```
|
||||||
|
This is rather profligate with Flash storage. There is great scope for
|
||||||
|
discarding unused fonts, demos and widgets. As an alternative to installing
|
||||||
|
everything and pruning, an additive approach may be used where a minimal subset
|
||||||
|
is installed with extra fonts and widgets being added as required.
|
||||||
|
|
||||||
|
### Minimal installation (additive)
|
||||||
|
|
||||||
|
This installs a subset adequate to run the `simple.py` demo. It comprises:
|
||||||
![Image](./images/filesystem.png)
|
![Image](./images/filesystem.png)
|
||||||
|
It is installed with (on the device):
|
||||||
|
```python
|
||||||
|
>>> mip.install("github:peterhinch/micropython-micro-gui")
|
||||||
|
```
|
||||||
|
or (on the PC):
|
||||||
|
```bash
|
||||||
|
$ mpremote mip install "github:peterhinch/micropython-micro-gui"
|
||||||
|
```
|
||||||
|
In both cases the edited `hardware_setup.py` must be copied from the PC:
|
||||||
|
```bash
|
||||||
|
$ cd micropython-micro-gui
|
||||||
|
$ mpremote cp hardware_setup.py :
|
||||||
|
```
|
||||||
|
When adding components the directory structure must be maintained. For example,
|
||||||
|
in the `micropython-micro-gui` directory:
|
||||||
|
```bash
|
||||||
|
$ mpremote cp gui/fonts/font10.py :/gui/fonts/
|
||||||
|
$ mpremote cp gui/widgets/checkbox.py :/gui/widgets/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Freezing bytecode
|
||||||
|
|
||||||
There is scope for speeding loading and saving RAM by using frozen bytecode.
|
There is scope for speeding loading and saving RAM by using frozen bytecode.
|
||||||
The entire `gui` tree may be frozen but the directory structure must be
|
The entire `gui` tree may be frozen but the directory structure must be
|
||||||
maintained. For reasons that are unclear freezing display drivers does not
|
maintained. For reasons that are unclear freezing display drivers may not
|
||||||
work. For fexibility, consider keeping `hardware_setup.py` in the filesystem.
|
work. For fexibility, consider keeping `hardware_setup.py` in the filesystem.
|
||||||
See [Appendix 2 Freezing bytecode](./README.md#appendix-2-freezing-bytecode).
|
See [Appendix 2 Freezing bytecode](./README.md#appendix-2-freezing-bytecode).
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"urls": [
|
||||||
|
["gui/core/colors.py", "github:peterhinch/micropython-micro-gui/gui/core/colors.py"],
|
||||||
|
["gui/core/ugui.py", "github:peterhinch/micropython-micro-gui/gui/core/ugui.py"],
|
||||||
|
["gui/core/writer.py", "github:peterhinch/micropython-micro-gui/gui/core/writer.py"],
|
||||||
|
["gui/demos/simple.py", "github:peterhinch/micropython-micro-gui/gui/demos/simple.py"],
|
||||||
|
["gui/fonts/__init__.py", "github:peterhinch/micropython-micro-gui/gui/fonts/__init__.py"],
|
||||||
|
["gui/fonts/arial10.py", "github:peterhinch/micropython-micro-gui/gui/fonts/arial10.py"],
|
||||||
|
["gui/primitives/__init__.py", "github:peterhinch/micropython-micro-gui/gui/primitives/__init__.py"],
|
||||||
|
["gui/primitives/delay_ms.py", "github:peterhinch/micropython-micro-gui/gui/primitives/delay_ms.py"],
|
||||||
|
["gui/primitives/encoder.py", "github:peterhinch/micropython-micro-gui/gui/primitives/encoder.py"],
|
||||||
|
["gui/primitives/pushbutton.py", "github:peterhinch/micropython-micro-gui/gui/primitives/pushbutton.py"],
|
||||||
|
["gui/widgets/__init__.py", "github:peterhinch/micropython-micro-gui/gui/widgets/__init__.py"],
|
||||||
|
["gui/widgets/buttons.py", "github:peterhinch/micropython-micro-gui/gui/widgets/buttons.py"],
|
||||||
|
["gui/widgets/label.py", "github:peterhinch/micropython-micro-gui/gui/widgets/label.py"]
|
||||||
|
],
|
||||||
|
"version": "0.1"
|
||||||
|
}
|
Ładowanie…
Reference in New Issue