Jump to content
Korean Random
kharlashkin

Arduino и аналоги

Recommended Posts

Потому что в большинстве БП есть защита от КЗ, а 1,45 Ампер не так далеко от тока КЗ, и паяльник может просто не заработать.

USB имеет максимальный ток 500 мА, версия 3.0 до 900 мА. Я собираюсь использовать его с помощью имеющейся зарядки для планшета/телефонов с током 2 А.

 

 

Передача туда-сюда координат может тормозить. Максимальная скорость UART'а 921600 бод. Это 900 кбит/сек. Тут два выхода - оптимизировать передачу, понизив точность, или воспользоваться чем-то посложнее и побыстрее UART. Ethernet'ом, к примеру. Оу, ещё можно удвоить скорость с помощью ещё одной пары RX/TX. Програмно реализованый UART... Извращения-с, сэр.

Подумал немного о реализации...

Наверное лучше будет по одному порту отдавать данные а другим забирать. Вопрос в том что нужен преобразователь в usb из второй пары RX/TX, не посоветуете ничего?

 

2 датчика положения имеют по 2 аналоговых выхода, после перепайки каждый из сервоприводов будет иметь дополнительно аналоговый выход - итого 10, на плате 6, если я не ошибаюсь нужен мультиплексор аналоговый. Смотрю в сторону cd74hc4067.

Share this post


Link to post

Short link
Share on other sites

 

 

Вопрос в том что нужен преобразователь в usb из второй пары RX/TX, не посоветуете ничего?

Целую кучу USB-UART преобразователей на PL2303 и подобных микросхемах. Драйверов для них достаточно.

У меня заработало без установки каких-либо драйверов или пакетов (Archlinux).

 

 

 

если я не ошибаюсь нужен мультиплексор аналоговый

Да, тут нужен мультиплексор. Я никогда с ними не работал, а значит ничего подсказать не могу.


 

 

Наверное лучше будет по одному порту отдавать данные а другим забирать.

У Arduino есть второй UART? Помните, что самописные реализации будут медленнее. Выгода от второго порта в таком случае сомнительна. 


 

 

Потому что в большинстве БП есть защита от КЗ, а 1,45 Ампер не так далеко от тока КЗ, и паяльник может просто не заработать.

Купить БП большей мощности - не такая большая проблема.

Share this post


Link to post

Short link
Share on other sites

Целую кучу USB-UART преобразователей на PL2303 и подобных микросхемах. Драйверов для них достаточно.

У меня заработало без установки каких-либо драйверов или пакетов (Archlinux).

У Arduino есть второй UART? Помните, что самописные реализации будут медленнее. Выгода от второго порта в таком случае сомнительна.

Да ну это так - мысли вслух. Пока паяльник жду ;)

Хочу поделиться ещё одним своим проектом, который точно буду делать - все к реализации идет уже.

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

Для полномасштабных испытаний был заказан вот такой комплект туманообразования в Китае, дабы проверить каким образом будет распространятся водно-воздушная смесь внутри канального блока кондера. Пока думаю над реализацией всей автоматики и покупки нужных дополнительных устройств для автоматизации. Видится что-то подобное:

  1. Датчик температуры и влажности DHT22 AM2302 - 1 шт., устанавливается в кондиционер с обратной стороны, будет мониторить температуру и влажность воздуха который забирается из комнат. По идее было бы неплохо второй установить с передней части кондиционера - мониторить температуру и влажность воздуха на выходе из кондиционера (т.е. после смешивания наружного воздуха с внутренним)
  2. Датчик уровня углекислого газа CO2 MG811 - 1 шт., устанавливается в кондиционер с обратной стороны с целью проверки текущего уровня CO2 в комнатах.
  3. Реле включения/выключения исполнительных устройств - 2 шт., включение/выключение приточного вентилятора по уровню CO2, открытие/закрытие клапана электромагнитного подачи воды на систему увлажнения/очистки. Скорее всего буду добавлять ещё одно реле - для канального нагревателя, существуют конечно нагреватели со встроенной системой управления, но разница в цене на них более чем в 2,5 раза (1131 грн без автоматики, 3048 грн с автоматикой).

