jonny_ji7 adb517c7ed Create 'control.hpp/cpp', Create 'button.hpp/cpp'
Add control.hpp and control.cpp
 - task that repeatedly generates motor commands depending on the current mode
 - function to change to a specified control mode

Add button.hpp and button.cpp
  - class which runs commands depending on the count a button was pressed

Update main.cpp
  - create button task
  - create control task
  - comment out previous testing code
  - remove unnecessary includes (already included in config.hpp)

Add control.cpp and button.cpp to CMakeLists

Notes: Tested this state on the armchair: All currently implemented features
work. You can switch between IDLE and JOYSTICK by pressing the button 2
or 3 times. Also driving works well (limited to 60% duty, with no fans
yet).
2022-06-10 23:09:23 +02:00
2022-06-04 18:17:15 +02:00

Firmware for a homemade automated electric armchair.
More details about this project: https://pfusch.zone/electric-armchair

Installation

Install esp-idf

For this project ESP-IDF v4.4.1 is required (with other versions it might not compile)

#download esp-idf
yay -S esp-idf #alternatively clone the esp-idf repository from github
#run installation script in installed folder
/opt/esp-idf/install.sh

Clone this repo

git clone git@github.com:Jonny999999/armchair_fw

Compilation

Set up environment

source /opt/esp-idf/export.sh

(run once in terminal)

Compile

idf.py build

Upload

  • connect FTDI programmer to board (VCC to VCC; TX to RX; RX to TX)
  • press REST and BOOT button
  • release RESET button (keep pressing boot)
  • run flash command:
idf.py flash
  • once "connecting...' successfully, BOOT button can be released

Monitor

  • connect FTDI programmer to board (VCC to VCC; TX to RX; RX to TX)
  • press REST and BOOT button
  • release RESET button (keep pressing boot)
  • run monitor command:
idf.py monitor
  • once connected release BOOT button
  • press RESET button once for restart

Hardware setup

pcb

Used pcb developed in this project: https://pfusch.zone/project-work-2020

connection plan

A diagram which shows what components are connected to which terminals of the pcb exists here:
connection-plan.drawio.pdf

Planned Features

  • More sensors:
    • Accelerometer
    • Lidar sensor
    • GPS receiver
  • Anti slip regulation
  • Self driving algorithm
  • Lights

Usage

Switch functions

previous functions - not implemented yet

Count Action
1 define joystick center
2 toggle motors
3 toggle log-level (WARN, DEBUG, INFO)
4 define max duty
5 toggle mode MQTT/JOYSTICK
6 toggle mode SHAKE/JOYSTICK
7 toggle testing-mode (dry-run)
Description
Firmware for a homemade automated electric armchair using an esp32 controller on a custom pcb
Readme 34 MiB
Languages
C++ 83.8%
C 15.3%
CMake 0.7%
HTML 0.2%