roboforum.ru

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

программа для эмуляции робота

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

Re: программа для эмуляции робота

Сообщение hudbrog » 28 янв 2016, 19:14

А что ты вкладываешь в понятие плюсов? Вот хорошее из интернетов, рекомендации по использованию плюсов под микроконтроллеры: don't use new/delete, avoid exceptions, avoid virtual classes with inheritance, possibly avoid inheritance all together, be very careful with templates, use inline functions instead of macros, and use const variables instead of #defines.
Фактически, остаются статические классы (читай структуры), исчезает весь STL, никакого Boost'а, смарт поинтеров и прочих радостей жизни. Ну и получается у тебя ANSI C с классами.

Понятно, что если ты пишешь под взрослый арм, у которого сотни килобайт памяти - то почему бы нет, можно что угодно юзать. Но смысл? Выгода может появица на ооочень больших проектах..
У меня в голове опилки и длинные слова меня только огорчают.
Аватара пользователя
hudbrog
 
Сообщения: 1585
Зарегистрирован: 14 май 2008, 15:49
Откуда: Москва
ФИО: Алексей

Re: программа для эмуляции робота

Сообщение elmot » 28 янв 2016, 19:35

Вот хорошее из интернетов, рекомендации по использованию плюсов под микроконтроллеры: don't use new/delete, avoid exceptions, avoid virtual classes with inheritance, possibly avoid inheritance all together, be very careful with templates, use inline functions instead of macros, and use const variables instead of #defines.

По правде сказать, весьма спорно. Я бы избегал ромбовидных наследований, переопределенных операций, темплейтов, не налегал бы на деструкторы. Причем в больших плюсах тоже(ну разве что темплейты в больших плюсах можно). Boost и STL не являются частью языка. Но вот наследование, new/delete и лучший контроль за типами могут сильно помочь жить.

сотни килобайт памяти

Вот это точно ерунда. Я применил с++ только однажды, и проект был не так чтобы большой. При переходе с C на С++(наследование захотелось) накладные оказались весьма умеренными, а выигрыш в исходниках - значительный.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: программа для эмуляции робота

Сообщение hudbrog » 28 янв 2016, 19:57

Ну в общем я спорить не буду, ибо на плюсах под микроконтроллеры не писал и использование памяти не мерял. В интернетах таких тестов полно и они показывают, но вопрос их корректности тоже открыт.
Скажем так, С для микроконтроллеров более распространен и во многом его изучение как основа для возможного дальнейшего изучения плюсов - хорошее начало.
У меня в голове опилки и длинные слова меня только огорчают.
Аватара пользователя
hudbrog
 
Сообщения: 1585
Зарегистрирован: 14 май 2008, 15:49
Откуда: Москва
ФИО: Алексей

Re: программа для эмуляции робота

Сообщение Dmitry__ » 28 янв 2016, 20:02

elmot писал(а):наследование захотелось

Да, наследование свойств окошек со всеми перделками и свистелками так необходимы в драйвере двигателей :)
99% людей вообще не умеют использовать наследование. Все ардуиновские исходники это хорошо показывают. Наследование для микроконтроллеров - зло.
elmot писал(а):накладные оказались весьма умеренными, а выигрыш в исходниках - значительный.

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

Re: программа для эмуляции робота

Сообщение Angel71 » 28 янв 2016, 20:51

классы и без наследований полезная штука - нет свистоплясок при именовании. а все эти темы си vs ++ даже не хоилвары, а из пустого в порожнее. и си и плюсы во-первых развиваются, во-вторых активно используются. был бы найден иделаный вариант, осталось бы что-то одно. но за плюшки нужно платить, а там уже каждый выбирает, что ему удобней в каждом случае.
Последний раз редактировалось Angel71 28 янв 2016, 21:09, всего редактировалось 1 раз.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: программа для эмуляции робота

Сообщение Dmitry__ » 28 янв 2016, 21:08

Angel71 писал(а):классы и без наследований полезная штука

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

Re: программа для эмуляции робота

Сообщение Angel71 » 28 янв 2016, 21:10

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

Re: программа для эмуляции робота

Сообщение Dmitry__ » 28 янв 2016, 21:32

Angel71 писал(а):остальное не колышит.

Не попасть тебе в рай ембеддеров :D

Вот смотри, есть такой аттракцион, мозги pic32, быдлокод - шо пипец, патамучта "не колышит". СтОит - шо пипец:


Приходит ТЗ - удешевить все в 10 раз :)
Берем ардуинку за 90р., кста по твоей наводке :crazy:. Переписываем код с 32-х битного 80мгц. kontrollera na 8-ми битный 8-мгц (из-за 3.3 вольта питания нунчаков). Пишем на чистом gcc, Кое-что переводим на асм, получаем все тоже самое, но дешевле в 10 раз. Отмазка - возьми контроллер толще - не катит. Надо мной стояли с битой и ждали результат от 90р. платы :)
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: программа для эмуляции робота

Сообщение Angel71 » 28 янв 2016, 22:34

103c8t6 примерно полтора фантика. букашка 042f4p6 в тссоп20 около фантика. можно и за 50 центов младший арм взять, можно чуть дороже, но и более моднявый. :pardon: смотря чего делать нужно, очень часто на эти все тактики и байтики фиолетово, т.к. их более чем достаточно, т.е. единообразно на фень-хрень "да ты крут, так всё заоптимизил круто, только времени про...".
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: программа для эмуляции робота

Сообщение Mr.Crow » 28 янв 2016, 22:40

hudbrog писал(а):В общем и целом, для работы с МК лучше учить чистый C, а не c++.