Есть ещё проблема одна но пока не знаю как решить, может подскажет кто реализацию. Вентилятор подмеса свежего воздуха может управляться тиристорным регулятором скоростей, т.е. 3 скорости (низкая, средняя, высокая) и позиция выкл. Вот думаю купить именно такой регулятор и прикрутить к нему сервопривод :) или же можно реализовать подобный регулятор с помощью средств ардуинки.

Share this post


Link to post

Short link
Share on other sites
Вентилятор подмеса свежего воздуха может управляться тиристорным регулятором скоростей, т.е. 3 скорости (низкая, средняя, высокая) и позиция выкл. Вот думаю купить именно такой регулятор и прикрутить к нему сервопривод

 

Механические элементы ненадежны. Если есть возможность избавиться от движущихся частей, эту возможность нужно использовать.

Тиристором можно управлять средствами самой Arduino.

Edited by Azbuka

Share this post


Link to post

Short link
Share on other sites

Я кстати научился спустя пару дней робототехники делать все средствами Ардуино. Годная вещь! Пока что собрал аналог мультивибратора, измеритель емкости и напряжения.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Механические элементы ненадежны. Если есть возможность избавиться от движущихся частей, эту возможность нужно использовать.

Тиристором можно управлять средствами самой Arduino.

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

Я кстати научился спустя пару дней робототехники делать все средствами Ардуино. Годная вещь! Пока что собрал аналог мультивибратора, измеритель емкости и напряжения.

Ардуинка чем хороша - низким порогом вхождения в мир микроконтроллера и большим сообществом с огромными наработками.

Share this post


Link to post

Short link
Share on other sites

 

 

Датчик уровня углекислого газа CO2 MG811 - 1 шт., устанавливается в кондиционер с обратной стороны с целью проверки текущего уровня CO2 в комнатах.

Гм... Начал читать кто и как делал подобные проекты, народ пишет про не совсем корректное поведение сенсора MG811, к тому для корректной работы сенсору требуется 6 В, что несколько проблематично (как-то думал обойтись 5 В постоянки и 220 В переменки в проекте), наверное буду использовать MH-Z19, к тому же он немного дешевле ;)

Share this post


Link to post

Short link
Share on other sites

 

 

Для полномасштабных испытаний был заказан вот такой комплект туманообразования в Китае, дабы проверить каким образом будет распространятся водно-воздушная смесь внутри канального блока кондера.

Приехал и протестирован в ванной комнате, один наконечник формирует как бы облако мелкого-мелкого дождика, под водопроводным напором начиная с самой тоненькой струйки (подключал вместо лейки душа) и до максимум открытого крана может расход и меняется, но образуемое облако остается в прежних пределах от одного распылителя (примерно на расстояние в 800 мм телесный угол в 30 градусов). Был произведен замер расхода по таймеру- за 30 минут в ведро собралось примерно 2,5 литра (3-х литровой банкой измерял).

Теперь на очереди нужно разобрать один внутренний блок кондиционера, временно подключить к водопроводу одно/два сопла и посмотреть как будет облако тумана распостраняться внутри канальника. Процесс думаю снять на видео ;)

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Процесс думаю снять на видео ;)

Поддерживаю!

Share this post


Link to post

Short link
Share on other sites

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

Подопытный

post-19155-0-66859700-1483890583_thumb.jpg

Со снятой нижней панелью

post-19155-0-12976200-1483890591_thumb.jpg

Со снятым поддоном сбора конденсата

post-19155-0-14668400-1483890597_thumb.jpg

Грязный поддон

post-19155-0-57919800-1483890602_thumb.jpg

Поддон обычно мою после сезона работы на охлаждение, т.е. раз в год осенью октябрь-ноябрь. В этом году так как ещё с начала осени собирался проводить эксперименты с увлажнением, сделал мойку сейчас. Можно понять сколько грязи уносит водичка с теплообменника летом за год.

Внутрь, через убранную заглушку в поддоне слева (правильно - по ходу воздуха, на фото - справа) завел трубку на которую надел распылители. За счет того что блок установлен с небольшим наклоном в правую сторону (где установлен конденсатный насос), некоторое время вода не должна была выливаться.

Прилепленые на скотч распылители ;)

post-19155-0-85307100-1483890608_thumb.jpg

Обе форсунки прилепил над выходными патрубками вентиляторов, расстояние от форсунки до теплообменника где-то 300-400 мм.

