Оглавление:

MrK Blockvader: 6 шагов (с изображениями)
MrK Blockvader: 6 шагов (с изображениями)

Видео: MrK Blockvader: 6 шагов (с изображениями)

Видео: MrK Blockvader: 6 шагов (с изображениями)
Видео: YEAR IN REVIEW | The WWF in 1996 (Full Year Documentary) 2024, Ноябрь
Anonim
Image
Image
3D печать
3D печать

За эти годы я видел много интересных проектов роботов-вездеходов, напечатанных на 3D-принтере, и мне нравится, как технология 3D-печати помогла сообществу роботов расширить разнообразие в дизайне и выборе материалов. Я хочу внести небольшой вклад в сообщество роботов, опубликовав MrK_Blockvader на Instructable for the Maker Community.

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

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

Запасы

1 * Ардуино Нано

1 * драйвер двигателя постоянного тока

2 * двигатель постоянного тока с коробкой передач

1 * 650 мАч Venom LiPo аккумулятор

2 * 1/24 RC грузовые колеса

2 * белых светодиода

1 * датчик расстояния

1 * датчик цвета

1 * коммутационная плата nRF24

1 * радиоплата nRF24

1 * зуммер

1 * переключатель

1 * 26 августа черный провод

1 * 26 августа синий провод

1 * 22 августа черный провод

1 * 22 августа красный провод

Шаг 1: 3D-печать

Я использую 3D-принтер CEL Robox, напечатанный из углеродного материала, для легкости и прочности. Я приложу файлы STL ниже. Пожалуйста, оставьте комментарий, если у вас есть какие-либо вопросы относительно процесса и настройки 3D-печати.

Шаг 2: подготовьте Arduino Nano

Подготовьте Arduino Nano
Подготовьте Arduino Nano
Подготовьте Arduino Nano
Подготовьте Arduino Nano
Подготовьте Arduino Nano
Подготовьте Arduino Nano
Подготовьте Arduino Nano
Подготовьте Arduino Nano

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

Этот проект включает в себя подключение коммутационной платы nRF24, я сделал это в отдельном проекте под названием NRF24 Wireless LED Box, здесь вы можете найти информацию о том, как подключить коммутационную плату nRF24 к Arduino.

Примечание: я использую более толстый провод 22 AWG для питания Nano и тонкие синие и черные провода 26 AWG для всех других сигнальных целей. Мне нравятся эти провода размером 26 AWG, они гибкие, но в то же время прочные, сочетают в себе лучшее из обоих миров.

Подготовка к работе Arduino Nano:

  1. Припаяйте разъем сигнального контакта к Arduino Nano.
  2. Смочите эти контакты припоем, чтобы впоследствии паять было намного проще.
  3. Припаяйте группу синих проводов к 5V для подачи питания на все датчики и светодиоды.
  4. Припаяйте группу черных проводов к GND, чтобы обеспечить заземление всех датчиков и светодиодов.

Подготовка коммутационной панели NRF 24:

  1. Припаяйте 5 проводов к коммутационной плате nRF24 для сигналов.
  2. Припаяйте 2 провода к коммутационной плате nRF24 для питания.
  3. Проверьте ссылку, чтобы узнать, как подключить коммутационную плату к Arduino.
  4. Припаяйте сигнальные 5 проводов от nRF24 к Arduino Nana.

Подготовка к работе зуммера:

  1. Припаяйте черный провод к одной из ножек зуммера для заземления.
  2. припаяйте синий провод к другой ножке зуммера для управления сигналом.

Подготовка фоторезистора: (имеется диаграмма)

  1. Припаяйте синий провод к одной из ножек фоторезистора на 5В.
  2. Припаяйте резистор 10 кОм к другой ножке фоторезистора.
  3. Припаяйте синий провод между резистором 10K и фоторезистором сигнала.
  4. Припаяйте черный провод к резистору 10 кОм для заземления.

Подготовка светодиодов к работе:

  1. Припаяйте синий провод от положительного правого светодиода к положительному левому светодиоду.
  2. Припаяйте черный провод от отрицательного правого светодиода к отрицательному левому светодиоду.
  3. Припаяйте синий провод к положительному правому светодиоду для контроля сигнала.
  4. Припаяйте черный провод к отрицательному правому светодиоду на массу.

Шаг 3: Подготовьте двигатель постоянного тока, драйвер двигателя постоянного тока и датчики

Подготовьте двигатель постоянного тока, драйвер двигателя постоянного тока и датчики
Подготовьте двигатель постоянного тока, драйвер двигателя постоянного тока и датчики
Подготовьте двигатель постоянного тока, драйвер двигателя постоянного тока и датчики
Подготовьте двигатель постоянного тока, драйвер двигателя постоянного тока и датчики

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

Подготовительные работы двигателя постоянного тока:

  1. Припаяйте черный и красный провод к двигателю постоянного тока.
  2. Оберните конец мотора липкой лентой.
  3. Заполните область горячим клеем, чтобы загерметизировать разъемы двигателя.

