Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Управление цепями с учетом движения через Intel Curie

Компоненты и расходные материалы

Arduino 101
× 1

Об этом проекте

Цели

  • Автоматически включать (и выключать) свет при обнаружении шагов.
  • Синхронизировать мигание огней с определенным темпом танцев / постукивания поблизости.
  • Вывод показаний акселерометра / гироскопа через USB / Bluetooth для обнаружения сейсмических событий.

Репозиторий GitHub

https://github.com/ckuzma/arduino-101-sketches

Эскизы

TapFlashTest

  #include "CurieIMU.h" void setup () {pinMode (LED_BUILTIN, OUTPUT); CurieIMU.begin (); CurieIMU.attachInterrupt (eventCallback); CurieIMU.setDetectionThreshold (CURIE_IMU_SHOCK, 1050); // 1.050 г =1050 мг CurieIMU.setDetectionDuration (CURIE_IMU_SHOCK, 75); // 75 мсек CurieIMU.interrupts (CURIE_IMU_SHOCK); } void loop () {// Нам не нужно ничего помещать в основной цикл ...} static void eventCallback (void) {if (CurieIMU.getInterruptStatus (CURIE_IMU_SHOCK)) {digitalWrite (LED_BUILTIN, HIGH); задержка (50); digitalWrite (LED_BUILTIN, LOW); }}  
  • Мигает встроенный светодиодный индикатор при обнаружении касания.
  • Используется для определения изменений в обнаружении импульсов.

TapBeatMatch

  • Синхронизирует мигание встроенного светодиода с темпом нажатия на поверхность стола рядом с Arduino 101
  • Реализовано средневзвешенное значение для уменьшения шума.
  • Регулируемый порог обнаружения удара.

SeismicReader + Скрипт визуализации Python

  • Плата Arduino 101 выводит значения акселерометра и гироскопа в формате JSON по последовательному порту, которые затем считываются подключенным компьютером.
  • Написал небольшой скрипт Python, который считывает данные с доски и отображает их в виде очень простых линий в терминале / командной строке.
  • Сохраняет результаты в CSV, который можно открыть в Excel и построить график.
  • Использование мультиплатформенного Python 2.x / 3.x:

Вибрационное освещение

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

Бонус

Разговор с Богданом заставил меня понять, что было бы очень легко изменить эскиз Arduino для работы с автономным акселерометром + датчиками гироскопа, подключенными практически к любому устройству Arduino, а затем использовать CurieGraph.py для визуализации данных. Видя, что целью сбора сейсмических данных является доказательство возможности массового сбора данных без сложного или специализированного оборудования, я порылся в своем столе в поисках "ITG-MTU" / "GY-521" / "MPU-6050" сенсорной плате, и написал для нее следующий набросок. CurieGraph.py может не запускаться пару раз, но обычно он запускается правильно с третьей попытки.

Внешний гироскоп

  #include  const int MPU_addr =0x68; // Адрес I2C для ITG-MTU int ax, ay, az, temp, gx, gy, gz; void setup () {Serial.begin (9600); Wire.begin (); Wire.beginTransmission (MPU_addr); Wire.write (0x6B); Wire.write (0); Wire.endTransmission (истина); } String jsonEncodeValue (String key, float keyVal) {return "\" "+ key +" \ ":" + String (keyVal) + ""; } String AssemblyJson (String keysAndVals) {return "{" + keysAndVals + "}"; } void loop () {Wire.beginTransmission (MPU_addr); Wire.write (0x3B); Wire.endTransmission (ложь); Wire.requestFrom (MPU_addr, 14, истина); ax =Wire.read () <<8 | Wire.read (); ay =Wire.read () <<8 | Wire.read (); az =Wire.read () <<8 | Wire.read (); temp =Wire.read () <<8 | Wire.read (); gx =Wire.read () <<8 | Wire.read (); gy =Wire.read () <<8 | Wire.read (); gz =Wire.read () <<8 | Wire.read (); // темп =темп / 340.00 + 36.53; // Преобразование временных данных в градусы Цельсия - НЕ ИСПОЛЬЗУЕТСЯ String keyVals =jsonEncodeValue ("ax", ax) + ","; keyVals + =jsonEncodeValue ("ау", ау) + ","; keyVals + =jsonEncodeValue ("аз", аз) + ","; keyVals + =jsonEncodeValue ("gx", gx) + ","; keyVals + =jsonEncodeValue ("gy", gy) + ","; keyVals + =jsonEncodeValue ("gz", gz); Serial.println (assemblyJson (keyVals)); задержка (100); }  

Код

эскизы arduino-101
Коллекция эскизов, написанных специально для Arduino 101 с использованием акселерометров и гироскопов Intel Curie. Https://github.com/ckuzma/arduino-101-sketches

Производственный процесс

  1. Цепи управления двигателем
  2. Включение Alexa Control для потолочного вентилятора
  3. Программирование серии Atmel AT89 через Arduino
  4. Универсальный пульт дистанционного управления с использованием Arduino, 1Sheeld и Android
  5. Управление монетоприемником с помощью Arduino
  6. Центр управления Arduino
  7. Использование Интернета вещей для удаленного управления манипулятором
  8. Arduino с Bluetooth для управления светодиодом!
  9. Управление увлажнителем Arduino
  10. Arduino Nano:управление двумя шаговыми двигателями с помощью джойстика