Открыл водичку сначала просто так - оба распылителя функционировали как нужно, посторонних подтеков не заметил.

Установил на место поддон сбора конденсата. Запустил внутренний блок на режим вентиляции (работа только вентиляторов) на минимальной скорости и опять открыл воду. Визуально ничего не видно, так как все закрыто - но по звуку было понятно что распылители водичку подают. Кстати шум от них даже больший чем от работы кондиционера на минимальной скорости.

Кран был открыт 15 минут, т.е. в кондиционер было подано около 2,5 литра холодной воды. Внутренний блок работал 5 минут на минимальной, 5 минут на средней и 5 на максимальной скоростях вентиляторов. Все это время "махал руками" за теплообменником на выходном патрубке внутреннего блока, держал бумажную салфетку и т.п. Где-то на 10-й минуте (перед переключением на макимальную скорость) нижняя половина теплообменника стала влажной, за это время в поддоне справа уровень воды поднялся где-то до 7 мм (пальцем проверял). На 15-й минуте из партубка с отсутствующей заглушкой начала капать вода, т.е. уровень воды в поддоне уже был довольно высок (пальцем померял - около 10 мм в правом углу). Сходил перекрыл кран с подачей, услышал как начал работу конденсатный насос - сработал поплавок. Насос проработал 10 минут, режим вентиляции выключил вместе с водой, так как время поджимало - нужно было ещё все собрать обратно успеть.

В принципе эксперимент считаю удачным, так как основные опасения не подтвердились и вода за пределы кондиционера не уходит. Боялся брызг за теплообменником на выходном патрубке кондиционера. Теперь думаю смонтировать распылители на постоянной основе и погонять уже более основательно с замерами анемометром влажности и температуры на выходном патрубке кондиционера, на приточных и вытяжных решетках в комнатах. Параллельно заказывать буду датчики и реле для ардуинки.

  • Upvote 2

Share this post


Link to post

Short link
Share on other sites
Паяльника у меня тоже нет, посмотрев вчера пару уроков и обзор usb-паяльника решил себе тоже купить подобный девайс.

Приехал паяльничек, опробован на пайке ножек для сенсора положения в пространстве. паяльник как паяльник. Первым делом припаял ножки к платке с сенсором, сразу завелся код для mpu-9250. Пришло время перепаивать сервоприводы и доставать с полки платформу ;)

Edited by kharlashkin
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Поздравляю!

 

А я наигрался вдоволь, в субботу разберу геймпад и примусь к переносу в SL.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

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

 

Сегодня потратил половину выходного для более масштабных испытаний. У коллег взял приборчик - анемометр Testo 410-2, просверлил боковину канальника и на площадки/стяжки прикрутил внутри распылители. Сфотографировать честно забыл как внутри оно выглядит, но не особо отличается от фотографии со скотчем. Замеры проводил на 2-х приточных и вытяжной решетке (притоки в детскую и спальню, вытяжка из спальни), до 2-й вытяжной решетки было трудно добраться - она над шкафом и перед ней пакеты с игрушками, а в комнате в это время младший спал. Решетки предварительно снял. Методика замеров по ГОСТу, 5 замеров на отверстия размерами 100х450мм и 100х500мм, по 10 секунд на точку, все замеры занес в таблицу (во вложении).

Воду подавал холодную из системы, старался подавать/отключать воду циклами по 10 мин примерно. Ячейки красного цвета - подачи воды нет, ячейки синего цвета - подача воды, ячейки зеленого цвета - работа дренажного насоса.

Если что будет непонятно - спрашивайте.

 

P.S. Прикинул необходимое оборудование для автоматизации и добавления обезараживания в систему:

1/2" BSPP 220, Клапан электромагнитный нормально-закрытый - 1 шт.

DHT22/AM2302, Датчик температуры и влажности - 3 шт.

MH-Z19, Датчик инфракрасный уровня углекислого газа   - 1 шт.

ACS712, Датчик тока 5А - 1 шт.

AC-DC 220V/5V 700mA, Блок питания Arduino - 1 шт.

ARM PIC AVR DSP, Модуль реле 4-х канальный Arduino - 1 шт.

ОБН-35м, Облучатель бактерицидный (кварцевый) настенный - 1 шт.

Контроллер Arduino Nano 3.0 - 1 шт.

