Python programming is setting the standard for teaching and learning worldwide. In this course, we will teach you the newest Python coding for robots. Why is Micro-based Python is cool? MicroPython is an excellent choice for embedded robots and IoT development because it combines simplicity with power and fits in just 1MB of memory! There's nothing else quite like it. Let's get started.
Check out your HEXLINK.
This includes a WeMos, Dual Base, and Breardboard for circuit prototyping.
Step 1) Download the Software:
UPyCraft is needed to upload code by USB interface to your Hexlink.
Pin.IN Configures the pin as an input.
Pin.OUT Configures the pin as an output.
from machine import Pin
from time import sleep
led = Pin(2, Pin.OUT)
while True:
led.value(not led.value())
sleep(1)
# LED BLINK EVERY 1-SECOND (Pin 2)
# We start by loading our MicroPython Modules
from machine import Pin # Import function 'Pin' from Module 'machine'
from time import sleep # Import function 'sleep' from Module 'time'
led = Pin(2, Pin.OUT) # Create 'led' variable to turn LED on/off
# Pin.OUT sets Pin 2 as an OUTPUT Pin
while True: # While the following statements are true, do
led.value(not led.value()) # Turn the LED value on/off, using 'not' flip
sleep(1) # 1-second delay
Learn how to detect the light level in a room using a Photoresistor! These are sensors for detecting light based on a variable resistance. You can access them using your analog pin (A0) on the Wemos D1 Mini and its built-in ADC (Analog-to-Digital Converter) to read the light level.
Your WeMos D1 Mini's ADC reads values between the range of 0 to 1023, corresponding to 0V to 3.3V.
from machine import ADC
from time import sleep
photoresistor = ADC(0)
while True:
light = photoresistor.read()
print("Light Level:", light)
sleep(0.5)
# READ PHOTORESISTOR ON ADC (Pin A0)
# This method loads only 2 required functions
from machine import ADC # From Module 'machine' import function 'ADC'
from time import sleep # From Module 'time' import function 'sleep'
photoresistor = ADC(0) # Initialize the ADC pin (A0 on WeMos)
while True:
light = photoresistor.read() # Read the analog value (0-1023)
print("Light Level:", light) # Print the light level to the console
sleep(0.5) # Pause for 0.5 seconds
Turn your LED on/off based on the Photoresistor light level. Use our analog pin (A0) as a switch to toggle our LED.
from machine import ADC, Pin
from time import sleep
photoresistor = ADC(0)
led = Pin(2, Pin.OUT)
THRESHOLD = 300
while True:
light = photoresistor.read()
if light < THRESHOLD:
led.on()
else:
led.off()
print("Light Level:", light)
sleep(0.2)
# READ PHOTORESISTOR ON ADC (Pin A0)
# This method loads 3 required functions
from machine import ADC, Pin # Import from Module 'machine' functions 'ADC, Pin'
from time import sleep # Import from Module 'time' function 'sleep'
photoresistor = ADC(0) # Initialize ADC for the photoresistor (A0)
led = Pin(2, Pin.OUT)
# Define the light level threshold
THRESHOLD = 300 # Adjust based on your environment
while True:
light = photoresistor.read() # Read light level from photoresistor (0-1023)
if light < THRESHOLD: # Check the light level and toggle LED
led.on() # Turn LED on (dark environment)
else:
led.off() # Turn LED off (bright environment)
print("Light Level:", light) # Print the light level for debugging
sleep(0.2) # Tiny delay to avoid rapid toggling
Turn your LED on/off based on the Web Buttons from a website the WeMos creates and connects to on your local Wi-Fi network. Toggle our LED by the web.
Update the following part in the code below with your Wi-Fi name & password. Replace 'Your-WIFI' with your Wi-Fi's name and 'Your-PASSWORD' with your Wi-Fi's password.
import network
from machine import Pin
import socket
led = Pin(2, Pin.OUT)
ssid = 'your-WIFI'
password = 'your-PASSWORD'
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
while not wlan.isconnected():
pass
print('Connected to Wi-Fi, IP:', wlan.ifconfig()[0])
html = """
<!DOCTYPE html>
<html>
<head>
<title>LED Control</title>
</head>
<body style='text-align:center;'>
<h1>Toggle LED</h1>
<form action="/on"><button>Turn ON</button></form>
<form action="/off"><button>Turn OFF</button></form>
<h4>Click twice if needed</h4>
</body>
</html>
"""
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
server = socket.socket()
server.bind(addr)
server.listen(1)
print('Server running...')
while True:
conn, addr = server.accept()
request = conn.recv(1024).decode()
if '/on' in request:
led.on()
elif '/off' in request:
led.off()
conn.send("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n" + html)
conn.close()
# TURN LED ON/OFF BY WEBSITE BUTTONS
# Load Modules and Functions
import network
from machine import Pin
import socket
# Initialize LED on GPIO2
led = Pin(2, Pin.OUT)
# Connect to Wi-Fi
ssid = 'your-WIFI'
password = 'your-PASSWORD'
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
while not wlan.isconnected():
pass
print('Connected to Wi-Fi, IP:', wlan.ifconfig()[0])
# HTML page
html = """
<!DOCTYPE html>
<html>
<head>
<title>LED Control</title>
</head>
<body style='text-align:center;'>
<h1>Toggle LED</h1>
<form action="/on"><button>Turn ON</button></form>
<form action="/off"><button>Turn OFF</button></form>
<h4>Click twice if needed</h4>
</body>
</html>
"""
# Start server
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
server = socket.socket()
server.bind(addr)
server.listen(1)
print('Server running...')
# Handle requests
while True:
conn, addr = server.accept()
request = conn.recv(1024).decode()
if '/on' in request:
led.on()
elif '/off' in request:
led.off()
conn.send("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n" + html)
conn.close()
Hey!
We think you are pretty cool.