Skip to content

Commit 4c6016d

Browse files
committed
review first steps complete
1 parent 13cde66 commit 4c6016d

File tree

3 files changed

+80
-59
lines changed

3 files changed

+80
-59
lines changed

content/micropython/03.micropython/00.first-steps/00.into-micropython/intro-micropython.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: 'Introduction to MicroPython'
33
description: 'Learn about the fundamentals of Micropython on Arduino boards.'
44
author: 'Pedro Lima'
5-
hero_image: "./hero-banner.png"
5+
tags: [MicroPython, Introduction]
66
---
77

88
MicroPython is a lightweight implementation of Python 3 designed to run on microcontrollers and embedded systems. Think of it as a mini-version of Python, tailored for hardware with limited resources like memory and processing power. Despite its smaller size, MicroPython retains the simplicity and flexibility of Python, making it an excellent option for programming hardware.

content/micropython/03.micropython/00.first-steps/01.install-guide/installing-micropython.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
featured: micropython-101
33
title: 'Installing MicroPython'
44
description: 'Learn how to install MicroPython on your Arduino board.'
5-
author: 'Pedro Lima & Karl Söderby'
6-
hero_image: "./hero-banner.png"
5+
author: 'Pedro Lima'
6+
tags: [MicroPython, Installation]
77
---
88