Подготовительные работы драйвера двигателя постоянного тока:

  1. Припаяйте 6 сигнальных проводов к драйверу двигателя.
  2. Припаяйте сигнальный провод к правильному контакту на Arduino Nano.
  3. Подключите провода 12 В для питания драйвера мотора от аккумулятора. Убедитесь, что у вас достаточно длинных проводов, чтобы протянуть их под и из задней части робота.
  4. Подключите провода 5 В для питания Arduino Nano от драйвера двигателя.

Подготовка датчика цвета (необязательно):

  1. Припаиваем 2 провода для сигнала.
  2. Припаиваем 2 провода для питания.
  3. Припаяйте провод 1 для управления сверхярким светодиодом.

Подготовка датчика расстояния: (необязательно)

  1. Припаиваем синий провод для сигнала.
  2. Припаяйте еще один синий провод к положительному порту для положительного 3 В.
  3. Припаяйте черный провод к отрицательному порту для заземления.

Шаг 4: Соберите

Image
Image
Собрать
Собрать

После всей подготовительной работы наступил момент, когда все сошлось.

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

Процесс сборки:

  1. Приклейте датчик цвета к корпусу горячим клеем и пропустите провод датчика цвета через канал. (по желанию)
  2. Приклейте электродвигатели постоянного тока к шасси горячим способом, убедитесь, что электродвигатель постоянного тока установлен заподлицо с шасси.
  3. Суперклейте головку Blocvader на шасси и убедитесь, что все провода проходят сквозь нее.
  4. Датчик расстояния горячего клея. (по желанию)
  5. Горячим клеем светодиоды для глаз Blockvador.
  6. Полностью вставьте провода двигателя постоянного тока в привод двигателя постоянного тока и плотно закрутите.
  7. Проложите провода питания 12 В от драйвера постоянного тока вниз и выведите из задней части корпуса для переключателя включения / выключения.
  8. Перед приклеиванием драйвера двигателя постоянного тока убедитесь, что все провода от всех датчиков чистые.
  9. Загрузите тестовый код и устраните проблемы, если они есть.

Шаг 5: Код

Image
Image
Что дальше?
Что дальше?

Базовый код:

Робот, используя свой фоторезистор, определяет уровень освещенности в комнате и реагирует на изменение уровня освещенности с течением времени.

Суть кода:

недействительный цикл () {lightLevel = analogRead (Photo_Pin); Serial.print ("Уровень освещенности:"); Serial.println (lightLevel); Serial.print ("Текущий свет:"); Serial.println (Текущий_свет); if (lightLevel> = 200) {Chill_mode (); analogWrite (eyes_LED, 50); Serial.println ("Режим охлаждения");} if (lightLevel <180) {Active_mode (); analogWrite (eyes_LED, 150); Serial. println ("Активный режим");}}

Роботом можно управлять с помощью контроллера, а переход в частичный автономный режим с помощью контроллера.

Суть кода:

void loop () {int debug = 0; lightLevel = analogRead (Photo_Pin); Dis = analogRead (Dis_Pin); // Проверяем, есть ли данные для приема if (radio.available ()) {radio.read (& data, sizeof (Data_Package)); если (data. C_mode == 0) {Trim_Value = 10; Direct_drive ();} если (data. C_mode == 1) {Trim_Value = 0; Autonomous_mode ();} if (data. C_mode == 2) {Trim_Value = 0; Chill_mode ();} if (debug> = 1) {if (data. R_SJoy_State == 0) {Serial.print ("R_SJoy_State = HIGH;");} if (data. R_SJoy_State == 1) {Serial.print ("R_SJoy_State = LOW;");} if (data. S_Switch_State == 0) {Serial.print ("S_Switch_State = HIGH;");} if (data. S_Switch_State == 1) {Serial.print ("S_Switch_State = LOW; ");} if (data. M_Switch_State == 0) {Serial.println (" M_Switch_State = HIGH ");} if (data. M_Switch_State == 1) {Serial.println (" M_Switch_State = LOW ");} Последовательный.print ("\ п"); Serial.print ("Режим ровера:"); Serial.println (data. C_mode); Serial.print ("L_XJoy_Value ="); Serial.print (data. L_XJoy_Value); Serial.print ("; L_YJoy_Value ="); Serial.print (data. L_YJoy_Value); Serial.print ("; R_YJoy_Value ="); Serial.print (data. R_YJoy_Value); Serial.print ("; Throtle_Value ="); Serial.println (data. Throtle_Value); задержка (отладка * 10); } lastReceiveTime = millis (); // В этот момент мы получили данные} // Проверяем, продолжаем ли мы получать данные, или у нас есть связь между двумя модулями currentTime = millis (); if (currentTime - lastReceiveTime> 1000) // Если текущее время больше 1 секунды с момента получения последних данных, {// это означает, что мы потеряли соединение resetData (); // Если соединение потеряно, сбрасываем данные. Это предотвращает нежелательное поведение, например, если дрон увеличил газ и мы потеряли соединение, он может продолжать полет, если мы не сбросим значения}}

Шаг 6: что дальше?

Этот проект - начало большого проекта, в котором сеть этих маленьких ребят работает вместе для достижения общей цели.

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

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

Сам контроллер - это робот, однако он более пассивен, чем Блокадер. Поэтому контроллер отказался от своей собственной статьи с инструкциями, так что настройтесь на будущий проект; D

Рекомендуемые: