Змінюй хід війни! Допомагай ЗСУ!

arduino-с чего начать?

🔴 14:41 Повітряна тривога в Харків.обл.
  • 🔴 14:41 Повітряна тривога в Харків.обл.
  • #63
Мысль начала растекаться по древу. Дайте мне опору для решения задумки. Мне надо понять насколько факультативно можно успешно научиться программировать ардуино под несложные (по началу) задачи.Или мне нужен поводырЬ кот поможет сделать быстрый старт малому? Скачал IDE, запустил, открылось окно программы, НО-в папке кроме папки библиотеки ничего нет. А в ней письмецо Информация по установке библиотек:
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
папок должно быть больше.Потихоньку читаем и смотрим-вроде по силам, но пугают что какие-то платы не идут, чего еще ожидать новичку?
 
  • 🔴 14:41 Повітряна тривога в Харків.обл.
  • #64
возьмите платку с ESP32, запишите туда микропитон
ног хватит на много чего
написать программу под то что Вам надо - полчаса после прослушивания десятка видео-уроков
которые есть в сети
у вас под рукой будут вайфай и блютуз, основы работы в сети, периферия,
правильные концепции организации системы в микроконтроллере, работа с файлами, RTC, итд итп

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

но быстро реализованная идея - это уже не ардуино. Это python или lua
 
  • 🔴 14:41 Повітряна тривога в Харків.обл.
  • #65
Изначально Ардуино придумали для "дворников": получить результат в программировании человеком который является не программистом.
Научится программировать микроконтроллеры профессионально, изучив Ардуино,
не получится.
 
  • 🔴 14:41 Повітряна тривога в Харків.обл.
  • #66
о, это уже конкретные советы.В общем есть на чем пробовать.До профессионального программирования далеко, а попробовать этот хлеб есть на чем. Ардуино как-то мне лично ближе. Не все понятно, но обещают много.Посмотрю еще на питон.
 
  • 🔴 14:41 Повітряна тривога в Харків.обл.
  • #67
возьмите платку с ESP32, запишите туда микропитон
ног хватит на много чего
написать программу под то что Вам надо - полчаса после прослушивания десятка видео-уроков
которые есть в сети
у вас под рукой будут вайфай и блютуз, основы работы в сети, периферия,
правильные концепции организации системы в микроконтроллере, работа с файлами, RTC, итд итп

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

но быстро реализованная идея - это уже не ардуино. Это python или lua
Питон и луа - быстрота? по сравнениюс чем?
Если ты не можешь сказать это по английски - ты не сможешь написать это на си(С)
Этот дословный перевод неверен, скорее всего. Суть в том, что нужно знать что ты пишешь, или не сможешь написать ни на чём.

Я пользуюсь Си - я быстро напишу на Си.
Ты залюбил питон - ну ок, ты напишешь быстро на питоне.
На си же тоже можно сделать void spi(char *l) и потом
char str[]={"пиздецкий текст\r"};
spi(str);
- он сделает тоже, что и твой питон. Ибо дело біло в кодировке.

P.S. Гм... А єто какая кодировка ваще?
Код:
PROGMEM const char intro []   =
{
	"пиздецкий текст\r"
};

gjg6ef.png
 
  • 🔴 14:41 Повітряна тривога в Харків.обл.
  • #68
Питон и луа - быстрота? по сравнениюс чем?
чем меньше букаф для того чтобы устройство заработало - тем быстрее
жаль, что футпринт у питона неслабый.
например, штучка
Код:
  def dprint(self, dig):
    self.buf = [self.znak[ord(x)-ord('0')] for x in list('{0}'.format(dig))]
    while len(self.buf) < 4:
	self.buf += [0]
выводит на 7 сегментный дисплей целое число (перекодировка цифр через знакогенератор)
и дополняет пустыми символами справа до полного размера экрана
разве это плохо, без объявления переменных, в 3 строки решить вопрос?
 
  • 🔴 14:41 Повітряна тривога в Харків.обл.
  • #70
чем меньше букаф для того чтобы устройство заработало - тем быстрее
жаль, что футпринт у питона неслабый.
например, штучка
Код:
  def dprint(self, dig):
    self.buf = [self.znak[ord(x)-ord('0')] for x in list('{0}'.format(dig))]
    while len(self.buf) < 4:
	self.buf += [0]
выводит на 7 сегментный дисплей целое число (перекодировка цифр через знакогенератор)
и дополняет пустыми символами справа до полного размера экрана
разве это плохо, без объявления переменных, в 3 строки решить вопрос?