99
# Installing MicroPython
@@ -40,7 +40,7 @@ MicroPython is officially supported on several Arduino boards. Here’s a list o
4040
- [MicroPython Firmware Installer](https://labs.arduino.cc/en/labs/micropython-installer) - the firmware installer is needed to install MicroPython on our Arduino board.
4141
- [Arduino Lab for Micropython](https://labs.arduino.cc/en/labs/micropython) - Arduino Lab for MicroPython is an editor where we can create and run MicroPython scripts on our Arduino board.
4242

43-
***Note that the editor is also available online, at [Arduino Cloud - Arduino Labs for MicroPython](https://lab-micropython.arduino.cc/)
43+
***Note that the editor is also available online, at [Arduino Cloud - Arduino Labs for MicroPython](https://lab-micropython.arduino.cc/)***
4444

4545
## Install MicroPython
4646

content/micropython/03.micropython/00.first-steps/02.first-sketch/first-sketch.md

+76-55
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,51 @@
22
title: 'My First Script'
33
description: 'Learn how to write a basic MicroPython script to blink an LED.'
44
author: 'Pedro Lima'
5-
hero_image: "./hero-banner.png"
5+
tags: [MicroPython, Blink]
66
---
77

8-
In this tutorial, we'll guide create our very first MicroPython script that will run on an Arduino board. We'll make an LED blink, a classic beginner project that introduces you to basic MicroPython programming concepts.
8+
In this tutorial, we will create our very first MicroPython script that will run on an Arduino board. Starting of simple, we will make an LED blink, a classic beginner project that will get us familiar with the MicroPython programming environment.
99

10-
## Hardware & Software Needed
10+
## Requirements
1111

12-
For this tutorial, you will need a MicroPython compatible Arduino Board:
12+
Before we start, let's check the requirements:
1313

14-
- [Arduino Nano 33 BLE]()
15-
- [Arduino Nano ESP32]()
16-
- [Arduino Nano RP2040 Connect]()
17-
- [Arduino GIGA R1 WiFi]()
18-
- [Arduino Portenta H7]()
19-
- [Arduino Nicla Vision]()
14+
### MicroPython Compatible Arduino Boards
2015

21-
You will also need the following software installed:
16+
MicroPython is officially supported on several Arduino boards. Here’s a list of the compatible boards:
2217

23-
- [Arduino Lab for MicroPython](https://labs.arduino.cc/en/labs/micropython).
18+
- [Portenta C33](https://store.arduino.cc/products/portenta-c33)
19+
- [Arduino GIGA R1 WiFi](https://store.arduino.cc/products/arduino-giga-r1-wifi)
20+
- [Portenta H7](https://store.arduino.cc/products/portenta-h7)
21+
- [Portenta H7 Lite](https://store.arduino.cc/products/portenta-h7-lite)
22+
- [Portenta H7 Lite Connected](https://store.arduino.cc/products/portenta-h7-lite-connected)
23+
- [Opta](https://store.arduino.cc/products/opta)
24+
- [Opta Wifi](https://store.arduino.cc/products/opta-wifi)
25+
- [Opta RS485](https://store.arduino.cc/products/opta-rs485)
26+
- [Arduino Nano RP2040 Connect](https://store.arduino.cc/products/arduino-nano-rp2040-connect)
27+
- [Nicla Vision](https://store.arduino.cc/products/nicla-vision)
28+
- [Arduino Nano 33 BLE](https://store.arduino.cc/products/arduino-nano-33-ble)
29+
- [Arduino Nano 33 BLE Rev2](https://store.arduino.cc/products/arduino-nano-33-ble-rev2)
30+
- [Arduino Nano 33 BLE Sense](https://store.arduino.cc/products/arduino-nano-33-ble-sense)
31+
- [Arduino Nano 33 BLE Sense Rev2](https://store.arduino.cc/products/arduino-nano-33-ble-sense-rev2)
32+
- [Arduino Nano ESP32](https://store.arduino.cc/products/arduino-nano-esp32)
2433

25-
## Board and Editor Setup
2634

27-
Blinking an LED is a simple yet effective way to get started with MicroPython while still understanding how to control hardware using code.
35+
### Software Requirements
36+
37+
- [Arduino Lab for Micropython](https://labs.arduino.cc/en/labs/micropython) - Arduino Lab for MicroPython is an editor where we can create and run MicroPython scripts on our Arduino board.
38+
39+
***Note that the editor is also available online, at [Arduino Cloud - Arduino Labs for MicroPython](https://lab-micropython.arduino.cc/)***
2840

29-
1. Connect your Arduino board to your computer via USB.
30-
2. Open the Arduino Lab for MicroPython application.
31-
3. Click on the **Connect** button, and select the board from the list.
41+
## Board and Editor Setup
42+
43+
1. Open the [Arduino Lab for MicroPython]() application.
44+
2. Plug the Arduino board into the computer using a USB cable.
45+
![Connect board to computer.]()
46+
3. Press the connection button on the top left corner of the window.
47+
![Connect the editor to the board.]()
48+
4. The connected Arduino board should appear, and we can click it:
49+
![Select board.]()
3250

3351
***Need help installing MicroPython on your board? Visit the [MicroPython installation guide]().***
3452

@@ -44,6 +62,9 @@ Once your board is connected, we can start writing code! Below you will find a b
4462
import machine
4563
import time
4664

65+
# The pin used for built-in LED varies
66+
# GIGA: 0 (green), Nano ESP32: 0 (green), Nano RP2040 Connect: 25
67+
# Nano BLE Sense: 13
4768
led = machine.Pin(25, machine.Pin.OUT)
4869

4970
while True:
@@ -53,44 +74,19 @@ Once your board is connected, we can start writing code! Below you will find a b
5374
time.sleep(1)
5475
```
5576

56-
***Note: On some boards, the built-in LED might be on a different pin. For example, on the Arduino Nano RP2040 Connect, the built-in LED is on pin `25`. Check your board's documentation to confirm the correct pin number.***
77+
***Note: The built-in LED pin varies from board to board. For example, on the Arduino Nano RP2040 Connect, the built-in LED is on pin `25`.***
5778

58-
3. Click the **Run** or **Upload** button in your editor to transfer the script to your board.
79+
3. Click the **Run** button in your editor to transfer the script to your board.
80+
![Run the script.]()
5981

60-
Once the script is running, the LED on your board should start blinking at one-second intervals. This means your MicroPython script has loaded successfully.
82+
Once the script is running, the LED on the board should start blinking at one-second intervals. This means our MicroPython script has loaded successfully.
6183

6284
![LED blinking on your board.]()
6385

64-
## Programming Concepts Explained
65-
66-
Let's break down the key programming concepts used in this script:
67-
68-
### `machine` Module
69-
70-
The machine module is a built-in MicroPython library that provides direct access to your board's hardware components. It allows you to control and interact with the microcontroller's features, such as:
71-
72-
-**Pins:** Configure and control digital and analog pins.
73-
-**Timers:** Set up timers for scheduling tasks.
74-
-**Communication Interfaces:** Use protocols like I2C, SPI, and UART.
75-
-**Hardware-Specific Functions:** Access features unique to your microcontroller.
76-
77-
In our script, we use the machine.Pin class to interact with a specific pin on the board. By creating a Pin object, we can control the voltage level of that pin, which in turn controls the LED.
78-
79-
### `time` Module
80-
81-
The time module provides functions for managing time-related tasks. It allows you to add delays, measure time intervals, and schedule events. Key functions include:
82-
83-
-**time.sleep(seconds):** Pauses the execution of your script for the specified number of seconds. It accepts floating-point numbers for sub-second delays.
84-
-t**ime.ticks_ms():** Returns the number of milliseconds(ms) since the board was last reset.
85-
-**time.ticks_us()**: Returns the number of microseconds(us) since the board was last reset.
86-
-In our script, ``time.sleep(1)`` pauses the program for one second. This creates a delay between turning the LED on and off, controlling the blink rate.
87-
88-
### `while True` Loop
89-
90-
A `while True` loop creates an infinite loop, allowing the code inside it to run repeatedly. This is essential for tasks that need to run continuously, like blinking an LED.
91-
9286
### Code Breakdown
9387

88+
Let's take a look at the code, line by line, to understand what is happening:
89+
9490
- **Import Modules**:
9591

9692
```python
@@ -126,6 +122,31 @@ A `while True` loop creates an infinite loop, allowing the code inside it to run
126122
- Wait for another second.
127123
- Repeat the cycle.
128124

125+
## Understanding Programming Concepts
126+
127+
Let's break down the key programming concepts used in this script:
128+
129+
### `machine` Module
130+
131+
The machine module is a built-in MicroPython library that provides direct access to your board's hardware components. It allows you to control and interact with the microcontroller's features, such as:
132+
133+
- **Pins:** Configure and control digital and analog pins.
134+
- **Timers:** Set up timers for scheduling tasks.
135+
- **Communication Interfaces:** Use protocols like I2C, SPI, and UART.
136+
- **Hardware-Specific Functions:** Access features unique to your microcontroller.
137+
138+
In our script, we use the `machine.Pin` class to interact with a specific pin on the board. By creating a `Pin` object, we can control the voltage level of that pin, which in turn controls the LED.
139+
140+
### `time` Module
141+
142+
The time module provides functions for managing time-related tasks. It allows you to add delays, measure time intervals, and schedule events. Key functions include:
143+
144+
- `time.sleep(seconds)` Pauses the execution of your script for the specified number of seconds. It accepts floating-point numbers for sub-second delays.
145+
146+
### `while True` Loop
147+
148+
A `while True` loop creates an infinite loop, allowing the code inside it to run repeatedly. This is essential for tasks that need to run continuously, like blinking an LED.
149+
129150
## Modification: Make the LED Blink Faster
130151

131152
Let's modify the script to make the LED blink faster. We'll change the delay from 1 second to 0.2 seconds.
@@ -140,25 +161,25 @@ led = machine.Pin(25, machine.Pin.OUT)
140161

141162
while True:
142163
led.value(1)
143-
time.sleep(2)
164+
time.sleep(0.5) # 0.5 seconds
144165
led.value(0)
145-
time.sleep(2)
166+
time.sleep(0.5) # 0.5 seconds
146167
```
147168

148169
### Steps
149170

150-
1. Change the `time.sleep(1)` lines to `time.sleep(2)`.
171+
1. Change the `time.sleep(1)` lines to `time.sleep(0.5)`.
151172
2. Upload the modified script to your board.
152-
3. Observe that the LED now blinks faster, turning on and off every 2 seconds.
173+
3. Observe that the LED now blinks faster, turning on and off every 0.5 seconds.
153174

154-
## Conclusion
175+
## Summary
155176

156-
Congratulations! You've written and modified your first MicroPython script on an Arduino board. This exercise introduced you to:
177+
Great work! We have now written and modified our first MicroPython script on an Arduino board. This exercise introduced:
157178

158179
- Importing modules (`machine`, `time`)
159180
- Initializing hardware components (LED)
160181
- Using loops (`while`)
161182
- Controlling time delays (`time.sleep()`)
162183

163-
These concepts are key for a vast majoraty of the operations you will be performing when writing your own programs and are present in the industry at large.
184+
These concepts are key for a vast majoraty of operations we can perform while writing MicroPython programs.
164185

0 commit comments

Comments
 (0)