Вопросы робототехникам

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

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

Предистория: у нас есть Ардуино Мега 2560, которая превращена в "Лего-кирпич" и применяется с самодельно оформленными датчиками и моторами в "Лего-исполнении", что позволяет быстро собирать разные платформы на базе Лего-техник, обычного Лего и использовать даже детальки от Лего-бионикл. Недостаток нашего решения проявился пока только 1: большие габариты "Лего-кирпича" при значительной избыточности Мега 2560.

В среднем, на построение робота уходит не более 1/2, а чаще 1/4 от всего набора периферии Меги, что, в совокупности с удачным опытом подключения внешнего ЗУ к Мега128А, натолкнуло на мыслю сделать комплект периферии под этот камень в меньшем типоразмере. Типоразмер УНО - тоже несколько неудачен для применения как "Лего-контроллер".

Предлагается разработать набор плат на базе Atmega128A кратных Лего-размерам (база, а-ля УНО), в т.ч. и расширители памяти для задач роботостроения с использованием Лего деталек.

Если эта тема кому-то интересна, то предлагаю её обсудить тут.

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

если найдется больше 10 человек которым это нужно , я разработаю печатные платы, но в моем топике про 128 и память, я выкладывал плату с типоразмерами уно

https://yadi.sk/d/IK5CJYN5sFXkT

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

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

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Я видел и поэтому и озадачился. У меня есть плата на мосфетных полу-мостах AO4606A с драйвером на 2 мотора (тут была тема в проектах). Её можно развести в типоразмер 40х56 (5х7 лего-дырок) и возможностью зеркального комбинирования 2-х плат (детальки с двух сторон) для создания совмещенного драйвера на 4 DC-мотора. Как вариант, её можно доработать и втыкнуть туда ... (исправлено: пардон ошибся с маркировкой: PCF8574T, 8-и битный расширитель портов с I2C) .. но 5х7 кажется несколько маловато для базовой платы для Мега128А и возможностью программирования через USB, нет?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Присоединюсь, проект интересен.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Если проект интересен, то из готовых "удаленных" модулей есть:

1. Датчик расстояний HCSR-04 в лего-обрамлении и код измерения расстояний по прерываниям PCINT;

2. Датчики препятствий/линии типа KY-033 тоже в лего-обрамлении;

3. Датчики цвета TCS3200 и код работы с ними в автоматном режиме с удовлетворительной коррекцией цвета и люксов освещенности;

4. Самодельные аналоговые датчики линии на базе простых ИК приемников с чувствительностью около 200мВ в режиме "вижу белое";

5. Несколько вариантов DC-моторов в лего обрамлении на базе DC "130-й мотор", в т.ч. и со сменными редукторами и тоже в лего-исполнении.

6. Обрамление для LCD1602 в лего с подключением по I2C.

Картинки что "под боком":

На двух верхних: датчики препятствий/линии, узв. датчик на серводвигателе (не виден), мотор-редуктор в одном корпусе. На нижних - предыдущие варианты лего-оформлений и пример "сменного" редуктора к мотору (редуктор имеет свои лего-крепления, мотор свои и соединены между собой), почему выкладывается в перевернутом виде - так и не понял. :)

Тут наглядно видно, что вся моща Меги - не использована, а габарит "кирпича" - великоват.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Как понимаю, Меги 128А должно вполне хватать для задач "самокатных тележек" и этот камень как-то незаслуженно пропущен в линейке Ардуин, а промежду тем, вопрос нехватки ОЗУ на нем решается и легко. Отсюда и мое желание "переехать" на этот камень. Удаленная периферия - есть, нет платы самой 128-й меги в "лего-формате" (размеры сторон кратны 8мм).

Последний момент важен, и на фото хорошо видно, как пришлось "подрезать и надставлять" плату меги2560 .. и с платами от УНО - "такая же фигня". :(

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

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

1. Можно ли развести ATmega128A в размере платы 40х56мм (5х7 лего-дырок) так, чтобы её можно было бы питать от батареек-аккумуляторов-usb (6-15в) и программировать через usb-порт с компьютера, в смысле без программатора (как ИДЕ или как-то по-своему)? Да .. размещение деталек только на одной стороне платы. С обратной, есть идея разместить расширенную память.. :)

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

