ТавроФорум

ТавроФорум (https://forum.tavria.org.ua/index.php)
-   Хобби (https://forum.tavria.org.ua/forumdisplay.php?f=29)
-   -   Кружок ARDUINOистов (https://forum.tavria.org.ua/showthread.php?t=91500)

DVR 30.09.2016 08:41

Кружок ARDUINOистов
 
Го, я создал.

DVR 30.09.2016 08:45

Есть задача - обучать ребят пользованию этой платформы. Но не знаю с чего оптимально начинать.
Купить готовые наборы и по инструкции изучать базовые вещи. Или собрать свой набор с определенными датчиками. Кто в теме, расскажите что лучше.

ElectricMobile 30.09.2016 18:39

На алі набір 100500в1 за 25-30 баксів достатньо для старту...

Kino 30.09.2016 20:34

Лично моя рекомендация - купить к плате программатор и писать на avrstudio, iar, cvavr. Начать на той-же студии с ассемблера, пару месяцев, изучить систему команд, как устроен стек, обращение к памяти через регистры x,y,z. Когда это понимаешь, то тогда легче отлаживать программы написанные на Си.

А если честно, то нынешнему поколению надо уже начинать с малинки (это если миниПК) или с армов. СТМ сразу в жопу. Есть LPC и MKL.

Yurasvs 30.09.2016 22:30

А чем STM32 не ARM? И вообще, какая разница, какой камень, если программишь на Си? Сушить мозги ассемблером в эпоху тактовых частот десятки-сотни мегагерц и объемов флеши десятки килобайт нет никакого смысла, только охоту у новичков отбивать. Критичные к скорости участки кода надо стараться делать аппаратными возможностями камня, а если таковых нет, брать другой камень. Просто начинающий должен определиться, что ему ближе, какая область. Может он хочет делать приложения для ведроидов, тогда ему Ява нужна, а может управлять какими-то механизмами или процессами в реалтайме, тогда уж микроконтроллер или ардуина на его основе.

DVR 30.09.2016 22:40

Ну как бы да, надо полегче. Открываем скоро социальный проект - центр развития молодежи. Купим немного инструмента и дети/подростки будут самостоятельно учиться. Я пока не понимаю кто к нам будет ходить и с каким уровнем знаний. Отсюда и вопросы, использовать стартовый набор или собирать кастомный для робота или РУ машины.

Kino 30.09.2016 22:49

Цитата:

Сообщение от Yurasvs (Сообщение 3441842)
А чем STM32 не ARM?

А где я написал что STM32 не ARM? Я написал ну его "в жопу". И ваще, я если честно за посление десять лет устал от этого говна - тот проц арм, тот проц не арм... повторяю в последний раз, АРМ это не проц, это не производство, это фирма из теоретиков-математиков, которая разрабатывает ядро на бумаге и продает его фирмам, производящим чипы. Усекаете? На фирме АРМ нет ни одного паяльника. Так вот, купив это ядро и связав со своей переферией - у СТМ получлось хуже всего. Там половина переферии не работает как надо.

Цитата:

Сообщение от Yurasvs (Сообщение 3441842)
И вообще, какая разница, какой камень, если программишь на Си? Сушить мозги ассемблером в эпоху тактовых частот десятки-сотни мегагерц и объемов флеши десятки килобайт нет никакого смысла, только охоту у новичков отбивать.

Это ты говоришь когда знаешь как оно работает. Так вот начав с Си, никода не узнаешь. Но если для 86 и Винды это побоку, то для мк это критично.

Цитата:

Сообщение от Yurasvs (Сообщение 3441842)
Может он хочет делать приложения для ведроидов, тогда ему Ява нужна, а может управлять какими-то механизмами или процессами в реалтайме, тогда уж микроконтроллер или ардуина на его основе.

Тю блин, что и требовалось доказать. Сам ответил на свой вопрос.

fox_12 19.11.2016 17:59

Вложений: 1
Arduino хорошая вещь. Заказывал на seeedstudio аналог + шилд с ethernet - вешал датчик DS1820 и логировал температуру в помещении и на улице на xively.com
Потом еще делал проект на ардуино для заказчика из Австралии. Там для теплицы автоматика - датчики влажности, барометры, температуры, освещенности, и даже силы ветра - все порты заняты были. Жаль в железе так и не получилось все отладить - не все датчики были под рукой, а там и АТО началась...
На Али заказал Raspberry Pi 3 за 2700 р - на нем уже полноценные проекты под веб гоняю..

valerius 21.10.2017 22:05

подкину дровишек, я так понял на ардуино и ЭБУ для авто можно собрать

Yurasvs 21.10.2017 22:26

Зачем? Исполнение Ардуин не соответствует жестким автомобильным условиям, комплектующие как правило не индустриального диапазона температур, тем более не милитари. Разводка плат не помехоустойчивая из за длинных дорожек к гребенкам разъемов. Даже если сваять софт и запихать все это в герметичный корпус, получится гораздо менее надежно, чем промышленный ЭБУ. Да и не понравились мне эти Ардуины своей идеологией, ихняя идиотская "Ардуино ОС", зашитая в бутлоадер кристалла, слишком дохрена ресурсов микроконтроллера бездарно транжирит, вынуждая брать более навороченные и дорогие камни даже для простейших задач. Такое мнение у меня сложилось после того, как я помог сделать пару простых проектов одному студенту-практиканту. Этого оказалось достаточно, чтобы сильно невзлюбить Ардуины. Хотя в свой очередной проект я таки поставил Ардуино Уно, лень было самому плату паять. Но сразу же удалил оттуда Ардуиновский загрузик и общаюсь с процом через ISP как обычно, Ардуиной там пахнуть перестало. Но это будет работать в комнатных условиях, совсем другие требования...
З.Ы. Открытых проектов самодельных ЭБУ на микроконтроллерах в сети пруд пруди, в том числе с онлайн тюнингом и ШДК. Собирайте любой и наслаждайтесь. А Ардуина там лишняя, она предназначена больше для лабораторных экспериментов и обучения студней, но не для ответственных боевых применений.

soladko 12.11.2017 15:18

Цитата:

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

Yurasvs 12.11.2017 15:45

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

soladko 13.11.2017 13:21

вон оно как! я чето-то такое подозревал, но гнал "глупые мысли", типа да не, так никто не делает. Зеленый был, шо взять.....А так может интерес бы во что-то таки перерос.

AndrewD 09.01.2018 14:33

Джентльмены. Кто силен в ардуино, помогите запилить охотничью камеру (она же "фотоловушка"). Камера, датчик движения, GSM/GPRS модуль, аккум. При наличии движения камера делает снимок (серию снимков) и отправляет на почту (или на сервер).

Искал в нете, не нашел. Если кто знает где лежит подобный проект, ткните, пожалуйста.

Мерси.

Kino 09.01.2018 15:00

рубаха у дуньки завернется такой объем обрабатывать.

AndrewD 09.01.2018 15:46

Ну, есть такого плана система, только делает снимок по команде (входящая смс). Но там не нашел подробного описания.

Kino 09.01.2018 16:16

Та понятно что есть, камера с uart выходом, ардуина только и занимается перенаправлением данных из камеры в gms модуль. Только это всё время, ну конечно зависит от разрешения камеры, но все же.

AndrewD 09.01.2018 16:25

Как говорил Лаврентий Палыч: "Попытка - не пытка".

Kino 09.01.2018 16:55

Зачем попытка, время можно посчитать. С камерой определились?

AndrewD 09.01.2018 17:18

Я знаю есть ардуиновский модуль камеры OV 7670. Но не до конца понимаю алгоритм работы. Там есть, типа, функция обнаружения движения в кадре и делается снимок (т.е. можно обойтись без датчика движения). Но не пойму, она постоянно пишет или просто мониторит?

Хз. можно ли прикрутить что-то стороннее чуть более качественное.

Kino 09.01.2018 17:35

Сомневаюсь что эта камера умеет делать снимки. Да и не надо, лучше внешний PIR повесить и найти камеру с возможностью вывода снимка уже в формате JPEG. Куда быстрее будет.

soladko 09.01.2018 21:46

был у меня регик, который якобы на движение реагировал. А на самом деле по ощущениям реагировал на изменение средней яркости по экрану, но не отнюдь на перемещение пикселей.

vics13 18.10.2018 22:04

А от скажіть мені гуру....
Роблю перший в житті прожект. На ардуіно. Доволі об"ємний.
І треба обробляти 4 кнопки для керування пристроєм. І відповідно робити їм дебаунс. Кнопки висять на одному порту. Кошерно буде щоб не витрачати зайвий час на обробку читати порт і викликати потрібні функціїї тільки у разі коли на порту щось змінилося?

Yurasvs 18.10.2018 22:41

Ардуино - страшная штука для отравления мозгов. Начинать с Ардуины категорически не советую. Лучше программировать на нормальном Си с помощь любого компилятора (IAR, Keil, Icc, GCC) и заливать готовый Хекс в Ардуину с помощью ее же загрузчика. Сама жесткая структура скетча и занятость многих важных ресурсов проца под собственные нужды "Ардуино ОС" сильно мешают жить. Например, из всего трех встроенных таймеров Меги 328, которая стоит в Ардуино Уно, один занят под системные нужды, 2 других тоже доступны с некоторыми ограничениями. Но если уж взялись...
Подходов к устранению дребезга может быть много разных. Все зависит от наличия свободных ресурсов скорости выполнения основного цикла и т.д. Проще всего опрашивать кнопки реже, чем раз в 50мс где-то, тогда дребезг будет незаметен. Если важна скорость реакции, лучше опрашивать в прерывании. Эффективный алгоритм антидребезга здесь
http://embedders.org/blog/gdi/debouncing.html
Этот код настолько прост и быстр, что его можно засунуть непосредственно в прерывание , вызываемое по таймеру несколько десятков раз в секунду. Но я обычно в прерывании только определяю, что какая-то из кнопок изменила положение (неважно какая, сравниваю со старым значением все биты сразу в одно действие). При обнаружении изменения выставляю флаг, который неспешно обрабатывается и сбрасывается основным циклом, он уже разбирается , что именно нажато и что надо с этим делать.

vics13 19.10.2018 13:01

Цитата:

Сообщение от Yurasvs (Сообщение 3677762)
Ардуино - страшная штука для отравления мозгов. Начинать с Ардуины категорически не советую. Лучше программировать на нормальном Си с помощь любого компилятора (IAR, Keil, Icc, GCC) и заливать готовый Хекс в Ардуину с помощью ее же загрузчика. Сама жесткая структура скетча и занятость многих важных ресурсов проца под собственные нужды "Ардуино ОС" сильно мешают жить. Например, из всего трех встроенных таймеров Меги 328, которая стоит в Ардуино Уно, один занят под системные нужды, 2 других тоже доступны с некоторыми ограничениями. Но если уж взялись...
Подходов к устранению дребезга может быть много разных. Все зависит от наличия свободных ресурсов скорости выполнения основного цикла и т.д. Проще всего опрашивать кнопки реже, чем раз в 50мс где-то, тогда дребезг будет незаметен. Если важна скорость реакции, лучше опрашивать в прерывании. Эффективный алгоритм антидребезга здесь
http://embedders.org/blog/gdi/debouncing.html
Этот код настолько прост и быстр, что его можно засунуть непосредственно в прерывание , вызываемое по таймеру несколько десятков раз в секунду. Но я обычно в прерывании только определяю, что какая-то из кнопок изменила положение (неважно какая, сравниваю со старым значением все биты сразу в одно действие). При обнаружении изменения выставляю флаг, который неспешно обрабатывается и сбрасывается основным циклом, он уже разбирается , что именно нажато и что надо с этим делать.


Для першого разу ардуїна проканає. У мене Мега2560. А код тупо не влазить в Нану чи Уно. Займатися ж перепилюванням готової ліби, яка вирішує 80% моїх потреб немає сенсу. Та й зайнятість критичних ресурсів якось не особливо парить. Мега2560 зараз працює в N2k мережі де є 2 лоріковські голови, Point-1, моторгайд, ходовий двигун Ямаха, датчик залишку і розходу палива. І при цьому сама є нодою і шле підтасовані дані в мережу. Ну ще для крокового двигуна тікає таймер 1000 разів за 10-30 сек.
Так от чому ж я і запитав. В цьому перериванні таймера просто визначати стан порту із кнопками а потім вже не поспішаючи вияснити шо було натиснуто і зробити дебаунс. Тим більш в час коли натиснута кнопка основна діяльність припиняється до встановлення нових параметрів.


Текущее время: 09:16. Часовой пояс GMT +3.

Перевод: zCarot Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.