Как индикатор тут подключен? Вопрос в том - есть ли готовая либа, или нет. У меня индикаторы были подключены через сдвиговые регистры к SPI :) Там тоже достаточно коротко будет spiSend(uint8_t*arr,int offset)
и вообще думать не надо, в прерывании проверил, что оффсет меньше длины буфера.
P.S. Знакогенератор обічно табличный, его всё равно писать.
 
  • 🔴 14:41 Повітряна тривога в Харків.обл.
  • #71
Как индикатор тут подключен? Вопрос в том - есть ли готовая либа, или нет. У меня индикаторы были подключены через сдвиговые регистры к SPI :) Там тоже достаточно коротко будет spiSend(uint8_t*arr,int offset)
и вообще думать не надо, в прерывании проверил, что оффсет меньше длины буфера.
P.S. Знакогенератор обічно табличный, его всё равно писать.

ну знакогенератор составляется так что seg_a=1 и seg_h=0x80
без привязок, потому что все раскидано по разным портам
раньше страдали конечно оптимизацией всякой, но это было лет 5 тому
какая либа тут нужна? при чем тут? я привел реальный текст из того что недавно запущено. Znak нужно? да пжлст
Код:
znak = [0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f]
все выводится через mcp23s17
можно и любым другим способом, не вопрос
 
  • 🔴 14:41 Повітряна тривога в Харків.обл.
  • #72
Научится программировать микроконтроллеры профессионально, изучив Ардуино,
не получится.
Почему? Я видел проекты,реализованные на Ардуине, которые очень неплохо управляют оборудованием. Профессиональным... Потому, вопрос, что именно считать профессиональным программированием? После получения ответа на него, можем продолжить дискуссию.... :браво:
 
  • 🔴 14:41 Повітряна тривога в Харків.обл.
  • #73
Мысль начала растекаться по древу. Дайте мне опору для решения задумки. Мне надо понять насколько факультативно можно успешно научиться программировать ардуино под несложные (по началу) задачи.Или мне нужен поводырЬ кот поможет сделать быстрый старт малому? Скачал IDE, запустил, открылось окно программы, НО-в папке кроме папки библиотеки ничего нет. А в ней письмецо Информация по установке библиотек:
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
папок должно быть больше.Потихоньку читаем и смотрим-вроде по силам, но пугают что какие-то платы не идут, чего еще ожидать новичку?
Меню-Файл-Образцы (есть такое?)
Там целый список образцов - примеров простеньких программ.
Вот пример для програмки мигания встроенным светодиодом:
Код:
/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the Uno and
  Leonardo, it is attached to digital pin 13. If you're unsure what
  pin the on-board LED is connected to on your Arduino model, check
  the documentation at https://arduino.cc

  This example code is in the public domain.

  modified 8 May 2014
  by Scott Fitzgerald
 */


// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}

При этом, встроенный светодиод подключен к выводу 13 )через резистор). Т.е. на выводе 13 будет 5 вольт (high) и 0 вольт (low).
меняя цифры функции delay() в строчках после digitalwright() ты можешь, например, включать на 5 мс высокое и, затем, на 500 мс низкое значение. Не совсем ШИМ конечно,точнее, совсем не ШИМ.... но....
Сложно?
 
  • 🔴 14:41 Повітряна тривога в Харків.обл.
  • #76
Купи гирлянду с адресуемыми пикселями, тупо моргать светодиодом не интересно, а с ней целое пространство для спецэффектов.
Вот такие 2 взял, 100 шт хватило на полкомнаты по периметру под потолком повесить.
Когда ребенок орет, медленно бегущая радуга поможет ему завтыкать минут на 10 а взрослому перевести дух :)
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
 
  • 🔴 14:41 Повітряна тривога в Харків.обл.
  • #77
Профессиональным... Потому, вопрос, что именно считать профессиональным программированием?

Профессиональным считается программирование под системы которые разрабатываются с нуля и имеют требования чуть большие чем помигать светодиодом или переслать 5 байт по вайфаю. Тебе это возможно будет откровением но в профессиональной разработке сначала формируются требования, потом под них выбирается микроконтроллер который максимально соответствует требованиям по набору периферии/потреблению/скорости/цене/доступности в нужном количестве у дистрибьютера и ты не поверишь, даже по опыту совместной работы с техподдержкой производителя. Есть прецедент когда встал вопрос о переходе на другую платформу из-за того что в поддержке работаю ленивые уебаны которые не ценят время своих клиентов и срывают сроки разработки продукта.

