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

Маленький вездеход

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

Arduino Nano R3
× 1
Макет (общий)
× 1
Перемычки (общие)
× 1
Ультразвуковой датчик - HC-SR04 (общий)
× 1
Колесо Adafruit для сервопривода непрерывного вращения FS90R
× 2
Микро сервопривод непрерывного вращения Adafruit - FS90R
× 2
LED (общий)
Любой цвет. Просто чтобы развлечься и моргать, пока она кружится
× 2
Держатель батареи 4xAA
Я использовал цилиндрический держатель батареи ... Это только для справки.
× 1
SparkFun Ball Caster Metal - 3/8 "
× 1
Пластиковый контейнер
Как дешевая посуда или 500-граммовая коробка для журналов.
× 1
стикеры
Это всего лишь пример, показывающий, какие стикеры я имею в виду ...
× 1

Необходимые инструменты и машины

Пистолет для горячего клея (общий)
нож для ковра

Приложения и онлайн-сервисы

IDE Arduino

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

Фон

Мой племянник (9 лет) и моя племянница (7 лет) совершенно сошли с ума, когда они увидели видео робота для уклонения от препятствий, который я построил некоторое время назад.

Учебник для этого, к сожалению, никогда не появится, так как он появился еще до того, как мой жесткий диск умер и я узнал о преимуществах резервного копирования, DropBox, GitHub и т. д. :)

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

Шасси представляет собой коробку, в которой изначально хранились крабовые палки. Оказывается, размер был просто идеальным. (Спасибо, папа, что съел их у полного ящика:D) Контейнер маргарина, вероятно, также будет подходящего размера.

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

С радостью сообщаю, что медицинская аптечка, которая была у меня в резерве, все еще не использовалась. :)

Но повторим еще раз, ВЫ - взрослый!

Схема

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

Для детей ... Я все время говорю это, но среди «детей» были моя сестра (35 лет) и моя мама (65 лет), которым обоим понравился полдень, посвященный роботам и ремеслам. настоящие дети. :)

Поэтому для своей аудитории я распечатал изображение на странице формата А4, пытаясь сохранить масштаб макета 1:1 с реальным миром, и дал им все перемычки правильного цвета и длины.

Как только схема будет собрана, просто загрузите программу в Arduino. Я включил в код комментарии, которые помогут вам немного подправить код, если вам это нужно. Если все подключено правильно, сервоприводы должны начать вращаться, а светодиоды будут мигать. И если вы поместите руку перед датчиком, один сервопривод остановится, а другой на короткое время начнет вращаться в другом направлении.

Все готово!

Сборка

Пришло время взять ваше «шасси» и проделать в нем дыры.

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

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

С помощью небольшого сверла просверлите 2 маленьких отверстия для светодиодов.

Внизу коробки, по направлению к задней части, вкрутите колесико (или приклейте его горячим клеем).

Теперь вы готовы положить все в коробку и приклеить ее горячим клеем.

Установите колеса на сервоприводы, как только клей застынет.

Украшаем шкатулку! (И разместите на них картинки! Было бы здорово!)

Вставьте батарейки и наблюдайте, как маленький вездеход беспорядочно перемещается по комнате, пока батарейки не разрядятся. Или вы устали от шума. Или собака овладевает им! :D

Код

  • LittleRover
LittleRover Arduino
Это версия кода 4-контактного ультразвукового датчика
 #include  / * Если у вас датчик только с 3-мя контактами, раскомментируйте строку 6 и закомментируйте строку 7 * /// int distanceR =A0; // Расстояние пиннт триггера =6; // Триггер pinint pingDelay =10; // длина импульса ультразвукового датчикаint distanceR =A0; // Эхо pinint led1 =8, led2 =9; // LEDsServo leftPower; Servo rightPower; unsigned long flashTime; unsigned long nextSensorTime; float preventleDist =0.0f; void setup () {//Serial.begin(115200); leftPower.attach (3); rightPower.attach (5); leftPower.write (90); rightPower.write (90); pinMode (led1, ВЫХОД); pinMode (led2, ВЫХОД); задержка (1000);} пустая петля () {светодиоды (); / * Это предотвращает слишком быструю разрядку батареи датчиком за счет ограничения проверок до 5 раз в секунду. Вы можете увеличить это число, чтобы проверять реже, но тогда он может упасть в стену ... * / if (millis () - nextSensorTime> 200) {nextSensorTime =миллис (); / * Я делаю здесь 2 измерения, потому что иногда датчик сбивается и ничего не возвращает ... * / float reading1 =TakeReading (); задержка (100); чтение с плавающей запятой2 =TakeReading (); Serial.println (чтение1); Serial.println (чтение2); // Затем мы выбираем наибольшее расстояние для чтение1:чтение2; // Если расстояние меньше 10 см, повернуть, иначе ехать прямо. if (препятствиеDist <10.0f) {//Serial.println("turn "); повернуть(); } else {//Serial.println("forward "); вперед(); }}} void LEDs () {if (millis () - flashTime> 1000) flashTime =millis (); если (millis () - flashTime <500) {digitalWrite (led1, LOW); digitalWrite (led2, ВЫСОКИЙ); } иначе, если (millis () - flashTime> 500) {digitalWrite (led1, HIGH); digitalWrite (led2, LOW); }} void forward () {/ * Если вы обнаружите, что ваш робот движется назад, поменяйте местами 135 и 45. * / leftPower.write (135); rightPower.write (45);} void turn () {/ * Если вы хотите, чтобы ваш робот повернулся в другую сторону, раскомментируйте строки 92-93 ниже и закомментируйте 95-96 * / //leftPower.write(90); //rightPower.write(135); leftPower.write (45); rightPower.write (90); delay (350);} float TakeReading () {длинное беззнаковое эхо =0; float result =0.0f; pinMode (расстояние, ВЫХОД); digitalWrite (расстояние, LOW); delayMicroseconds (2); digitalWrite (расстояние, ВЫСОКОЕ); delayMicroseconds (pingDelay); digitalWrite (расстояние, LOW); pinMode (distanceR, INPUT); digitalWrite (distanceR, HIGH); echo =pulseIn (distanceR, HIGH, 38000); результат =эхо / 58,138; вернуть результат;} 

Схема

littlerover_87IypZOgwm.fzz

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

  1. Rover
  2. Атака НЛО!
  3. Цифровые игральные кости Arduino
  4. Огонь из воды
  5. 3D RGB Arduclock
  6. MyRiver
  7. Железный человек
  8. Игра с джойстиком
  9. Найди меня
  10. Роботизированная рука, напечатанная на 3D-принтере Arduino