Технический форум по робототехнике.
AndreyMG » 04 янв 2017, 17:44
Добрый день!
С миром робототехники и ардуино я знаком совсем недавно, буквально 3-4 дня.
Но имею некоторый базовый набор знаний, который позволил мне сделать несколько программ из разряда мигания диодом и т.п. не заглядывая в туториалы.
Собственно имею ряд вопросов, возможно глупых, но прошу знатаков не ругаться, т.к. только вникаю в данную тему.
Программирую на ОС Linux Mint.
1. Среда программирования. Язык программирования C++ является для меня одним из основных на работе, и меня удручает "родная" среда программирования, где лично мне не удалось найти стандартный набор вещей из std, типа vector и т.п.
В связи с этим меня интересует вопрос, какой посоветуете минимальный набор программ/утилит для написания программ на C++(желательно с поддержкой 11 стандарта) для успешной компиляции и прошивки микроконтроллера. Конечно было бы неплохо если бы это была некая надстройка над IDE Eclipse (её я как раз и установил, но не смог так же обнаружить поддержку std::).
2. Напоминаю что вопрос от человека с электротехникой на Вы. Не очень понятен момент. Допустим у меня есть led шкала (на 10 диодов), каждый диод я подключил напрямую к плате (резисторы и т.п. в схеме присутствуют), но я тем самым занял почти все пины на плате, допустим если я захочу добавить ещё 1 шкалу в некоторое абстрактное устройство - я не смогу его подключить к плате?
Т.е. у меня будет по факту 2 шкалы с 10 диодами, итого выходит 20 диодов, на плате явно меньше чем 20 пинов, а мне хотелось бы зажигать определённый светодиод в шкале.
Как обычно решают такую проблемму? (Вопрос немного утрированный, просто интересно на будущеее, возможно я не вижу простого решения в лоб)
Спасибо! Надеюсь найдётся человек, который сможет меня натолкнуть на путь истинный.
RootAdmin » 06 янв 2017, 00:49
Стандартное решение "в лоб" - использовать для управление светодиодами "матрицу". Нужно 20 штук? бСоединяем их в прямоугольную матрицу 4 ряда 5 столбцов. в каждом ряду соединяем аноды, в каждом столбце - катоды. соответственно 5 выводов ардуинки подключаем к столбцам (катодам), ещё 4 выводов - к рядам.
Управляемых - поочередно подавая "1" на ряды, при этом выставляя на столбцах, в тех позициях что должны светиться "0".
Добавлено спустя 8 минут 13 секунд:
Ну и расширять можно - увеличивая количество столбцов/рядов.
Прочие варианты также возможны, микросхемы-расширители например.
А ещё есть - адресуемые светодиоды. С тремя ногами каждый. Питание, земля и данные. тогда для управления сотней светодиодов потребуется всего одна нога.
Добавлено спустя 2 минуты 35 секунд:
Насчет C++ - ничего не скажу, ИМХО в контроллере количество ресурсов не позволит использовать плюсы.
TedBeer » 06 янв 2017, 01:18
AndreyMG писал(а):Как обычно решают такую проблемму? (Вопрос немного утрированный, просто интересно на будущеее, возможно я не вижу простого решения в лоб)
Выбирайте:
1.
LED grid2.
сдвиговый регистр
=DeaD= » 06 янв 2017, 01:58
3. Расширитель портов с интерфейсом I2C (например,
PCF8574, есть даже
готовые мини-платы )
Scorpio » 06 янв 2017, 02:22
AndreyMG писал(а):... не удалось найти стандартный набор вещей ...
Standard C++ for Arduino
dimamichev » 19 янв 2017, 14:13
Вот решил приобщиться к программированию... Проходит время "паялок" на 2-3 транзисторах и микросхемах, грядёт эра простых конструкций на Ардуино...Себе поставил верхнюю планку сделать программу для 4 светодиодных гирлянд (чтоб как у китайцев на 8 программ). Заказал, как мне кажется, то что надо, вспомнил свой "безмашинный школьный курс про алгоритмы" и написал программку по образу и подобию (для начала.., пока плата дойдёт).И всё ничего, но просмотрел соответствующие темы на форуме и стали возникать сомнения - всё ли я правильно сделал? Если не трудно, коллеги, подсобите.
- Вложения
-
- ООН-R3-MEGA328P-ATMEGA16U2-для-Arduino-Совместимый-Кабель-USB.jpg_50x50.jpg (1.41 КиБ) Просмотров: 16731
-
- ООН-R3-MEGA328P-ATMEGA16U2-для-Arduino-Совместимый-Кабель-USB.jpg_50x50 (1).jpg (1.9 КиБ) Просмотров: 16774
-
Madf » 19 янв 2017, 15:46
Ещё нужно правильно выбрать то, чем собираетесь управлять. Тут прямая зависимость: цена/удобство.
dimamichev » 19 янв 2017, 16:15
Вот такую на алиэкспресс заказал... Зря?
- Вложения
-
Dmitry__ » 19 янв 2017, 16:26
Почему зря? Самый классик. Еще закажи
mini pro десяток, они по <100р стОят. Это позволит преодолеть страх потери бойца.
Да и для твоих игрушек будет более подходящий размер.
Еще
проводочков закажи, папа-папа, папа-мама, мама-мама. Очень хорошо отучает паять. Я начинаю забывать про паяльник
dimamichev » 19 янв 2017, 16:39
Понял, закажу...А программа "по русски написана"?
Dmitry__ » 19 янв 2017, 17:20
Ну нормальный код для начала. Только лучше код выкладывать в теге "code"
Назначать состояние "int n = 1;" - лишнее, т.к. потом идет переназначение в "for (n=1...". Правильно будет так: "int n;". Еще для циклов "for" лучше использовать беззнаковые переменные, не "int n;", a "unsigned int n;". Потом это избавит от лишних предупреждений при компиляции. Ну это когда ты слезешь с arduino ide и перейдешь на чистый gcc
Еще, если ты используешь стиль: "for (int k = 1...", то используй этот стиль и для переменной "n".
Еще в ардуинах есть специфика, нужен "void setup()" и "void loop(){}"
Самый лучший путь быстрого старта с ардуиной - перепробовать примеры, начни с примера blink.
Добавлено спустя 4 минуты 27 секунд:Ой, забыл, на arduino mini нет usb/com переходника, нужен отдельный, закажи пару штук. Вообще, usb/com - расходник и нужная штука, у меня их постоянно не хватает...
https://ru.aliexpress.com/wholesale?ltype=wholesale&d=y&origin=y&isViewCP=y&catId=0&initiative_id=SB_20170119045730&SearchText=usb+com+ttl+adapter&blanktest=0&tc=afДобавлено спустя 2 минуты 22 секунды:Для батарейных игрушек используй ардуины про мини на 3 вольта, но у них пониженная частота - 8мгц.
Добавлено спустя 19 минут 50 секунд:Ой, "void setup()" и "void loop(){}" были у тебя, пойду таблеточки от невнимательности приму...
Angel71 » 19 янв 2017, 17:24
8 мгц это печально, есть же повышалки мелкие. за батарейные игрушки руки отпиливать давно нужно, есть же аккумуляторы. даже самые говёно-копеечные nimh прослужат в разы дольше, чем батарейки, а по деньгам разницы почти нет. пальчиковые ещё есть литиевые, давно уже достаточно недорогие, но если с литием кто-то не дружит (перезаряд, переразряд), лучше nimh.
dimamichev » 19 янв 2017, 17:28
Спасибо, пойду разбираться с рекомендациями...
Dmitry__ » 19 янв 2017, 17:29
Angel71 писал(а):8 мгц это печально, есть же повышалки мелкие. за батарейные игрушки руки отпиливать давно нужно
Батарейным я называю все автономное, конечно лучше аккумы. Вот недавно на ардуино мини 3V, ds18b20 и nrf2401 сделал датчик беспроводной. Питается от часовой батарейки. Ну какая наф повышалка dc/dc?
Madf » 19 янв 2017, 19:07