можно, ведь ProMicro имеет все описанное при меньших размерах.

А какой смысл брать ATmega128A с урезаннной памятью и потом расширять память внешней  микрухой, которая место занимает?

Есть 2560 в форм-факторе Uno (недавно обсуждали), наверняка есть и разводка платы под нее.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Ну .. я тут поигрался с Мега2560, правда от Ардуино .. в ней пичалька: очень большой габарит платы при отсутствии 16 очень даже нужных ножек. В формфакторе UNO я видел, но цена больно конская ради экспериментов .. что-то за 1500рублев помнится было. Ну и сам формфактор UNO "ни 2 ни полтора" .. там 3мм лишних для лего размеров, отпиливать неможно, смотрел уже, своя УНО валяется. И под размер коробок для аккумов он не очень-то ложится (4АА: 56х64мм можно упихать, свои в лего такие.. но 4АА - "маловато", надо смотреть под 3х18650 Li-ion или модельные 3s2p ..).

Ну и хочется поменьше формфактор. Вот, пока пришел к этому: 40х56 или 32х56 с последующим "двойным размером" в 56х64мм или 80х56мм.

В последствии (если наберется круг заинтересованных) можно и мега2560 развести .. я вот тут http://ru.aliexpress.com/store/product/ATXMEGA128A1-AU-in-stock-can-pay/... сегодня наткнулся на ATxmega128A1U-AU по цене меги 2560 .. заинтриговало, однако.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Ну и по поводу расширения/урезания памяти .. урезание с 8к до 4к .. без расширения, не так критично, ибо урезается И периферия тоже .. а вот расширение с 4/8к до 32к/512к .. это как-бы иной круг задач. Вовсе иной. :)

Нашел вот это у одного продавана, теперь гадаю .. брать или нет:

1. http://ru.aliexpress.com/item/ATMEGA128A-AU-ATMEGA128-TQFP64/32630060233.html .. партия 10шт. 624руб. (62.40/шт)

2. http://ru.aliexpress.com/item/20pcs-lot-74HC573D-SOP20-SN74HC573D/32476515022.html защелки, партия 20шт. 248руб (10.24/шт)

3. http://ru.aliexpress.com/item/10pcs-lot-in-stock-can-pay-HM628512-SOP/32626199343.html память 512к х 8, 10шт. 414руб. (41.40/шт)

4. http://ru.aliexpress.com/store/product/10pcs-lot-CH340G-SOP16-USB-to-ser... CH340g .. по 23руб/шт.

.. собственно "комплект" на 10 плат с памятью в 512 килов ..

 

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Итого, пока вижу себе плату с ATmega128A примерно так (размер платы 40х56мм - меньше не получается при однорядном расположении контактов):

1) короткая сторона1: ADC3, ADC2, ADC1, ADC0, TOSC1, TOSC2, OC0, T3, ICP3, OC3A, OC3B, OC3C, Vcc, GND (всего 14шт = 35.56мм)

2) короткая сторона2: ADC7, ADC6, ADC5, ADC4, AREF, T2, OC2/OC1C, T1, ICP1, OC2/OC1C(2), OC1B, OC1A, Vcc, GND (всего 14шт = 35,56мм)

3) длинная сторона 1: (Vcc, GND, RX0, TX0, XCK0), (Vcc, GND, RX1, TX1, XCK1), (Vcc, GND, SCL, SDA), (VCC, GND, SS, SCK, MOSI, MISO, RESET, PEN) .. т.е. группировка "по интерфейсам" с питанием. Тут 22 контакта (55,88мм)

4) длинная сторона 2: Vin(6..12в), (X-bus шина AD0..7, A8..15, RD, WR, ALE), Vcc, Gnd. .. 22 контакта (55,88мм)

Идея в следующем: разделить на 2 короткие стороны как входы, так и управляющие выходы (ШИМ) примерно поровну, и все интерфейсы вынести на отдельную сторону. Интерфейс к памяти на отдельной стороне, что позволяет выделить расширение памяти на отдельную плату 40х56мм и подцеплять её или рядом, увеличивая общий габарит до 80х56 или "под плату" корпусами наружу (зеркально).

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

Итого, на плате нет крупногабаритных разъемов даже microUSB, все выходы на линейках с шагом 2.54мм. На плате - сама Мега128А и стабилизатор питания и развязкой 5в - Vin, кнопка reset и кварцевая обвязка.

Принципиальные схемы нашел, попробую развести.

Как Вам такой вариант платы? Интересны мнения, предложения, критика и пожелания .. изменяемо всё, единственное что мне важно сохранить - габарит платы кратный 8мм.

P.S. Кстати. При двухрядном расположении контактов на плату можно развести и Мега2560 .. :)

reticular
Offline
Зарегистрирован: 09.06.2016

интересно на чем вы програмируете свою МЕГУ что памяти не хватает

(для примера скажите какой максимальный объем памяти вы смогли использовать в своих программах)

просто может не нужно такой огород городить а достаточно про-мини ардуинки миниатюрной с 2к ОЗУ

 

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

С, Asm .. тут есть моя библиотека для работы с пинами, АЦП, ШИМ, I2C .. arhat.h .. имитация Ардуино ИДЕ в режиме 1 функция = 1 команда ЦПУ. Некоторые вот опять скажут что рекламирую .. :)

В части управления периферией, внутренней памяти хватает "с избытком" - это факт. Но вот по части построения сложных алгоритмов, в частности робот-лабиринтщик, запоминающий размещение препятствий и ищущий оптимальную траекторию движения .. уже только для "простых лабиринтов". Оцифровать с достаточной точностью, скажем комнату 20кв.м. с находящейся в ней мебелью .. увы, "маловато".

Ну и даже на 32кб уже вполне можно ставить тот или иной RTOS со всеми вытекающими последствиями, а на 512кб .. :)

P.S. ребенок больше использует Ardublock и ДРАКОН (в приложении к arhat.h), но ему памяти тоже пока хватает.

P.P.S. Ну и как-бы задача ставится несколько ширшее: сделать блок управления, позволяющий "оживлять" типовые Лего-техник наборы. А тут важен именно габарит плат и всего блока. Скажем блок размерами 6х8, 7х9 лего-дырок ещё можно втиснуть в кабину какого-нибудь крана (42009) или вездехода (42038) или автомашинки (42029) .. то вот имеющийся блок 10х15 лего-дырок на базе мега2560 .. ни лезет. Впрочем как и Лего-майндштормовский "кирпич" тоже, если и лезет, то в сильный натяг.

Конечно, расширенная память требуется далеко не всем .. ну так поэтому и проектирую как "съемную" ..

Тема создана с желанием найти тех, кому такая разработка интересна и кто впоследствии сможет приобрести оставшиеся "9 комплектов" из ссылок выше, если их заказывать (мне или тому кто будет паять это из энтузиастов). :)

Есть заинтересованные?

 

a5021
Offline
Зарегистрирован: 07.07.2013

А внешней медленной памятью для этих лабиринтов никак не обойтись? Типа, толстого чипа с флешем или сд-карточокй? Просто рама в таких объемах на таких девайсах как-то уж слишком "инородно" выглядит.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

То есть, Вы предлагаете роботу-пылесосу при перемещении по хатке тормозить, выгружать очередной кусок с последовательного хранения, убеждаться что "не тот" и ковырять следующий? А если "стол подвинули", то тыкаться датчиком и с теми же последствиями соображать в какой кусок флеша теперь это надо перезалить, переместив/подвинув/пропустив то что там уже есть, так чтоли?!?

.. а у ребенка есть ещё пожелание, чтобы оно "разговаривало" по теме движения .. тоже "выливать из флеша"? Так МК больше ничем и не сможет заниматься как сливать туда-сюда куски с последовательного хранения .. :)

ну и вопрос этой темы шире:

Есть ли заинтересованные в наличии небольшой платы (40х56мм) на базе ATmega128A и набора устройств к ней (память, драйвер DC моторов, етс.) в том же самом формате (стекируемые)?

a5021
Offline
Зарегистрирован: 07.07.2013

Arhat109-2 пишет:

То есть, Вы предлагаете роботу-пылесосу при перемещении по хатке тормозить, выгружать очередной кусок с последовательного хранения, убеждаться что "не тот" и ковырять следующий? А если "стол подвинули", то тыкаться датчиком и с теми же последствиями соображать в какой кусок флеша теперь это надо перезалить, переместив/подвинув/пропустив то что там уже есть, так чтоли?!?

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

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Ну .. давайте скажу иначе. Эта тема для тех, кому интересны МК ATmega128A, ATmega2560 полностью и на компактной плате,  в части их периферии и ресурсов и, кому полезна память, доступная компилятору напрямую, в виде переменных, структур, массивов и объектов. А не как "внешнее ЗУ для хранения".

Иначе тут очередной холивар - неизбежен, поскольку зоопарк камней велик и даже очень велик. А равно как и способов их применения и доступной к ним периферии.

reticular
Offline
Зарегистрирован: 09.06.2016

ATmega128A я распаивал на такую платку:

http://ru.aliexpress.com/item/5Pcs-QFP-TQFP-FQFP-LQFP-32-44-64-80-100-To...

 

вот еще похожий коллега, любитель Лего и Ардуино:

https://geektimes.ru/post/277580/

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Есть и ещё Ардуино-любители-Лего, только вот ссылок не сохранял .. подходов в целом 2:

1. Использовать стандартные детали, компенсируя расхождения в размерах детальками от обычного Лего. Примерно как тут. Достоинство в том, что "ничего не портится окончательно" и в любой момент можно изделие разделить на составные части в их оригинальном виде. Недостаток - тут же: все получается крайне ненадежно и болтается и/или приходится изобретать разного рода "прокладки" и в конечном счете все безмерно растет в габаритах. Даже на вашей ссылке хорошо видна цена такого "обрамления" (сравните с конструкциями Лего-майндшторм). Ну и "держится" вся эта конструкция "из рук вон плохо" (не дай бог уронить со стола или даже стула, а порой разваливается прямо в руках, если взялся "не так").

Этот "этап" мы проходили примерно год назад.. :)

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

Достоинство подхода в том, что детальки точно встают в лего размеры и сами могут быть "несущей частью", что резко упрощает и уменьшает конструкции. Но тут есть много "подводных" камней, потому как лего-типоразмеров несколько и они сочетаются друг с другом по хитрым законам (ну не было математиков у Лего, способных запроектировать непротиворечивый набор деталек .. типа Рубика).

Так корпус для 130-го мотора мне пришлось переделывать трижды, чтобы он мог легко вставать как в обычное Лего, так и в Лего-техник и их сочетания .. оказалось "не всё так однозначно" .. :) Зато теперь, имеем Лего-моторы по выходной мощности вполне сопоставимые с Lego-motor EV3, но имеющие большую скорость вращения (550rpm при 2.4кг*см, против 175rpm при 4кг*см) при чуть меньших габаритах и вдвое(!) меньшем весе (42гр против 81гр).. но без встроенного энкодера, который у нас навешивается отдельно на любую ось Лего.

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

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Подкину ещё картинок в тему:

Мега 2560 отдельно от батарейного блока и драйвера моторов и датчик цвета TCS3200 в лего оформлении. Текущая версия.

Один из первых "миникаров". Мотор + батарейный блок на 2АА (первые попытки второго подхода) :)

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

А-а-а .. нашел готовые платы 30.5x40.64мм .. crumbuino зовется. Кстати, их тут не так давно обсуждали оказывается. Посмотрел, "допилить" до размера 32х40 вполне можно.

В общем, тему можно закрывать .. тем более, что наплыва желающих я как-то не вижу. :(

P.S. "Всё украдено до нас"..

DmitrIvanov
Offline
Зарегистрирован: 08.07.2016

Круто, молодцы  ребята!!!!