Тензоджойстик на трёх весовых датчиках.

Razor AHRS 5DOF      Opentrack      Джойстик      Donate

Ещё компактнее и дешевле!

( Первая часть: Тензоджойстик на четырёх весовых датчиках )

Так как модуль HX711 намного дешевле весового датчика, имеет смысл сократить количество весовых датчиков до трёх. Я попробовал это сделать и так получился джойстик с тремя весовыми датчиками и с тремя модулями HX711.

Три весовых датчика расположены на основании джойстика так, чтобы образовался круговой массив с шагом 120 градусов. Вес руки не смещает центровку, давление на каждую балку компенсируется давлением на две другие балки, так как косинус 120 градусов равен -0,5.

На всех трёх модулях HX711 перемычка установлена в положение "80Hz".

В Ардуино синхронно считывается последовательный код с контактов DTA, DTB, DTC, по общему управляющему сигналу SCK3, идущему из Ардуино.

Тензобалки закреплены на основании так, чтобы образовался круговой массив из трёх балок с шагом 120 градусов, симметричный относительно центра. Угол установки датчиков относительно РУС может быть любым. Угол задаётся в скетче. 

Таким образом, весовые датчики могут быть установлены "звездой": 

#define rotation_angle 30

#define rotation_angle 30

#define rotation_angle 0


или "треугольником":

#define rotation_angle 120

#define rotation_angle 120

В конце концов, я выбрал расположение весовых датчиков треугольником.

В самой удобной зоне на основании слева от РУС остаётся ещё больше места для кнопок и дополнительных осей, по сравнению с вариантом с четырьмя весовыми датчиками.

#define rotation_angle 120

вид снизу на весовые датчики

Новый эскиз разметки верхней треугольной и нижней квадратной панелей сразу для всех моих вариантов крепления балок в Spint-Layout 6.0:

Разметка: Tenzo3_Holes.lay6

Настройки скетча

Обновлённый скетч LoadCellsJoy_221117.rar поддерживает РУС с четырьмя или с тремя весовыми датчиками. Настройки скетча в основном остались прежние. Добавилось лишь несколько новых настроек.

#define useHX711    2

0 - используется 4 весовых датчика и 2 ОУ INA122

1 - используется 4 весовых датчика и 2 модуля HX711

2 - используется 3 весовых датчика и 3 модуля HX711 ( новый вариант )

Для варианта с тремя весовыми датчиками добавлены настройки контактов Arduino Pro Micro, к которым подключены три модуля  HX711 с общим сигналом SCK3:

#define SCK3 4   // D4/A6 - SCK3

#define DTA 5   // D5    - A channel

#define DTB 6   // D6/A7 - B channel

#define DTC 7   // D7    - C channel

Правильное направление отклонения РУС при любом расположении весовых датчиков на основании задаётся настройками:

#define rotation_angle  120

#define invertX         0

#define invertY         0

Иногда может понадобиться поменять местами контакты в любых из двух каналов DTA, DTB, DTC.            

В варианте с тремя весовыми датчиками к каждому модулю HX711 подключен только один весовой модуль. Поэтому чувствительность отклонения РУС от прикладываемого усилия увеличилась ровно в два раза. В результате мне пришлось увеличить hardstick и softstick тоже ровно в два раза:

#define hardstick       2*512

#define softstick       2*200

Это привело к уменьшению шума РУС тоже в два раза, что, в свою очередь, позволяет увеличить вдвое выходной диапазон осей X и Y:

#define maxaxe 4094

Все остальные настройки скетча не изменились.

Видео

Удачи!

Joystick

#diy #straingauge #loadcell #joysticks