Стоимость всего примерно 72$.

 

 

Первым делом припаял ножки к платке с сенсором, сразу завелся код для mpu-9250.

Вчера допоздна сидел с датчиком положения в пространстве, корректно завелся у меня вот этот код:

/* MPU9250 Basic Example Code
 by: Kris Winer
 date: April 1, 2014
 license: Beerware - Use this code however you'd like. If you
 find it useful you can buy me a beer some time.
 Modified by Brent Wilkins July 19, 2016

 Demonstrate basic MPU-9250 functionality including parameterizing the register
 addresses, initializing the sensor, getting properly scaled accelerometer,
 gyroscope, and magnetometer data out. Added display functions to allow display
 to on breadboard monitor. Addition of 9 DoF sensor fusion using open source
 Madgwick and Mahony filter algorithms. Sketch runs on the 3.3 V 8 MHz Pro Mini
 and the Teensy 3.1.

 SDA and SCL should have external pull-up resistors (to 3.3V).
 10k resistors are on the EMSENSR-9250 breakout board.

 Hardware setup:
 MPU9250 Breakout --------- Arduino
 VDD ---------------------- 3.3V
 VDDI --------------------- 3.3V
 SDA ----------------------- A4
 SCL ----------------------- A5
 GND ---------------------- GND
 */

#include "quaternionFilters.h"
#include "MPU9250.h"
#define AHRS true         // Set to false for basic data read
#define SerialDebug true  // Set to true to get Serial output for debugging

// Pin definitions
int intPin = 12;  // These can be changed, 2 and 3 are the Arduinos ext int pins
int myLed  = 13;  // Set up pin 13 led for toggling

MPU9250 myIMU;

void setup()
{
  Wire.begin();
  // TWBR = 12;  // 400 kbit/sec I2C speed
  Serial.begin(38400);

  // Set up the interrupt pin, its set as active high, push-pull
  pinMode(intPin, INPUT);
  digitalWrite(intPin, LOW);
  pinMode(myLed, OUTPUT);
  digitalWrite(myLed, HIGH);

  // Read the WHO_AM_I register, this is a good test of communication
  byte c = myIMU.readByte(MPU9250_ADDRESS, WHO_AM_I_MPU9250);
  if (c == 0x71) // WHO_AM_I should always be 0x68
  {

    // Start by performing self test and reporting values
    myIMU.MPU9250SelfTest(myIMU.SelfTest);

    // Calibrate gyro and accelerometers, load biases in bias registers
    myIMU.calibrateMPU9250(myIMU.gyroBias, myIMU.accelBias);

    myIMU.initMPU9250();
    // Initialize device for active mode read of acclerometer, gyroscope, and
    // temperature

    // Read the WHO_AM_I register of the magnetometer, this is a good test of
    // communication
    byte d = myIMU.readByte(AK8963_ADDRESS, WHO_AM_I_AK8963);

    // Get magnetometer calibration from AK8963 ROM
    myIMU.initAK8963(myIMU.magCalibration);

  } // if (c == 0x71)
}

