This is the home page for a __MicroPython Tutorial__, a modest attempt at providing a beginner with the
basics of programming in MicroPython, in particular on a Raspberry Pi Pico.

If you're having trouble finding this page, here's the URL of the server:
%%url
http://service.robots.org.nz/wiki/
%%
''(for use in a classroom)''

!! Exercises

* [MicroPython Tutorial Exercise 1|MicroPythonTutorialExercise01]: main.py
* [MicroPython Tutorial Exercise 2|MicroPythonTutorialExercise02]: blocks
* [MicroPython Tutorial Exercise 3|MicroPythonTutorialExercise03]: functions
* [MicroPython Tutorial Exercise 4|MicroPythonTutorialExercise04]: classes
* [MicroPython Tutorial Exercise 5|MicroPythonTutorialExercise05]: using classes

Additional exercises:

* [The REPL|MicroPythonTutorialTheREPL]
* [Objects and Names|MicroPythonTutorialObjectsAndNames]
* [Scope|MicroPythonTutorialScope].
* [Exception Handling|MicroPythonTutorialExceptionHandling].
* [String Formatting|StringFormatting].

!! Documentation & References

The complete documentation for Python and MicroPython (as used on microcontrollers) is available here:

* [Python documentation|https://docs.python.org/3/]
** [Beginner's Guide|https://wiki.python.org/moin/BeginnersGuide]
* [MicroPython documentation|https://docs.micropython.org/en/latest/]
** [Language Reference|https://docs.micropython.org/en/latest/reference/index.html]
** [Libraries Reference|https://docs.micropython.org/en/latest/library/index.html]
** [Glossary of MicroPython terms|https://docs.micropython.org/en/latest/reference/glossary.html]
* [Awesome MicroPython|https://awesome-micropython.com/], a huge curated list of MicroPython libraries and resources

See also the [Python] and [MicroPython] pages on this wiki.


!! Online 

! Tutorials

* __Python__
** [The Python Tutorial|https://docs.python.org/3/tutorial/index.html] (the official tutorial)
** [Learn Python Tutorial|https://www.learnpython.org/]
* __MicroPython__
** [MicroPython tutorial for the pyboard|https://docs.micropython.org/en/latest/pyboard/tutorial/index.html] (the official tutorial)
** [MicroPython: An Intro to Programming Hardware in Python|https://realpython.com/micropython/]


! Simulators

These are online tools that let you try out Python and MicroPython from a Web browser. Python
and MicroPython are very similar so learning either one helps you with the other:

* __Python__
** [Online Python|https://www.online-python.com/]
** [Online Python with AI help|https://sim.lvgl.io/v8.3/micropython/ports/javascript/index.html]
** [OnlineGDB|https://www.onlinegdb.com/online_python_compiler]
** [Programmiz Python Online Compiler|https://www.programiz.com/python-programming/online-compiler/]
* __MicroPython__
** [MicroPython Live|https://micropython.org/live/] (official site)
** [LVGL/MicroPython simulator|https://sim.lvgl.io/v8.3/micropython/ports/javascript/index.html]


* Developer Tools

* [Mu IDE|https://codewith.mu/]
* [Thonny IDE|https://thonny.org/]
* [mpremote], a command line tool to "remotely interact with, manage the filesystem on, and automate a MicroPython"
device over a serial connection
* [rshell|https://github.com/dhylands/rshell], a command line access to a pyboard (similar to mpremote)


----

__Next:__ [MicroPython Tutorial Exercise 1|MicroPythonTutorialExercise01]: main.py