Датчик подсчета сверл для печатных плат с ЧПУ: 9 шагов

Датчик подсчета сверл для печатных плат с ЧПУ: 9 шагов
Датчик подсчета сверл для печатных плат с ЧПУ: 9 шагов
Anonim
Датчик подсчета сверл для печатных плат с ЧПУ
Датчик подсчета сверл для печатных плат с ЧПУ

Привет ребята!

Недавно я получил доступ к станку с ЧПУ, и мне всегда хотелось работать со счетчиком сверл и контролировать станок в режиме онлайн. Таким образом, я создал прототип датчика и поделился пошаговой процедурой создания счетчика сверл на основе IOT, который используется для станков с ЧПУ. Спасибо LionCircuits за предоставление мне недорогих прототипов всего за 5 дней.

Давайте начнем…

Шаг 1: необходимые вещи

Необходимые вещи
Необходимые вещи
Необходимые вещи
Необходимые вещи
Необходимые вещи
Необходимые вещи
Необходимые вещи
Необходимые вещи

1. NodeMCU

2. Акселерометр ADXL345

3. Перемычка - гнездо к гнезду.

4. Кабель Micro USB от A до B

5. Arduino IDE на вашем компьютере.

Шаг 2: Установка пакета платы NodeMCU

Установка пакета платы NodeMCU
Установка пакета платы NodeMCU
Установка пакета платы NodeMCU
Установка пакета платы NodeMCU

1. Откройте Arduino IDE. Перейдите в Файлы -> Настройки. Введите этот код в поле дополнительных URL-адресов Board Manager.

2. Теперь перейдите в Инструменты -> Платы -> Менеджер плат, найдите ESP8266 и установите пакет.

Шаг 3: Подключения

Подключения
Подключения
Подключения
Подключения

Сопряжение акселерометра ADXL345 с NodeMCU должно выполняться, как показано на рисунке.

Шаг 4: Установка на станке с ЧПУ

Монтаж на станке с ЧПУ
Монтаж на станке с ЧПУ

Чтобы установить на станке с ЧПУ, я встроил схему в небольшую коробку, как показано на изображении.

Шаг 5: программирование

1. Загрузите и установите библиотеку датчиков Adafruit и библиотеку ADXL345.

2. Нажмите «Файл -> Примеры -> Adafruit_ADXL345 -> sensortest», чтобы загрузить пример скетча из библиотеки, как показано ниже.