void loop()
{
  // If intPin goes high, all data registers have new data
  // On interrupt, check if data ready interrupt
  if (myIMU.readByte(MPU9250_ADDRESS, INT_STATUS) & 0x01)
  {  
    myIMU.readAccelData(myIMU.accelCount);  // Read the x/y/z adc values
    myIMU.getAres();

    // Now we'll calculate the accleration value into actual g's
    // This depends on scale being set
    myIMU.ax = (float)myIMU.accelCount[0]*myIMU.aRes; // - accelBias[0];
    myIMU.ay = (float)myIMU.accelCount[1]*myIMU.aRes; // - accelBias[1];
    myIMU.az = (float)myIMU.accelCount[2]*myIMU.aRes; // - accelBias[2];

    myIMU.readGyroData(myIMU.gyroCount);  // Read the x/y/z adc values
    myIMU.getGres();

    // Calculate the gyro value into actual degrees per second
    // This depends on scale being set
    myIMU.gx = (float)myIMU.gyroCount[0]*myIMU.gRes;
    myIMU.gy = (float)myIMU.gyroCount[1]*myIMU.gRes;
    myIMU.gz = (float)myIMU.gyroCount[2]*myIMU.gRes;

    myIMU.readMagData(myIMU.magCount);  // Read the x/y/z adc values
    myIMU.getMres();
    // User environmental x-axis correction in milliGauss, should be
    // automatically calculated
    myIMU.magbias[0] = +470.;
    // User environmental x-axis correction in milliGauss TODO axis??
    myIMU.magbias[1] = +120.;
    // User environmental x-axis correction in milliGauss
    myIMU.magbias[2] = +125.;

    // Calculate the magnetometer values in milliGauss
    // Include factory calibration per data sheet and user environmental
    // corrections
    // Get actual magnetometer value, this depends on scale being set
    myIMU.mx = (float)myIMU.magCount[0]*myIMU.mRes*myIMU.magCalibration[0] -
               myIMU.magbias[0];
    myIMU.my = (float)myIMU.magCount[1]*myIMU.mRes*myIMU.magCalibration[1] -
               myIMU.magbias[1];
    myIMU.mz = (float)myIMU.magCount[2]*myIMU.mRes*myIMU.magCalibration[2] -
               myIMU.magbias[2];
  } // if (readByte(MPU9250_ADDRESS, INT_STATUS) & 0x01)

  // Must be called before updating quaternions!
  myIMU.updateTime();

  // Sensors x (y)-axis of the accelerometer is aligned with the y (x)-axis of
  // the magnetometer; the magnetometer z-axis (+ down) is opposite to z-axis
  // (+ up) of accelerometer and gyro! We have to make some allowance for this
  // orientationmismatch in feeding the output to the quaternion filter. For the
  // MPU-9250, we have chosen a magnetic rotation that keeps the sensor forward
  // along the x-axis just like in the LSM9DS0 sensor. This rotation can be
  // modified to allow any convenient orientation convention. This is ok by
  // aircraft orientation standards! Pass gyro rate as rad/s
//  MadgwickQuaternionUpdate(ax, ay, az, gx*PI/180.0f, gy*PI/180.0f, gz*PI/180.0f,  my,  mx, mz);
  MahonyQuaternionUpdate(myIMU.ax, myIMU.ay, myIMU.az, myIMU.gx*DEG_TO_RAD,
                         myIMU.gy*DEG_TO_RAD, myIMU.gz*DEG_TO_RAD, myIMU.my,
                         myIMU.mx, myIMU.mz, myIMU.deltat);

  if (!AHRS)
  {
    myIMU.delt_t = millis() - myIMU.count;
    if (myIMU.delt_t > 500)
    {
      myIMU.count = millis();
      digitalWrite(myLed, !digitalRead(myLed));  // toggle led
    } // if (myIMU.delt_t > 500)
  } // if (!AHRS)
  else
  {
    // Serial print and/or display at 0.5 s rate independent of data rates
    myIMU.delt_t = millis() - myIMU.count;

    // update LCD once per half-second independent of read rate
    if (myIMU.delt_t > 500)
    {
      if(SerialDebug)
      {
        Serial.print(*getQ()); Serial.print(", ");
        Serial.print(*(getQ() + 1)); Serial.print(", ");
        Serial.print(*(getQ() + 2)); Serial.print(", ");
        Serial.println(*(getQ() + 3));
      }
      myIMU.count = millis();
      myIMU.sumCount = 0;
      myIMU.sum = 0;
    } // if (myIMU.delt_t > 500)
  } // if (AHRS)
}

Пытался подключить через pySerial ардуинку к Blender, а там python3:

import serial
usbport = '/dev/ttyUSB0'
ser = serial.Serial(usbport, 38400)
while True:
    data = ser.readline()
    print(data)

выводит b'0.12, 0.00, 0.84, 0.24\r\n' (данные рандомные как пример)

каким образом их передать в строку bpy.context.active_object.rotation_quaternion = (qw, qx, qy, qz), чего-то не получилось. Тупил перед документацией несколько часов, но так и не смог решить проблему, чувствую ответ где-то очень простой и близко. Может подскажет кто решение?

HVAC.ods.tar.gz

Edited by kharlashkin
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

 

 

Может подскажет кто решение?

Вроде так:

qw = float(data[0:4])
qx = float(data[6:10])
qy = float(data[12:16])
qz = float(data[18:22])
bpy.context.active_object.rotation_quaternion = (qw, qx, qy, qz)

Вечером проверю.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Вечером проверю.

 

