-
Notifications
You must be signed in to change notification settings - Fork 438
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1,163 changed files
with
28,463 additions
and
612 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,176 +1,76 @@ | ||
[![Build Status](https://travis-ci.org/micropython/micropython.png?branch=master)](https://travis-ci.org/micropython/micropython) [![Coverage Status](https://coveralls.io/repos/micropython/micropython/badge.png?branch=master)](https://coveralls.io/r/micropython/micropython?branch=master) | ||
Micropython based on the Sipeed Maix one platform | ||
=============================================== | ||
|
||
The MicroPython project | ||
======================= | ||
<p align="center"> | ||
<img src="https://raw.githubusercontent.com/micropython/micropython/master/logo/upython-with-micro.jpg" alt="MicroPython Logo"/> | ||
<img src="http://i1.bvimg.com/666569/516250f0d8a0716d.jpg" alt="Sipeed Maix one"/> | ||
</p> | ||
|
||
This is the MicroPython project, which aims to put an implementation | ||
of Python 3.x on microcontrollers and small embedded systems. | ||
You can find the official website at [micropython.org](http://www.micropython.org). | ||
|
||
WARNING: this project is in beta stage and is subject to changes of the | ||
code-base, including project-wide name changes and API changes. | ||
|
||
MicroPython implements the entire Python 3.4 syntax (including exceptions, | ||
`with`, `yield from`, etc., and additionally `async`/`await` keywords from | ||
Python 3.5). The following core datatypes are provided: `str` (including | ||
basic Unicode support), `bytes`, `bytearray`, `tuple`, `list`, `dict`, `set`, | ||
`frozenset`, `array.array`, `collections.namedtuple`, classes and instances. | ||
Builtin modules include `sys`, `time`, and `struct`, etc. Select ports have | ||
support for `_thread` module (multithreading). Note that only a subset of | ||
Python 3 functionality is implemented for the data types and modules. | ||
|
||
MicroPython can execute scripts in textual source form or from precompiled | ||
bytecode, in both cases either from an on-device filesystem or "frozen" into | ||
the MicroPython executable. | ||
This micropython based on the Sipeed Maix one platform | ||
|
||
See the repository http://github.com/micropython/pyboard for the MicroPython | ||
board (PyBoard), the officially supported reference electronic circuit board. | ||
|
||
Major components in this repository: | ||
- py/ -- the core Python implementation, including compiler, runtime, and | ||
core library. | ||
- mpy-cross/ -- the MicroPython cross-compiler which is used to turn scripts | ||
into precompiled bytecode. | ||
- ports/unix/ -- a version of MicroPython that runs on Unix. | ||
- ports/stm32/ -- a version of MicroPython that runs on the PyBoard and similar | ||
STM32 boards (using ST's Cube HAL drivers). | ||
- ports/minimal/ -- a minimal MicroPython port. Start with this if you want | ||
to port MicroPython to another microcontroller. | ||
- tests/ -- test framework and test scripts. | ||
- docs/ -- user documentation in Sphinx reStructuredText format. Rendered | ||
HTML documentation is available at http://docs.micropython.org (be sure | ||
to select needed board/port at the bottom left corner). | ||
|
||
Additional components: | ||
- ports/bare-arm/ -- a bare minimum version of MicroPython for ARM MCUs. Used | ||
mostly to control code size. | ||
- ports/teensy/ -- a version of MicroPython that runs on the Teensy 3.1 | ||
(preliminary but functional). | ||
- ports/pic16bit/ -- a version of MicroPython for 16-bit PIC microcontrollers. | ||
- ports/cc3200/ -- a version of MicroPython that runs on the CC3200 from TI. | ||
- ports/esp8266/ -- a version of MicroPython that runs on Espressif's ESP8266 SoC. | ||
- ports/esp32/ -- a version of MicroPython that runs on Espressif's ESP32 SoC. | ||
- ports/nrf/ -- a version of MicroPython that runs on Nordic's nRF51 and nRF52 MCUs. | ||
- extmod/ -- additional (non-core) modules implemented in C. | ||
- tools/ -- various tools, including the pyboard.py module. | ||
- examples/ -- a few example Python scripts. | ||
This version of micropython is Python 3.4, based on the K210-standalone-sdk. | ||
|
||
The subdirectories above may include READMEs with additional info. | ||
The main structure of the micropython directory is as follows: | ||
|
||
"make" is used to build the components, or "gmake" on BSD-based systems. | ||
You will also need bash, gcc, and Python (at least 2.7 or 3.3). | ||
- py/ -- a core Python implementation that includes the compiler, runtime, and core libraries. | ||
- mpy-cross/ -- the MicroPython cross-compiler which is used to turn scripts into precompiled bytecode. | ||
- ports/k210-standalone/ -- micropython porting code based on k210 platform sdk | ||
- tests/ -- test framework and test scripts | ||
- docs/ -- user documentation in Sphinx reStructuredText format. Rendered HTML documentation is available at http://docs.micropython.org (be sure to select needed board/port at the bottom left corner). | ||
|
||
The Unix version | ||
---------------- | ||
Platform porting code directory architecture: | ||
|
||
The "unix" port requires a standard Unix environment with gcc and GNU make. | ||
x86 and x64 architectures are supported (i.e. x86 32- and 64-bit), as well | ||
as ARM and MIPS. Making full-featured port to another architecture requires | ||
writing some assembly code for the exception handling and garbage collection. | ||
Alternatively, fallback implementation based on setjmp/longjmp can be used. | ||
- board-drivers/ store the onboard module driver code | ||
- buildin-py/ firmware built-in microPython script | ||
- mpy-mod/ micropython module code | ||
- spiffs/ spiffs file system source code | ||
- spiffs-port/ spiffs porting configuration code | ||
- kendryte-standalone-sdk/ k210 sdk generated after using the build script | ||
|
||
To build (see section below for required dependencies): | ||
Sipeed Maix one-micropython build and compile | ||
-------------------------------------------- | ||
|
||
$ git submodule update --init | ||
$ cd ports/unix | ||
$ make axtls | ||
$ make | ||
Build code: | ||
|
||
Then to give it a try: | ||
$ git clone xxxx Download sdk | ||
$ cd port/k210-standalon/ Enter the platform code directory | ||
$ make build build platform code in case of first use | ||
|
||
Compile the code: | ||
|
||
$ make CROSS_COMPILE=/your_compiler_path | ||
|
||
|
||
`your_compiler_path` is the compiler path, about the compiler , you can see http://dan.lichee.pro/ | ||
|
||
After compiling, the micropython.bin file will be generated in this directory, and you can burne it to the Sipeed Maix One suite. The burning method can be found at http://dan.lichee.pro/ | ||
|
||
contribution | ||
------------ | ||
|
||
MicroPython is an open-source project and welcomes contributions. To be productive, please be sure to follow the [Contributors' Guidelines](https://github.com/micropython/micropython/wiki/ContributorGuidelines) and the [Code Conventions] https://github.com/micropython/micropython/blob/master/CODECONVENTIONS.md). Note that MicroPython is licenced under the MIT license, and all contributions should follow this license. | ||
|
||
$ ./micropython | ||
>>> list(5 * x + y for x in range(10) for y in [4, 2, 1]) | ||
|
||
Use `CTRL-D` (i.e. EOF) to exit the shell. | ||
Learn about command-line options (in particular, how to increase heap size | ||
which may be needed for larger applications): | ||
|
||
$ ./micropython --help | ||
|
||
Run complete testsuite: | ||
|
||
$ make test | ||
|
||
Unix version comes with a builtin package manager called upip, e.g.: | ||
|
||
$ ./micropython -m upip install micropython-pystone | ||
$ ./micropython -m pystone | ||
|
||
Browse available modules on | ||
[PyPI](https://pypi.python.org/pypi?%3Aaction=search&term=micropython). | ||
Standard library modules come from | ||
[micropython-lib](https://github.com/micropython/micropython-lib) project. | ||
|
||
External dependencies | ||
--------------------- | ||
|
||
Building MicroPython ports may require some dependencies installed. | ||
|
||
For Unix port, `libffi` library and `pkg-config` tool are required. On | ||
Debian/Ubuntu/Mint derivative Linux distros, install `build-essential` | ||
(includes toolchain and make), `libffi-dev`, and `pkg-config` packages. | ||
|
||
Other dependencies can be built together with MicroPython. This may | ||
be required to enable extra features or capabilities, and in recent | ||
versions of MicroPython, these may be enabled by default. To build | ||
these additional dependencies, first fetch git submodules for them: | ||
|
||
$ git submodule update --init | ||
|
||
Use the same command to get the latest versions of dependencies, as | ||
they are updated from time to time. After that, in the port directory | ||
(e.g. `ports/unix/`), execute: | ||
|
||
$ make deplibs | ||
|
||
This will build all available dependencies (regardless whether they | ||
are used or not). If you intend to build MicroPython with additional | ||
options (like cross-compiling), the same set of options should be passed | ||
to `make deplibs`. To actually enable/disable use of dependencies, edit | ||
`ports/unix/mpconfigport.mk` file, which has inline descriptions of the options. | ||
For example, to build SSL module (required for `upip` tool described above, | ||
and so enabled by dfeault), `MICROPY_PY_USSL` should be set to 1. | ||
|
||
For some ports, building required dependences is transparent, and happens | ||
automatically. They still need to be fetched with the git submodule command | ||
above. | ||
|
||
The STM32 version | ||
----------------- | ||
|
||
The "stm32" port requires an ARM compiler, arm-none-eabi-gcc, and associated | ||
bin-utils. For those using Arch Linux, you need arm-none-eabi-binutils, | ||
arm-none-eabi-gcc and arm-none-eabi-newlib packages. Otherwise, try here: | ||
https://launchpad.net/gcc-arm-embedded | ||
|
||
To build: | ||
|
||
$ git submodule update --init | ||
$ cd ports/stm32 | ||
$ make | ||
|
||
You then need to get your board into DFU mode. On the pyboard, connect the | ||
3V3 pin to the P1/DFU pin with a wire (on PYBv1.0 they are next to each other | ||
on the bottom left of the board, second row from the bottom). | ||
|
||
Then to flash the code via USB DFU to your device: | ||
|
||
$ make deploy | ||
|
||
This will use the included `tools/pydfu.py` script. If flashing the firmware | ||
does not work it may be because you don't have the correct permissions, and | ||
need to use `sudo make deploy`. | ||
See the README.md file in the ports/stm32/ directory for further details. | ||
|
||
Contributing | ||
------------ | ||
|
||
MicroPython is an open-source project and welcomes contributions. To be | ||
productive, please be sure to follow the | ||
[Contributors' Guidelines](https://github.com/micropython/micropython/wiki/ContributorGuidelines) | ||
and the [Code Conventions](https://github.com/micropython/micropython/blob/master/CODECONVENTIONS.md). | ||
Note that MicroPython is licenced under the MIT license, and all contributions | ||
should follow this license. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
基于Sipeed Maix one平台的micropython | ||
====================================== | ||
<p align="center"> | ||
<img src="http://i1.bvimg.com/666569/516250f0d8a0716d.jpg" alt="Sipeed Maix one"/> | ||
</p> | ||
|
||
基于Sipeed Maix one平台的micropython | ||
|
||
该版本的micropython为 Python 3.4,基于K210裸机sdk编写. | ||
|
||
micropython的目录主要架构如下: | ||
|
||
- py/ -- 核心Python实现,包括编译器,运行时和核心库。 | ||
- mpy-cross/ -- MicroPython交叉编译器,用于将脚本转换为预编译的字节码。 | ||
- ports/k210-standalone/ -- 基于k210平台sdk的micropython移植代码 | ||
- tests/ -- 测试框架及测试脚本 | ||
- docs/ -- 基于rst格式的micropython用户文档,HTML文档的链接 http://docs.micropython.org | ||
|
||
平台移植代码目录架构: | ||
|
||
- board-drivers/ 存放板载模块驱动代码 | ||
- buildin-py/ 固件内置microPython脚本 | ||
- mpy-mod/ micropython模块代码 | ||
- spiffs/ spiffs文件系统源码 | ||
- spiffs-port/ spiffs移植配置代码 | ||
- kendryte-standalone-sdk/ 在使用构建脚本后生成的k210 sdk | ||
|
||
Sipeed Maix one-micropython构建及编译 | ||
-------------------------------------------- | ||
|
||
构建代码: | ||
|
||
$ git clone xxxx 下载sdk | ||
$ cd port/k210-standalon/ 进入平台代码目录 | ||
$ make build 在第一次使用的情况下,构建平台代码 | ||
|
||
编译代码: | ||
|
||
$ make CROSS_COMPILE=/your_compiler_path | ||
|
||
|
||
`your_compiler_path`为编译器路径,编译器可以查看http://dan.lichee.pro/ 了解 | ||
|
||
编译完成将在该目录下生成micropython.bin文件,将该文件烧录到Sipeed Maix One套件即可,烧录方法可以查看http://dan.lichee.pro/ 了解 | ||
|
||
|
||
贡献 | ||
------------ | ||
|
||
MicroPython是一个开源项目,欢迎贡献,MicroPython是根据MIT许可证获得许可的,所有贡献都应遵循此许可证。 |
Empty file.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Binary file not shown.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
Empty file.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
Empty file.
Empty file.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
# DHT11/DHT22 driver for MicroPython on ESP8266 | ||
# MIT license; Copyright (c) 2016 Damien P. George | ||
|
||
try: | ||
from esp import dht_readinto | ||
except: | ||
from pyb import dht_readinto | ||
|
||
class DHTBase: | ||
def __init__(self, pin): | ||
self.pin = pin | ||
self.buf = bytearray(5) | ||
|
||
def measure(self): | ||
buf = self.buf | ||
dht_readinto(self.pin, buf) | ||
if (buf[0] + buf[1] + buf[2] + buf[3]) & 0xff != buf[4]: | ||
raise Exception("checksum error") | ||
|
||
class DHT11(DHTBase): | ||
def humidity(self): | ||
return self.buf[0] | ||
|
||
def temperature(self): | ||
return self.buf[2] | ||
|
||
class DHT22(DHTBase): | ||
def humidity(self): | ||
return (self.buf[0] << 8 | self.buf[1]) * 0.1 | ||
|
||
def temperature(self): | ||
t = ((self.buf[2] & 0x7f) << 8 | self.buf[3]) * 0.1 | ||
if self.buf[2] & 0x80: | ||
t = -t | ||
return t |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.