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

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Build StatusDoc StatusGitterDiscord

Status |Supported Boards |Download |Documentation |Contributing |Differences from Micropython |Project Structure

Adafruit CircuitPython is an open source derivative ofMicroPython for use on educationaldevelopment boards designed and sold byAdafruit.

CircuitPython, a MicroPython derivative, implements Python 3.x onmicrocontrollers such as the SAMD21 and ESP8266.

Status

This project is in beta. Most APIs should be stable going forward.

Supported Boards

Designed for CircuitPython

Other

Download

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

Documentation

Guides and videos are available through theAdafruit Learning Systemunder theCircuitPython categoryandMicroPython category.An API reference is also available onRead the Docs.

Contributing

SeeCONTRIBUTING.mdfor full guidelines but please be aware that by contributing to thisproject you are agreeing to theCode of Conduct. Contributors whofollow theCode of Conduct are welcome to submit pull requests andthey will be promptly reviewed by project admins. Please join theGitter chat orDiscord too.


Differences fromMicroPython

CircuitPython:

  • includes a port for Atmel SAMD21 (Commonly known as M0in Adafruit product names.)
  • supports only Atmel SAMD21 and ESP8266 ports.
  • tracks MicroPython's releases (not master).

Behavior

  • The order that files are run and the state that is shared between them.CircuitPython's goal is to clarify the role of each file and make eachfile independent from each other.
    • boot.py (orsettings.py) runs only once on start up beforeUSB is initialized. This lays the ground work for configuring USBat startup rather than it being fixed. Since serial is notavailable, 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 and hardware isreinitialized.This means you cannot read state fromcode.pyin the REPL anymore. CircuitPython's goal for this change includesreduce 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 storage afterthe crash. A reset (the button) is needed after its fixed to get backinto normal mode.

API

Modules

  • No module aliasing. (uos andutime are not available asos andtime respectively.) Insteados,time, andrandom are CPythoncompatible.
  • Newstorage module which manages file system mounts. (Functionalityfromuos in MicroPython.)
  • Modules with a CPython counterpart, such astime,os andrandom,are strictsubsetsof theirCPython version.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 shared amongst ports includingCircuitPython:

  • 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 libraries suchas FATFS.
  • logo The MicroPython logo.
  • mpy-cross A cross compiler that converts Python files to byte codeprior to being run in MicroPython. Useful for reducing library size.
  • py Core Python implementation, including compiler, runtime, andcore library.
  • shared-bindings Shared definition of Python modules, their docs andbacking 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 asArduino Zero,Adafruit Feather M0 Basic, andAdafruit Feather M0 Bluefruit LE.
  • bare-arm A bare minimum version of MicroPython for ARM MCUs.
  • cc3200 Support for boards basedCC3200from TI such as theWiPy 1.0.
  • esp8266 Support for boards based on ESP8266 WiFi modules such as theAdafruit Feather HUZZAH.
  • 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 microcontrollers includingthe MicroPython flagshipPyBoard.
  • teensy Support for the Teensy line of boards such as theTeensy 3.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. Therest are here to maintain compatibility with theMicroPython parent project.

⬆ 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