После выбора камня уже выбирется среда разработки и средства отладки. А может даже и наоборот, потому что цена нормальной IDE сильно кусается и если есть возможность сэкономить то это будет сделано.
Собсно по пунктам (далеко не полный перечень):

1. Цена. Если есть возможность купить камень на 2-3 цента меньше, купят именно его, потому что на 10-100 тысячных тиражах это имеет значение. Естесственно никто не будет ставить никакую ардуину с лютым оверпрайсом относительно голого камня.
2. Периферия. Не все используют SD карты. Иногда нужно подключить просто память без излишниего гемора. И тут бывают варианты. Например QSPI, в ардуине его нет. А еще есть память функцией коррекции ошибок которую надо включить и мониторить. Это спец. драйвер. А ю рэди написать скетч для такой флешки?
3. Мультислейв. Бывает что на одну и ту же шину SPI надо повесить 2-3 и более устройств и соответственно назначить каждому чипселект и не запариться когда общаешься с одним а второе тебе шлет прерывание которое надо немедленно отработать положив первого слейва с suspend. Еще веселее когда несколько слейвов на UART. Да да, и такое бывает, забудь про точка-точка. Протокол и арбитраж соответственно пишешь сам, скетч не прокатит.
4. Нестандартная периферия. Заказчик хочет дисплей который никто не видел в жизни, но к счастью есть документация. Садишься и пишешь драйвер сам, потому что больше некому. Еще веселей когда дисплей без контроллера и тебе надо взять проц с интегрированным ЖКИ контроллером и правильно сконфигурировать.
5. Жесткие требования к дизайну PCB. Не для всех устройств можно использовать квадратный корпус размером с коробку от ботинок где с комфортом влезе Ардуина со всем клоповником из проводов и шилдов. Бывает так что PCB дизайнер смотрит на тебя со слезами на глазах и просит сделать ремап порта ибо 2 трассы тупо не пролазят между падами резистора 0201, а дополнительный слой меди бюджет не позволяет.
6. Требования по потреблению. Не всегда и не везде есть розетки, мой наивный друг, а жирная батарея не проходит из за пунктов 1 и 5 выше.

Домашнее задание. Попробуй на досуге сделать мигалку светодиодом с одной кнопкой. По первому нажатию кнопки светодиод должен зажечься, по второму потухнуть. Устройство питается от батареи и должно жить как можно дольше.
У меня получилось 40 мкА в дежурном режиме с Атмеловским микроконтроллером за 30 центов и LDO-шником за 50 центов. А сколько у тебя на Ардуине за 5 баксов?
 
  • 🔴 14:41 Повітряна тривога в Харків.обл.
  • #78
Почему? Я видел проекты,реализованные на Ардуине, которые очень неплохо управляют оборудованием. Профессиональным... Потому, вопрос, что именно считать профессиональным программированием? После получения ответа на него, можем продолжить дискуссию.... :браво:

Профессиональное програмирование это когда програмист надувает губу, доказывает тебе, что это не баг, а фича, а ты просто дурак и ни чего не понимаешь. Програмисты практически всегда так делают :D

P.S. А вообще - профессиональное програмирование, єто когда тебе за него платят деньги. Но практика показівает - тем, кто лучше надувает губу - больше платят. Количество багов и кривой код на результат не влияют - всё дело в промоутинге и манагерах, берущих клиента на кукан договором.

А в плане ТСа - это когда после сдачи проекта к нему нет притензий, поскольку манагеров и сэйлзов у него нет :)
 
  • 🔴 14:41 Повітряна тривога в Харків.обл.
  • #79
Купи гирлянду с адресуемыми пикселями, тупо моргать светодиодом не интересно, а с ней целое пространство для спецэффектов.
Вот такие 2 взял, 100 шт хватило на полкомнаты по периметру под потолком повесить.
Когда ребенок орет, медленно бегущая радуга поможет ему завтыкать минут на 10 а взрослому перевести дух :)
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.

Там протокол надо разбирать, а ТС не умеет пока включить АЦП и нашначить в ШИМ напрямую с него измеренное значение.
Палегшэ на старте :)
 
  • 🔴 14:41 Повітряна тривога в Харків.обл.
  • #80
Про домашку - спасибо! Лучшая иллюстрация проблемы заказчика и исполнителя!
Я бы собрал схему из батарейки, резистора, сд и кнопки с фиксацией....:-)
 
Назад
Зверху Знизу