Lecture 2: LEDs and NeoPixel
CSC 321: Embedded Sysytem
First Semester 2020/2021
COPYRIGHT © 2024 by the contributing authors
Slide 1 of 32
COPYRIGHT © 2024 by the contributing authors
Slide 2 of 32
COPYRIGHT © 2024 by the contributing authors
Slide 3 of 32
How to program the processor
COPYRIGHT © 2024 by the contributing authors
Slide 4 of 32
COPYRIGHT © 2024 by the contributing authors
Slide 5 of 32
- esptool is called from the Makefiles in ESP-IDF
- esptool is used when we upload code from the Arduino IDE to the processor flash
- esptool is used with Micropython IDE on uPyCraft/Thonny
installs Micropython onto the processor flash
In the above cases the use of esptool is hidden to us.
We can however also execute esptool directly.
COPYRIGHT © 2024 by the contributing authors
Slide 6 of 32
How to write a Micropython program?
COPYRIGHT © 2024 by the contributing authors
Slide 7 of 32
How to communicate with the Micropython interpreter?
We use a serial connection passing through the micro USB connection.
As soon as we connect the processor card to the PC we see the serial port to connect for communication
COPYRIGHT © 2024 by the contributing authors
Slide 8 of 32
COPYRIGHT © 2024 by the contributing authors
Slide 9 of 32
The communication tools: minicom
You see the command prompt and you can interact with Micropython.
But … how to upload scripts?
COPYRIGHT © 2024 by the contributing authors
Slide 10 of 32
The command line tool ampy
COPYRIGHT © 2024 by the contributing authors
Slide 11 of 32
IDE for Micropython: uPyCraft
COPYRIGHT © 2024 by the contributing authors
Slide 12 of 32
COPYRIGHT © 2024 by the contributing authors
Slide 13 of 32
COPYRIGHT © 2024 by the contributing authors
Slide 14 of 32
Thonny is a complete Integrate Development Environment (IDE)
which lets you
- Access the REPL
- Create directories on the Micropython file system
- Upload scripts
- Syntax check scripts
- Run scripts
- Install Micropython on your processor board
COPYRIGHT © 2024 by the contributing authors
Slide 15 of 32
Thonny is an IDE for Python which has provisions for Micropython.
Under Tools → Options button you can select the type of
Python interpreter you intend to use.
COPYRIGHT © 2024 by the contributing authors
Slide 16 of 32
Compiling a new version of Micropython is substantially much easier with Thonny.
You still need to install esptool first. You just select your port and firmware then install.
COPYRIGHT © 2024 by the contributing authors
Slide 17 of 32
A “Hello World” program, just printing “Hello World” on the screen
does not look very exciting.
However, this is generally used to verify that the infrastructure
Compiler, linker, downloader, flash program
are working correctly
In embedded systems printing can be quite complex
and a blinking LED is used instead.
COPYRIGHT © 2024 by the contributing authors
Slide 18 of 32
Switching on and off a LED
The ESP32-WROVER-B have a “user LED” connected to GPIO 19.
How do we control this LED?
- Define that the LED is connected to GPIO 19
- Program this pin as output
- Write a logic 1 to the pin to switch it on
- Write a logic 0 to the pin to switch it off
- The logic state may be inverted if the LED is active low
COPYRIGHT © 2024 by the contributing authors
Slide 19 of 32
Micropython hardware functions
COPYRIGHT © 2024 by the contributing authors
Slide 20 of 32
COPYRIGHT © 2024 by the contributing authors
Slide 21 of 32
Switch the LED on, version 1
COPYRIGHT © 2024 by the contributing authors
Slide 22 of 32
Switch the LED on, version 2
COPYRIGHT © 2024 by the contributing authors
Slide 23 of 32
Now we put the code into a script and run it
COPYRIGHT © 2024 by the contributing authors
Slide 24 of 32
Changing the light intensity
The LED is connected to a digital line which can only be set to 0 or Vcc.
How can we change the light intensity and dim the LED?
The light intensity depends on the average current flowing through the LED.
The answer is PWM: pulse width modulation.
COPYRIGHT © 2024 by the contributing authors
Slide 25 of 32
COPYRIGHT © 2024 by the contributing authors
Slide 26 of 32
COPYRIGHT © 2024 by the contributing authors
Slide 27 of 32
A more complex LED:
- rgb LED used in LED chains.
- each ws18b12 contains the 3 colored LEDs and a controller.
- Can be cascaded and individually addressed, depending on its position in the chain
- Needs precise timing
- To use it we pass through the neopixel library built into micropython
COPYRIGHT © 2024 by the contributing authors
Slide 28 of 32
COPYRIGHT © 2024 by the contributing authors
Slide 29 of 32
COPYRIGHT © 2024 by the contributing authors
Slide 30 of 32
Using the neopixel library
COPYRIGHT © 2024 by the contributing authors
Slide 31 of 32
We have a single neopixel connected to
GPIO pin 4 (ESP8266)
or
GPIO pin 21 (ESP32)
This code works on both CPUs!
COPYRIGHT © 2024 by the contributing authors
Slide 32 of 32
--
Isaac Armah-Mensah - 2021-02-28
Comments
This topic: IoT_Course_English
> WebHome >
Slides > LEDAndNeopixels
Topic revision: r7 - 2021-03-09 - UliRaich
Copyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback