roboforum.ru

Технический форум по робототехнике.

Вопросы новичка.

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

Вопросы новичка.

Сообщение 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 пинов, а мне хотелось бы зажигать определённый светодиод в шкале.

Как обычно решают такую проблемму? (Вопрос немного утрированный, просто интересно на будущеее, возможно я не вижу простого решения в лоб)


Спасибо! Надеюсь найдётся человек, который сможет меня натолкнуть на путь истинный.
AndreyMG
 
Сообщения: 1
Зарегистрирован: 04 янв 2017, 17:31

Re: Вопросы новичка.

Сообщение RootAdmin » 06 янв 2017, 00:49

Стандартное решение "в лоб" - использовать для управление светодиодами "матрицу". Нужно 20 штук? бСоединяем их в прямоугольную матрицу 4 ряда 5 столбцов. в каждом ряду соединяем аноды, в каждом столбце - катоды. соответственно 5 выводов ардуинки подключаем к столбцам (катодам), ещё 4 выводов - к рядам.
Управляемых - поочередно подавая "1" на ряды, при этом выставляя на столбцах, в тех позициях что должны светиться "0".

Добавлено спустя 8 минут 13 секунд:
Ну и расширять можно - увеличивая количество столбцов/рядов.
Прочие варианты также возможны, микросхемы-расширители например.
А ещё есть - адресуемые светодиоды. С тремя ногами каждый. Питание, земля и данные. тогда для управления сотней светодиодов потребуется всего одна нога.

Добавлено спустя 2 минуты 35 секунд:
Насчет C++ - ничего не скажу, ИМХО в контроллере количество ресурсов не позволит использовать плюсы.
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: Вопросы новичка.

Сообщение TedBeer » 06 янв 2017, 01:18

AndreyMG писал(а):Как обычно решают такую проблемму? (Вопрос немного утрированный, просто интересно на будущеее, возможно я не вижу простого решения в лоб)

Выбирайте:
1. LED grid
2. сдвиговый регистр
Аватара пользователя
TedBeer
 
Сообщения: 1129
Зарегистрирован: 08 авг 2012, 00:38
Откуда: Нидерланды, Алмере
Skype: edwbes
ФИО: Эдуард

Re: Вопросы новичка.

Сообщение =DeaD= » 06 янв 2017, 01:58

3. Расширитель портов с интерфейсом I2C (например, PCF8574, есть даже готовые мини-платы )
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Вопросы новичка.

Сообщение Scorpio » 06 янв 2017, 02:22

AndreyMG писал(а):... не удалось найти стандартный набор вещей ...

Standard C++ for Arduino
Аватара пользователя
Scorpio
 
Сообщения: 2669
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

Re: Вопросы новичка.

Сообщение dimamichev » 19 янв 2017, 14:13

Вот решил приобщиться к программированию... Проходит время "паялок" на 2-3 транзисторах и микросхемах, грядёт эра простых конструкций на Ардуино...Себе поставил верхнюю планку сделать программу для 4 светодиодных гирлянд (чтоб как у китайцев на 8 программ). Заказал, как мне кажется, то что надо, вспомнил свой "безмашинный школьный курс про алгоритмы" и написал программку по образу и подобию (для начала.., пока плата дойдёт).И всё ничего, но просмотрел соответствующие темы на форуме и стали возникать сомнения - всё ли я правильно сделал? Если не трудно, коллеги, подсобите.
Вложения
ООН-R3-MEGA328P-ATMEGA16U2-для-Arduino-Совместимый-Кабель-USB.jpg_50x50.jpg
ООН-R3-MEGA328P-ATMEGA16U2-для-Arduino-Совместимый-Кабель-USB.jpg_50x50.jpg (1.41 КиБ) Просмотров: 15516
ООН-R3-MEGA328P-ATMEGA16U2-для-Arduino-Совместимый-Кабель-USB.jpg_50x50 (1).jpg
ООН-R3-MEGA328P-ATMEGA16U2-для-Arduino-Совместимый-Кабель-USB.jpg_50x50 (1).jpg (1.9 КиБ) Просмотров: 15555
программа бег. огней.jpg
Аватара пользователя
dimamichev
 
Сообщения: 1380
Зарегистрирован: 03 янв 2013, 16:27

Re: Вопросы новичка.

Сообщение Madf » 19 янв 2017, 15:46

Ещё нужно правильно выбрать то, чем собираетесь управлять. Тут прямая зависимость: цена/удобство.
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Вопросы новичка.

Сообщение dimamichev » 19 янв 2017, 16:15

Вот такую на алиэкспресс заказал... Зря?
Вложения
плата.jpg
Аватара пользователя
dimamichev
 
Сообщения: 1380
Зарегистрирован: 03 янв 2013, 16:27

Re: Вопросы новичка.

Сообщение Dmitry__ » 19 янв 2017, 16:26

Почему зря? Самый классик. Еще закажи mini pro десяток, они по <100р стОят. Это позволит преодолеть страх потери бойца. :) Да и для твоих игрушек будет более подходящий размер.


Еще проводочков закажи, папа-папа, папа-мама, мама-мама. Очень хорошо отучает паять. Я начинаю забывать про паяльник :)
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Вопросы новичка.

Сообщение dimamichev » 19 янв 2017, 16:39

Понял, закажу...А программа "по русски написана"?
Аватара пользователя
dimamichev
 
Сообщения: 1380
Зарегистрирован: 03 янв 2013, 16:27

Re: Вопросы новичка.

Сообщение 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(){}" были у тебя, пойду таблеточки от невнимательности приму...
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Вопросы новичка.

Сообщение Angel71 » 19 янв 2017, 17:24

8 мгц это печально, есть же повышалки мелкие. за батарейные игрушки руки отпиливать давно нужно, есть же аккумуляторы. даже самые говёно-копеечные nimh прослужат в разы дольше, чем батарейки, а по деньгам разницы почти нет. пальчиковые ещё есть литиевые, давно уже достаточно недорогие, но если с литием кто-то не дружит (перезаряд, переразряд), лучше nimh.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Вопросы новичка.

Сообщение dimamichev » 19 янв 2017, 17:28

Спасибо, пойду разбираться с рекомендациями...
Аватара пользователя
dimamichev
 
Сообщения: 1380
Зарегистрирован: 03 янв 2013, 16:27

Re: Вопросы новичка.

Сообщение Dmitry__ » 19 янв 2017, 17:29

Angel71 писал(а):8 мгц это печально, есть же повышалки мелкие. за батарейные игрушки руки отпиливать давно нужно

Батарейным я называю все автономное, конечно лучше аккумы. Вот недавно на ардуино мини 3V, ds18b20 и nrf2401 сделал датчик беспроводной. Питается от часовой батарейки. Ну какая наф повышалка dc/dc? :shock:
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Вопросы новичка.

Сообщение Madf » 19 янв 2017, 19:07

Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

След.

Вернуться в Arduino и другие Xduino

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron