Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

CircuitPython - a Python implementation for teaching coding with microcontrollers

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
license.rst
NotificationsYou must be signed in to change notification settings

python-ugame/circuitpython

 
 

https://github.com/adafruit/circuitpython/blob/master/logo/CircuitPython_Repo_header_logo.png

Build StatusDoc StatusLicenseDiscord

Status |Supported Boards|Download |Documentation |Contributing |Differences fromMicropython |ProjectStructure

CircuitPython is aneducation friendly open source derivative ofMicroPython. CircuitPython supports useon educational development boards designed and sold byAdafruit. Adafruit CircuitPython featuresunified Python core APIs and a growing list of Adafruit libraries anddrivers of that work with it.

Status

This project is stable. Most APIs should be stable going forward. Thosethat change will change on major version numbers such as 2.0.0 and3.0.0.

Supported Boards

Designed for CircuitPython

M0 Boards

M4 Boards

Other

"Third-party" or "non-Adafruit" boards

Download

Official binaries are available through thelatest GitHubreleases.Continuous (one per commit) builds are availablehereand includes experimental hardware support.

Documentation

Guides and videos are available through theAdafruit LearningSystem under theCircuitPythoncategory andMicroPythoncategory. An APIreference is also available onRead the Docs. A collection of awesomeresources can be found atAwesome CircuitPython.

Specifically useful documentation when starting out:

Contributing

SeeCONTRIBUTING.mdfor full guidelines but please be aware that by contributing to thisproject you are agreeing to theCode ofConduct.Contributors who follow theCode ofConductare welcome to submit pull requests and they will be promptly reviewedby project admins. Please join theDiscord too.


Differences fromMicroPython

CircuitPython:

  • includes a ports for MicroChip SAMD21 (Commonly known as M0 in Adafruitproduct names) and SAMD51 (M4).
  • supports only SAMD21, SAMD51, and ESP8266 ports. An nRF port is underdevelopment.
  • tracks MicroPython's releases (not master).
  • Longints (arbitrary-length integers) are enabled for most M0Express boards (those boards with SPI flash chips externalto the microcontroller), and for all M4 builds.Longints are disabled on other boards due to lack of flash space.

Behavior

  • The order that files are run and the state that is shared betweenthem. CircuitPython's goal is to clarify the role of each file andmake each file independent from each other.
  • boot.py (orsettings.py) runs only once on start up beforeUSB is initialized. This lays the ground work for configuring USB atstartup rather than it being fixed. Since serial is not available,output is written toboot_out.txt.
  • code.py (ormain.py) is run after every reload until itfinishes or is interrupted. After it is done running, the vm andhardware is reinitialized.This means you cannot read state from``code.py`` in the REPL anymore. CircuitPython's goal for thischange includes reduce confusion about pins and memory being used.
  • Aftercode.py the REPL can be entered by pressing any key. It nolonger shares state withcode.py so it is a fresh vm.
  • Autoreload state will be maintained across reload.
  • Adds a safe mode that does not run user code after a hard crash orbrown out. The hope is that this will make it easier to fix code thatcauses nasty crashes by making it available through mass storageafter the crash. A reset (the button) is needed after its fixed toget back into normal mode.

API

Modules

  • No module aliasing. (uos andutime are not available asos andtime respectively.) Insteados,time, andrandom are CPython compatible.
  • Newstorage module which manages file system mounts.(Functionality fromuos in MicroPython.)
  • Modules with a CPython counterpart, such astime,os andrandom, are strictsubsetsof theirCPythonversion.Therefore, code from CircuitPython is runnable on CPython but notnecessarily the reverse.
  • tick count is available astime.monotonic()

atmel-samd21 features

  • RGB status LED
  • Auto-reload after file write over mass storage. (Disable withsamd.disable_autoreload())
  • Wait state after boot and main run, before REPL.
  • Main is one of these:code.txt,code.py,main.py,main.txt
  • Boot is one of these:settings.txt,settings.py,boot.py,boot.txt

Project Structure

Here is an overview of the top-level source code directories.

Core

The core code ofMicroPython is sharedamongst ports including CircuitPython:

  • docs High level user documentation in Sphinx reStructuredTextformat.
  • drivers External device drivers written in Python.
  • examples A few example Python scripts.
  • extmod Shared C code used in multiple ports' modules.
  • lib Shared core C code including externally developed librariessuch as FATFS.
  • logo The CircuitPython logo.
  • mpy-cross A cross compiler that converts Python files to bytecode prior to being run in MicroPython. Useful for reducing librarysize.
  • py Core Python implementation, including compiler, runtime, andcore library.
  • shared-bindings Shared definition of Python modules, their docsand backing C APIs. Ports must implement the C API to support thecorresponding module.
  • shared-module Shared implementation of Python modules that may bebased oncommon-hal.
  • tests Test framework and test scripts.
  • tools Various tools, including the pyboard.py module.

Ports

Ports include the code unique to a microcontroller line and alsovariations based on the board.

  • atmel-samd Support for SAMD21 based boards such asArduinoZero,AdafruitFeather M0 Basic, andAdafruit Feather M0 BluefruitLE.
  • bare-arm A bare minimum version of MicroPython for ARM MCUs.
  • cc3200 Support for boards basedCC3200 from TI such as theWiPy 1.0.
  • esp8266 Support for boards based on ESP8266 WiFi modules such astheAdafruit FeatherHUZZAH.
  • minimal A minimal MicroPython port. Start with this if you wantto port MicroPython to another microcontroller.
  • pic16bit Support for 16-bit PIC microcontrollers.
  • qemu-arm Support for ARM emulation throughQEMU.
  • stmhal Support for boards based on STM32 microcontrollersincluding the MicroPython flagshipPyBoard.
  • teensy Support for the Teensy line of boards such as theTeensy3.1.
  • unix Support for UNIX.
  • windows Support forWindows.
  • zephyr Support forZephyr, areal-time operating system by the Linux Foundation.

CircuitPython only maintains theatmel-samd andesp8266 ports.The rest are here to maintain compatibility with theMicroPython parentproject.

⬆ back to top

About

CircuitPython - a Python implementation for teaching coding with microcontrollers

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
license.rst

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C88.6%
  • Python6.0%
  • C++3.4%
  • Makefile1.1%
  • Assembly0.7%
  • Shell0.1%
  • Other0.1%

[8]ページ先頭

©2009-2025 Movatter.jp