В общем код вроде рабочий, вопрос в том что необходимо в реальном времени передавать/отображать положение "кубика". Буду смотреть в сторону Blender Game Engine, вот даже нашел понятно видео по процессу.

Edited by kharlashkin
  • Upvote 3

Share this post


Link to post

Short link
Share on other sites

Вот сейчас реально интересно стало.

Надо будет тоже зафигачить подобное. Хорошо, что в инсте этого добра полно)

Я вчера вам даже хотел в личку написать просьбу о помощи, но уже два дня пока не могу до ардуинки добраться ;)

Идея в приниципе какова - через bge отдавать команды платформе, считывать данные от датчиков (положение в пространстве основы и платформы и углы с серв) и визуализировать картинку в Blender не из математики а из реального мира.

Edited by kharlashkin

Share this post


Link to post

Short link
Share on other sites

Вроде закрутил кубик, и в то же время и нет.

post-19155-0-97298600-1485286681_thumb.png

Или я чего-то не понимаю, но кубик не крутится вокруг оси Z, проверил - кватернионы не меняются при вращении по Z. Вот интересно - так и должно быть?

Код крупным планом:

import bge
import serial
import mathutils

ser = serial.Serial('/dev/ttyUSB1', 38400)

def Cube():
    data = ser.readline()
    qw = float(data[0:4])
    qx = float(data[6:9])
    qy = float(data[11:14])
    qz = float(data[16:19])
    quat_ard = mathutils.Quaternion((qw, qx, qy, qz))
    scene = bge.logic.getCurrentScene()
    cont = bge.logic.getCurrentController()
    obj = cont.owner
    obj.localOrientation = quat_ard.to_matrix()

Share this post


Link to post

Short link
Share on other sites

Накидал демку.

attachicon.giftest.zip

Удобно через дебагер в верхнем левом углу смотреть значения w/x/y/z

 

P.S. в качестве ардуинки буду использовать свои старые телефоны) Но это будет не скоро.

Блин не заметил сразу в сообщении вложение. Поэтому повторил демку методом "ручного переноса".

post-19155-0-27770700-1485762029_thumb.png

Блин как включить отображение дебагера в верхнем углу проигрывателя?

Блин как включить отображение дебагера в верхнем углу проигрывателя?

А все - нашел :)

post-19155-0-69399400-1485763803_thumb.png

Гм... Чего-то вспомнилась вот эта темка уважаемого @Pavel3333, и приведенная мною в одном из сообщении ссылка на создание костюма отслеживания движений. В принципе теперь не составит особого труда повторить этот проект в Blender - а учитывая что датчики 9250 могут при расчетах кватернионов, так же учитывать показания магнитометра - получится более точная версия.

 

Пока последнее время все проводил эксперименты с системой увлажнения дома и откладывал платформу с датчиками "на потом". После публикации с помощью сообщества основные волновавшие меня вопросы решены и остается только реализация, после приезда оборудования. Так что теперь более плотно вернусь к платформе в свободное время.

ссылка на создание костюма отслеживания движений.

 

Прошел перечитал статью, осталось какое-то чувство непонятное от прочитанного. Возможно "первопроходцам" всегда труднее, и повторять уже проторенный путь легче, тем более в голове после того как перечитал, уже есть понимание того, что же там описано.

Мое имхо:

post-19155-0-72368400-1485775508_thumb.png

Распределение массы в теле человека: темные кружки, обозначенные буквами, показывают центры суставов, светлые квадраты, отмеченные номерами показывают центры масс различных частей тела; темные квадраты показывают положение центра масс всего тела.

Итого 15 точек замеров относительно положения в пространстве (центры масс частей тела), для центра масс тела - два датчика расположенных перпендикулярно - итого 16 датчиков + два 16-ти канальных мультиплексора + arduino nano + голубозубый модуль. Цена вопроса 30 + 2 + 7 + 3 = 42$. Ну провода ещё, припой и т.п. И остается вопрос куда это применять - запись движений человека. Очень дополнительным подспорьем будет забирать с акселерометров ускорения каждой части тела. И обсчет прямой и инверсной кинематик человеческого тела, думаю сложный и интересный процесс в реальном времени.

Интересно, а в Blender можно записывать движения человека в *.bvh.

cube_quat.zip

Edited by kharlashkin

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...