А вообще, напишу ща телегу. Про "роботику" =) Если говорить серьезно, то 99% того, что обсуждается на этом форуме к робототехнике имеет, мягко говоря, условное отношение. Все же само направление больше про ТАУ и алгоритмы, нежели про покрутить моторчиками. Если хочется заниматься именно этим, то есть куча симуляторов (о которых как раз изначальная тема), там и Microsoft Robotics Developer Studio, и V-REP, Webots, Gazebo. Большинство умеют симулировать разные кинематические схемы, сенсоры, поддерживают с десяток разных аппаратных платформ, которыми могут управлять из вашего кода...


решил изучать с++ так как это просто дополненая версия "с", а так же хочу поступать на роботику, а там в программе обучения как раз есть изучение с++, так что лучше раньше хоть чутка подучиться
Mr.Crow
 
Сообщения: 49
Зарегистрирован: 26 янв 2016, 17:11
Откуда: Литва
прог. языки: с++
ФИО: Darius Varno

Re: программа для эмуляции робота

Сообщение hudbrog » 28 янв 2016, 22:45

Mr.Crow писал(а):решил изучать с++ так как это просто дополненая версия "с", а так же хочу поступать на роботику, а там в программе обучения как раз есть изучение с++, так что лучше раньше хоть чутка подучиться

Ну я вот, почитав эти доводы, еще раз бы предложил учить чистый ц, а не плюсы. Но это личное мнение исходя из личного же опыта.. больше писать не буду про это =)
У меня в голове опилки и длинные слова меня только огорчают.
Аватара пользователя
hudbrog
 
Сообщения: 1585
Зарегистрирован: 14 май 2008, 15:49
Откуда: Москва
ФИО: Алексей

Re: программа для эмуляции робота

Сообщение elmot » 28 янв 2016, 23:34

Dmitry__ писал(а):
elmot писал(а):наследование захотелось

Да, наследование свойств окошек со всеми перделками и свистелками так необходимы в драйвере двигателей :)

а кто сказал, что это был контроллер движка? Таки обслуживание дисплея и было. не окошки, а экранчики.

99% людей вообще не умеют использовать наследование.

контроллеры-то тут причем?
Все ардуиновские исходники это хорошо показывают.

Все ардуиновские исходники хорошо показывают, что среди ардуинщиков 80% - быдлокодеры. Что с наследованием, что без.
Исходники на PHP показывают тоже самое про говносайтописателей.
Наследование - зло для поколения инстаграм, а не для контроллеров.
elmot писал(а):накладные оказались весьма умеренными, а выигрыш в исходниках - значительный.

Покажи пример штоле...

Не выложено нигде... Постараюсь не забыть.

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

вот это - правда сугубая. но если человек уже знает ООП, то можно с плюсов зайти.

Добавлено спустя 8 минут 39 секунд:
Dmitry__ писал(а):Это просто удобная запись

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

удобная для программиста, который знает, что делает, вне зависимости от размера компьютера.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: программа для эмуляции робота

Сообщение Dmitry__ » 28 янв 2016, 23:56

elmot писал(а):а кто сказал, что это был контроллер движка? Таки обслуживание дисплея и было. не окошки, а экранчики.

Вот это и есть удел наследования, передавать свойства шрифтов :) А кто сказал, что это роботостроение?
elmot писал(а):Так и есть. А С - удобная запись ассемблера. А асм - удобная запись хекса. А хекс - удобная запись бинарника.
А бинарник - удобная запись как электроны по затворам транзисторов флеши распихивать.

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

Ага, который даже не может прочитать листинг своей программы. Наследование -очередная парадигма, которые рождаются и умирают, и которая очень плохо ложится на железяки с ограниченной памятью, отсутствие mmu и.т.д. И никакая сила не заставит эти все узлы появиться в одном чипе. Вон, даже 2мб. озу не могут засунуть в чип уже лет 20 как.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: программа для эмуляции робота

Сообщение Angel71 » 29 янв 2016, 00:06

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

Re: программа для эмуляции робота

Сообщение Dmitry__ » 29 янв 2016, 00:38

Да, да, да, только почему-то когда меняешь плату с пупер sh7021( (SH7000) Series Embedded 32-Bit RISC Controller), с мегабайтом внешнего озу, с плисами для двигателей и lcd, и ставишь вместо всего этого avr БЕЗ ВСЕГО, и станок чпу получает огромную кучу ништякоф. Сказать почему? Правильно - быдлокод против народного открытого grbl :)
Почувствуй разницу:
Изображение
Изображение

Добавлено спустя 4 минуты 50 секунд:
Angel71 писал(а):на чипы с 2мб банально не увидели достаточного спроса. кому сильно нужно было, докидывали рядышком хоть недорогие фрамки, хоть озу/флеш. в младших армах не использовалось, зато в некоторых старших моделях озу/флеш напаивались сверху

Щаззз, внешнее озу говоришь, на частоте процессора? Это проблема совсем другого рода. Интел разрабатывал блекфин для аналогдевиц, и сразу сократила все хотелки, чтоб обрабатывать видео, надо хитро переключать жалкие 300кб. внутреннего кеша L2.
Ты тупо посмотри сколько транзисторов в самом крутом процессоре и сколько транзисторов в самом худом dram :P

Добавлено спустя 6 минут 59 секунд:
Intel Core i5, Количество транзисторов: 995 миллионов.
995000000 /8 бит / 2^20 мегабайт /6 транзисторов на бит = 19мб. dram без учета дешифраторов адреса и логики :D
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Пред.След.

Вернуться в Новичкам или основы основ роботостроения.

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

Сейчас этот форум просматривают: GoGo.Ru [Bot] и гости: 14