Difference between revisions of "Tutorial Digital IO"

From Sketching with Hardware at LMU Wiki
Jump to navigation Jump to search
 
(5 intermediate revisions by the same user not shown)
Line 14: Line 14:
  
 
=== Microcontroller ===
 
=== Microcontroller ===
* [[ESP8266 D1 mini]]  
+
* [[ESP8266 D1 Mini]]  
 
* [[ESP32 Web Kit]] with integrated OLED Display from Heltec  
 
* [[ESP32 Web Kit]] with integrated OLED Display from Heltec  
 
* [[ESP8266 ESP-12F]] NodeMCU Module from AZDelivery
 
* [[ESP8266 ESP-12F]] NodeMCU Module from AZDelivery
Line 36: Line 36:
  
 
The videos are a first test... the ones marked with ** will be replaced over the next months with new versions.
 
The videos are a first test... the ones marked with ** will be replaced over the next months with new versions.
 +
 +
If you use the [[ESP8266_D1_Mini]] have a look at this file about which Pins to use: https://micropython-on-wemos-d1-mini.readthedocs.io/en/latest/basics.html
 +
  
 
== Digital Output: Adding an external LED to the controller ==
 
== Digital Output: Adding an external LED to the controller ==
Line 41: Line 44:
  
 
<youtube>0KGgYsEZcZM</youtube>
 
<youtube>0KGgYsEZcZM</youtube>
 +
 +
 +
Here is a short video of how to connect and control an LED on the [[ESP8266_D1_Mini]].
 +
 +
<youtube>GHE5A0WT5AE</youtube>
 +
  
 
If you use the [[ESP8266_D1_Mini]] have a look at this file about which Pins to use: https://micropython-on-wemos-d1-mini.readthedocs.io/en/latest/basics.html
 
If you use the [[ESP8266_D1_Mini]] have a look at this file about which Pins to use: https://micropython-on-wemos-d1-mini.readthedocs.io/en/latest/basics.html
Line 50: Line 59:
  
  
== PWM Output: connecting a servo (old version using WebREPL **) ==
+
== PWM Output: connecting a servo and and LED ==
In this video on youtube (14:40) we explain the concept of pulse width modulation (PWM) and how to program it in MicrpPython. We show how to use PWM to controll a servo: https://youtu.be/_4bXk8JjQSk
+
In this video on youtube (45:39) we explain the concept of pulse width modulation (PWM) and how to program it in MicrpPython. We show how to use PWM to control a servo and the brightness of an LED: https://youtu.be/XovIHYo7s1A
 +
 
 +
<youtube>XovIHYo7s1A</youtube>
 +
 
 +
 
 +
== PWM Output: connecting a servo (old version using WebREPL **, 14:40) ==
  
 
<youtube>_4bXk8JjQSk</youtube>
 
<youtube>_4bXk8JjQSk</youtube>
Line 65: Line 79:
  
 
<youtube>va1beT6sxLs</youtube>
 
<youtube>va1beT6sxLs</youtube>
 +
 +
 +
Here is a short video of how to connect a button and how to read a digital value from the ESP8266_D1_Mini with micropython.
 +
 +
<youtube>Cb_nYYs-pag</youtube>

Latest revision as of 11:13, 29 December 2020

Digital Input and Output with MicroPyton and ESP32/ESP8266[edit]

In this part of the tutorial, we explain how to control digital outputs and how to read digital inputs using MicroPyton on ESP32/ESP8266. This includes switching the state of the GPIOs (general purpose input output) and also how to create a pulse width modulation output for changing the brightness of an LED or for controlling a servo.

Success criteria[edit]

  • you can set a GPIO pin to on or off from the python prompt
  • you can write a loop to blink an external LED
  • you can use pulse width modulation to control the intensity of an LED
  • you can use pulse width modulation to control a servo that can be directly driven from the ESP Module
  • you can read in the status of a GPIO
  • you can connect a switch or a push-button and read its status into a variable

Related Components[edit]

The components are related to the LMUBox. For more components, see the Hardware List. Many of the pages on actuators and sensors include additional examples.

Microcontroller[edit]

Actuators[edit]

Sensors (and physical controllers)[edit]

Instructional Videos[edit]

The videos are a first test... the ones marked with ** will be replaced over the next months with new versions.

If you use the ESP8266_D1_Mini have a look at this file about which Pins to use: https://micropython-on-wemos-d1-mini.readthedocs.io/en/latest/basics.html


Digital Output: Adding an external LED to the controller[edit]

In this video on youtube (30:30) we show how to connect an LED and how to control it from MicroPython: https://youtu.be/0KGgYsEZcZM


Here is a short video of how to connect and control an LED on the ESP8266_D1_Mini.


If you use the ESP8266_D1_Mini have a look at this file about which Pins to use: https://micropython-on-wemos-d1-mini.readthedocs.io/en/latest/basics.html

Digital Output: Connectin an external LED (old version using WebREPL **)[edit]

In this video on youtube (16:54) we show how to connect an LED and how to control it from MicroPython: https://youtu.be/G6HZ1etMRbM


PWM Output: connecting a servo and and LED[edit]

In this video on youtube (45:39) we explain the concept of pulse width modulation (PWM) and how to program it in MicrpPython. We show how to use PWM to control a servo and the brightness of an LED: https://youtu.be/XovIHYo7s1A


PWM Output: connecting a servo (old version using WebREPL **, 14:40)[edit]

PWM Output: creating sounds[edit]

In this video on youtube (23:56) we explain how to create a sound on a digital output pin. We have two versions, one with the sleep function and one with pulse width modulation (PWM) in MicrpPython. We also show how to add an PAM8403_Stereo_Amplifier: https://youtu.be/HPQMvL1SP_c


Digital Input - connecting a switch and a push-button **[edit]

In this video on youtube (30:31) we explain how to read in digital inputs in MicrpPython. We show how to connect a switch and a push-button and also explain the basic concept of a pull-up resistor: https://youtu.be/va1beT6sxLs


Here is a short video of how to connect a button and how to read a digital value from the ESP8266_D1_Mini with micropython.