CUSTOMELECTRONICS.RU
Информационно-учебный блог о разработке электроники
Эл. почта: info@customelectronics.ru

Plotclock: инструкция по сборке робочасов

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

Plotclock от customelectonics

Plotclock от customelectonics

Мы не вносили в конструкцию существенных изменений и все заработало после сборки сразу:

Используемые материалы

Для сборки вам потребуется:

  • Arduino-совместимая плата
  • три сервопривода Tower Pro 9g
  • маркер
  • самодельный адаптер для подключения сервоприводов (или девять перемычек)

1. Вырежьте или напечатайте детали робо-часов

Большинство деталей можно вырезать из оргстекла толщиной 3мм. Для этого вам достаточно переслать pdf-файл автора в любую организацию, оказывающую такую услугу (мы заказывали здесь). При оформлении заказа укажите, что закрашенные черным цветом области нужно углубить на 0,5-1мм — это пазы для качалок. Лучше заказать сразу в двух экземплярах.
Оргстекло достаточно хрупкий материал и мы при сборке поломали некоторые части. Деталь в основании вообще оказалась достаточно хрупкой, хотя ее можно было сделать более массивной. Поэтому немного изменили файл автора вот в этом месте:

Укрепленное основание робо-часов plotclock

Укрепленное основание

Файл в формате *.dwg для реза этой детали можно скачать здесь.

2. Распечатайте на 3D-принтере колпачок

Колпачок для маркера лучше распечатать на 3D-принтере, но можно и вырезать из ластика. В печати на 3D-принтере нет ничего сложного — достаточно найти ребят, которые увлекаются этим у вас в городе. Мы заказывали у наших друзей из хакспэйса MakeItLab. Для этого достаточно отправить им модель в формате *.stl. Обычно они берут 300 рублей за час печати, колпачок напечатался за 10 минут.
Можно, конечно, распечатать робо-часы целиком, но столик для рисования все-равно лучше сделать из оргстекла, либо придется наклеить скотч на шероховатую поверхность распечатанной детали.
Мы сломали зажим для маркера, когда его вставляли, поэтому он напечатан на 3D-принтере.

Детали, распечатанные на 3D-принтере

Детали, распечатанные на 3D-принтере

Новая запчасть даже лучше себя зарекомендовала.

3. Рассверлите все отверстия сверлом на 3мм

Это надо сделать обязательно! Если будете пытаться вкручивать с усилием оргстекло растрескается.

4. Скрутите детали

Среди файлов проекта есть модель сделанная в SkethUp. Скачайте ее и собирайте в точности так как они собраны в этом проекте. Особое внимание обратите на то, где под сервоприводами установлены прокладки и на каком уровне относительно друг друга детали рук.
Шарниры на руках и в основании должны ходить свободно и не раскручивать. Мы поставили контргайки с нейлоновыми фиксаторами. При скручивании постарайтесь найти золотую середину между свободой движения и минимальным люфтом.

5. Скачайте скетч для Arduino

Необходимо скачать файл plotclock_V1_01.ino и загрузить библиотеку Time.h.

6. Приклейте кусок ткани к колпачку двухсторонним скотчем

…или наклейте несколько слоев лейкопластыря, как сделали мы.

7. Подключите сервоприводы к выводам 2,3 и 4

Можно сделать это также как автор при помощи макетной платы. Обратите внимание, что у него на фотографии сервоприводы подключены к выводам 1, 2 и 3.

8. Соберите все вместе

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

Сборка робо-часов

Сборка робо-часов

Не устанавливайте держатель колпачка на этом этапе! Он ОЧЕНЬ хрупкий!

9. Убедитесь, что маркер будет доставать до всех углов рабочего поля

10. Загрузите скетч на плату

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

Калибровка сервоприводов робо-часов

Калибровка сервоприводов робо-часов

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

11. Откалибруйте положение двигателей

Скорее всего у вас они не будут перпендикулярно и в этом нет ничего страшного. Потребуется внести небольшие изменения в начальной части программы:

// delete or mark the next line as comment when done with calibration  
#define CALIBRATION

// When in calibration mode, adjust the following factor until the servos move exactly 90 degrees
#define SERVOFAKTOR 620

// Zero-position of left and right servo
// When in calibration mode, adjust the NULL-values so that the servo arms are at all times parallel
// either to the X or Y axis
#define SERVOLEFTNULL 1900
#define SERVORIGHTNULL 984

#define SERVOPINLIFT  2
#define SERVOPINLEFT  3
#define SERVOPINRIGHT 4

// lift positions of lifting servo
#define LIFT0 1080 // on drawing surface
#define LIFT1 925  // between numbers
#define LIFT2 725  // going towards sweeper

// speed of liftimg arm, higher is slower
#define LIFTSPEED 1500

// length of arms
#define L1 35
#define L2 55.1
#define L3 13.2


// origin points of left and right servo 
#define O1X 22
#define O1Y -25
#define O2X 47
#define O2Y -25

Сначала подберите значения SERVOLEFTNULL и SERVORIGHTNULL таким образом, чтобы в крайнем правом положении качалки приводов были перпендикулярны друг другу.
Затем, меняя SERVOFAKTOR доведите до состоянии, когда качалки всегда будут перпендикулярны друг другу.
Кстати, если нужно поменять порядок сервоприводов, то это делается здесь:

#define SERVOPINLIFT  2
#define SERVOPINLEFT  3
#define SERVOPINRIGHT 4

Параметры LIFT0, LIFT1 и LIFT2 определяют положение высоту подъема маркера — можно скорректировать их позже.
Остальные параметры может возникнуть необходимость править только если вы изменяли размеры конструкции.
Теперь, чтобы запустить сам процесс рисования времени закомментируйте строчку #define CALIBRATION.
После этого часы должны начать нормальную работу. Начальное время задается в функции void setup():

// Set current time only the first to values, hh,mm are needed
setTime(19,38,0,0,0,0);

12. Установите маркер и колпачок

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

Мы будем очень рады, если вы поддержите наш ресурс и посетите магазин наших товаров shop.customelectronics.ru.

Метки: , , Просмотров: 18047