Skip to content

Project Description

For this project, the following hardwares were used:

  • EXT3-1 Extension board
  • EXT3-1 Touch board
  • 2.71” Touch EPD
  • DC Motor + Stepper FeatherWing
  • NodeMCU-32 v1.2
  • N20 DC Motor

The remote motor control system is separated into two segments: touch panel and the motor. Each system uses the same ESP32 as controller and communication module.

Server: Touch Panel

Touch-EPD assembly

Assembling the touch kit is shown in detail here.

The touch kit can be purchased through our related products page.

Info

Note that this kit does NOT include the ESP32 and the green interface board.

Connecting to the ESP32

Pin wiring to the ESP32 module is as follows:

clike // EPD pins .panelBusy = 27 .panelDC = 26 .panelReset = 25 // SPI pins .panelMOSI = 23 .panelSCK = 18 .panelCS = 32 // I2C pins .panelSDA = 21 .panelSCL = 22 // Touch pins .touchInt = 17 .touchReset = 16

The sample GUI shown was developed using the PDLS_EXT3_Basic_Touch. Two buttons were created to represent the ON and OFF state of a motorized lock. The demo version can be found at [].

Client: Motor Controller

The client side is composed of the Adafruit Featherwing board, ESP32 module, and the N20 DC motor.

The Adafruit Featherwing board handles the motor driving with an I2C interfacing chip. This allows the board to handle up to 4 motors using the same number of communication pins. However, in this example, only 1 motor is used.

To ensure a closed-loop control system, a PID controller was implemented in the ESP32 module. It was adapted from [], where a transistor-based H-bridge was used. Feedback is fed into the controller through Hall-effect magnetic encoders that come together with the N20 DC motors.