#include #include #include / * Одновременно присвоить этому датчику уникальный идентификатор * / Adafruit_ADXL345_Unified Accel = Adafruit_ADXL345_Unified (12345); void displaySensorDetails (void) {сенсор_t сенсор; Accel.getSensor (& датчик); Serial.println ("------------------------------------"); Serial.print ("Датчик:"); Serial.println (имя датчика); Serial.print ("Версия драйвера:"); Serial.println (сенсорная версия); Serial.print ("Уникальный идентификатор:"); Serial.println (sensor.sensor_id); Serial.print ("Максимальное значение:"); Serial.print (sensor.max_value); Serial.println ("м / с ^ 2"); Serial.print ("Мин. Значение:"); Serial.print (sensor.min_value); серийный. Отпечаток (sensor.min_value); Serial.println ("м / с ^ 2"); Serial.print ("Разрешение:"); Серийный. Отпечаток (сенсор. Разрешение); Serial.println ("м / с ^ 2"); Serial.println ("------------------------------------"); Serial.println (""); задержка (5000); } void displayDataRate (void) {Serial.print ("Скорость передачи данных:"); переключатель (accept.getDataRate ()) {case ADXL345_DATARATE_3200_HZ: Serial.print ("3200"); перерыв; case ADXL345_DATARATE_1600_HZ: Serial.print ("1600"); перерыв; case ADXL345_DATARATE_800_HZ: Serial.print ("800"); перерыв; case ADXL345_DATARATE_400_HZ: Serial.print ("400"); перерыв; case ADXL345_DATARATE_200_HZ: Serial.print ("200"); перерыв; case ADXL345_DATARATE_100_HZ: Serial.print ("100"); перерыв; case ADXL345_DATARATE_50_HZ: Serial.print ("50"); перерыв; case ADXL345_DATARATE_25_HZ: Serial.print ("25"); перерыв; case ADXL345_DATARATE_12_5_HZ: Serial.print ("12,5"); перерыв; case ADXL345_DATARATE_6_25HZ: Serial.print ("6.25"); перерыв; case ADXL345_DATARATE_3_13_HZ: Serial.print ("3,13"); перерыв; case ADXL345_DATARATE_1_56_HZ: Serial.print ("1.56"); перерыв; case ADXL345_DATARATE_0_78_HZ: Serial.print ("0,78"); перерыв; case ADXL345_DATARATE_0_39_HZ: Serial.print ("0,39"); перерыв; case ADXL345_DATARATE_0_20_HZ: Serial.print ("0.20"); перерыв; case ADXL345_DATARATE_0_10_HZ: Serial.print ("0.10"); перерыв; по умолчанию: Serial.print ("????"); перерыв; } Serial.println ("Гц"); } void displayRange (void) {Serial.print ("Диапазон: +/-"); переключатель (Accel.getRange ()) {case ADXL345_RANGE_16_G: Serial.print ("16"); перерыв; case ADXL345_RANGE_8_G: Serial.print ("8"); перерыв; case ADXL345_RANGE_4_G: Serial.print ("4"); перерыв; case ADXL345_RANGE_2_G: Serial.print ("2"); перерыв; по умолчанию: Serial.print ("??"); перерыв; } Serial.println ("g"); } установка void (void) {#ifndef ESP8266 while (! Serial); // для Leonardo / Micro / Zero #endif Serial.begin (9600); Serial.println («Тест акселерометра»); Serial.println (""); / * Инициализируйте датчик * / if (! Accel.begin ()) {/ * При обнаружении ADXL345 возникла проблема… проверьте ваши соединения * / Serial.println («Ой, ADXL345 не обнаружен… Проверьте вашу проводку!»); в то время как (1); } / * Установите диапазон, соответствующий вашему проекту * / accl.setRange (ADXL345_RANGE_16_G); // accept.setRange (ADXL345_RANGE_8_G); // accept.setRange (ADXL345_RANGE_4_G); // accept.setRange (ADXL345_RANGE_2_G); / * Отображаем основную информацию об этом датчике * / displaySensorDetails (); / * Отображение дополнительных настроек (за пределами sensor_t) * / displayDataRate (); displayRange (); Serial.println (""); } void loop (void) {/ * Получить новое событие датчика * / sensor_event_t event; Accel.getEvent (& событие); / * Отображение результатов (ускорение измеряется в м / с ^ 2) * / Serial.print ("X:"); Serial.print (event.acceleration.x); Serial.print (""); Serial.print ("Y:"); Serial.print (event.acceleration.y); Serial.print (""); Serial.print ("Z:"); Serial.print (event.acceleration.z); Serial.print (""); Serial.println ("м / с ^ 2"); задержка (5000); }

Шаг 6: тестирование

Тестирование
Тестирование
Тестирование
Тестирование

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

2. Наблюдайте за изменением значений в процессе сверления, что можно увидеть на последовательном мониторе и последовательном плоттере.

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

Шаг 7. Проблема

Поскольку установка должна быть установлена на станке с ЧПУ, проводные соединения могут ослабнуть из-за вибрации.

Шаг 8: решение

Решение
Решение
Решение
Решение

Чтобы решить эту проблему, я спроектирую дочернюю плату для NodeMCU с помощью инструмента EAGLE CAD.

Соответствующая схема и макет платы показаны на изображениях.

Для изготовления этой платы мы должны отправить производителю файлы Gerber. К файлам Gerber предоставлен доступ.

Шаг 9: загрузка герберов на LionCircuits

Загрузка герберов на LionCircuits
Загрузка герберов на LionCircuits
Загрузка герберов на LionCircuits
Загрузка герберов на LionCircuits

Я загрузил файлы Gerber на платформу LionCircuits.

В настоящее время я пытаюсь снова получить доступ к станку с ЧПУ, чтобы обновить результаты.