Знаешь САМ, помоги другому!
- Войдите на сайт для отправки комментариев
Добрый день.
С удовольствием читаю форум и уже ни мало для себя вынес в плане знаний (лучше бы железом). Иной раз поражает ни желание делиться своими знаниями отдельных участников форума (чаще скрытое и не осознаное).
Меня заглянуть на этот форум повергла распространенная библиотека OLED_I2C, точнее её не понимание с моей стороны.
Мдя………. С сожалением думаю, что проблема с библиотекой OLED_I2C все же побудит меня отказаться от её использования, прежде всего лично меня напрягает, что она не дает работать по стандартному I2C другим устройствам. Второе она очень прожорлива для использования памяти на переменные (может не правильно выражаюсь), печально видеть при компиляции что "Глобальные переменные используют 1 058 байт (51%) динамической памяти......", хотя просто запускаешь тест шрифта. Может кто-то знает таблетку от этой проблемы?
На досуге прочитал datasheet на OLED дисплей и понял, что библиотека OLED_I2C была состряпана на скорую руку, или с претензией на универсальность, просто что бы продемонстрировать, какой дисплей хороший.... Ну, что имеем. Нужно отдать должное создателю библиотеки, что для проектов на уровне часов и термометров, она вполне приемлема, а посему для общего использования в познавательных целях вполне подходит. Предвидя шпильки со стороны знатоков, хочу отметить, что лично для меня было весьма познавательно "повоевать" со шрифтами (хоть вспомнил как это было со знакогенераторами на синклере) и поэкспериментировать с Arduino NANO v.3. Короче знаю куда эту NANO теперь запихну (одна надежда, что найду что-то легче OLED_I2C.h и прикручу таки к нему управление насосом и датчики температуры по периметру (подвал, улица, грунт и комната, возможно ни одна) просто будут часы-термометр, возможно ещё будильник, если полностью освою вывод на OLED всякого рода переменных.
В свое время у «МАСТЕР КИТ» была линейка ВМ93ХХ, так вот библиотека OLED_I2C мне напоминает их бейсик для работы с набором, вроде все хорошо, но в то же время кругом нужны костыли для нормальной работы. Было дорого, но интересно, а главное условно понятно. Так вот многие «причиндалы» к Arduino условно понятны, но не владея в полной мере программированием на С или С++, трудно разобрать завалы в библиотеках, а тем паче из нескольких соорудить для «себя любимого» ТУ которая нужна для конкретного проекта. Ведь читая ветки постоянно натыкаешься на высказывания «спецов» бери и пользуйся, чё те ещё надо….. а надо не много. Памяти по больше, а ни так когда на твои две переменные библа жрёт 50% памяти на свои ни кому не нужные, хочется времени поменьше потратить используя то, что есть, а в итоге недели вникания в классы и поиски НАХРЕНА КОЗЕ БАЯН когда просто свежей травки достаточно.
Я не программист и к таковым себя ни когда не причислял, НО ! сегодня осваивая Fritzing мне понадобилось создать «примитив» OLED I2C 0.96” на чипе 1306 для дальнейшего использования в проекте. Так вот, нагуглил столько datasheet по теме, что мрак, в итоге нашел таки чертеж платы и… нашел очень умный сайт производителя, который выложил скетч для демонстрации именно возможностей самого дисплея на основе библиотек ВХОДЯЩИХ в состав базовых библиотек Arduino IDE. Да, не просто… НО народ на сколько наглядно!!!!! И красиво. Я лично не против применения в скетче куска кода на ассемблере когда понятно, что он конкретно делает и не надо его ковырять (бррррррррр……. И ща мурашки по коже). Так вот, библиотеки как не крути нужны для создания проектов, а для «блымканья» светодиодом нужно просто понимание куда и чего подать чтобы було. Конечно можно сразу всем начинающим сказать «Курите мат часть», но! Это сразу отшибет всё желание заниматься этим дальше. Можно посоветовать примеры, это завлекает, но не дает большого пространства для действий.
Просто нужно ЗНАЮЩИМ осознать, что иногда, на первый взгляд, самая прописная истина разжеванная и положенная в рот начинающему, без сарказма и издевательств, может родит второго Энштейна. Ведь кто-то только начинает и ему как воздух нужен совет и чем проще тем лучше (если сможете то на пальцах), а кто-то уже ПРОШАРЕННЫЙ в других контроллерах просто поймал ступор, ну тому понятно! указал направление и дал пинка, он и сам благополучно до всего додумается, правда при этом зачастую забывая поделиться своими конечными изысканиями, что помогло бы в плане общего развития избежать пинков другим, менее прошаренным.
Думаю при ответе не вопрос, не плохо было бы не просто отвечать, а ещё не РЫЧАТЬ, на вопросы по разъяснению к разъяснению. Ведь если тебя не поняли, значит в аудитории преподнесённый тобою материал «как должное», не для всех таковым является. И это не порок слушателя, а его желание постичь ТО что знаешь ТЫ.
Просто нужно ЗНАЮЩИМ осознать,
поддерживаю, но пердлагаю не отсанавливаться на дотсигнутом, а ОБЯЗАТЬ знающих помогать незнающим.
Вы, видимо, за всё хорошее и против всего плохого? Я тоже :))))
Топикстартер хочет сделать мир лучше и добрее. Это мило. А Эйнштейна обидели ни за что.
tl;tr
Суть в чем?
Просто нужно ЗНАЮЩИМ осознать,
поддерживаю, но пердлагаю не отсанавливаться на дотсигнутом, а ОБЯЗАТЬ знающих помогать незнающим.
"Не тормози, сникерсни!" ШТРАФОВАТЬ знающих, отказывающихся писать скетчи и составлять схемы ЗНАТЬ НЕЖЕЛАЮЩИМ, по их первому требованию. ДоллАРом их, АйТи иху мать, доллАром.
как говорил мой бывший начальник: "разговоры в пользу бедных" )))
а про штрафы это круто))
кстати по теме. файл OLED_I2C.h. конечно с таким буфером будет куча оперативки тратится. даже если один пиксель вывести больше килобайта оперативки будет использовано
но и это можно переделать при достаточном уровне навыков:
1. видеобуфер сделать в 2-3-4 раза меньше, будет съедаться меньше оперативки, но это будет компенсироваться процессорным временем
2. экран строковый. значит можно теоретически вообще без буфера, но рисовать придется по строкам, и сместить текст на пару пикселей вниз например просто не получится (влево вправо пожалуйста). о кругах, линиях, на полэкрана придется забыть
чтобы иметь возможность рисовать как хочется и сделан видеобуфер
кстати по теме. файл OLED_I2C.h. конечно с таким буфером будет куча оперативки тратится. даже если один пиксель вывести больше килобайта оперативки будет использовано
и, тут пришёл Ржевский и всё опошлил(с)
jeka_tm, ты думаешь ТС это было нужно?
пусть не ноет библиотека хреновая и поймет откуда ноги растут. если хочется и графически выводить и оперативку не тратить пусть берет дисплей от nokia1616. там все просто в этом плане, но там другие заморочки
Gnomych, мне тоже не понравилась ни одна библиотека из тех, что удалось найти.
Поэтому написал свою. Выложена в теме "Кириллица на дисплее или что я делаю не так".
По моему мнению, библиотека свободна от всех трех перечисленных Вами недостатков:
1. Непонятная.
2. Требует 1024 лишних байта памяти,
3. Конфликтует с другими I2C устройствами.
Ну, что касается первого, это, конечно, мое личное мнение, но по двум другим - факт. И памяти лишней не требует и по факту работает в системе совместно еще с несколькими I2C устройствами: EEPROM на 256 КБ, гироскоп, компас, а также вторая Ардуина, подключенная слейвом.
Заодно поддерживает кириллицу именно в той кодировке, которая по умолчанию используется в IDE. Т.е. в IDE и на экране строки выглядят одинаково, в отличие от OLED_I2C_RUS.
Угу. Все правда, и людям помогать надо, и OLED_I2C кривая (ТС еще не всю горькую правду изложил, она ещё прерывания все запрещает на время отправки 1024 байт, из за чего и системное время слетает и воще всё пропало) и не шарит кучу аппаратных возможностей типа прокрутки по горизонтали и вертикали. А знающий от незнающего отличается "сакральным" знанием - все остальные либки не лучше OLED_I2C, потому писать свою прийдется, а стандартные годятся потестить правильность сборки схемы, ну почитать малеха пополам с даташитом.
На данную девайсу я тож переписывал, и память не жрет, и круги на весь экран малюет. Потому шо память выделяет динамически, под то окно которое будет зарисовывать, а после отправки на екран память освобождает. Экран понятно перерисовывает только выбранного окна, значить делает это быстрей, чем весь. И работает по програмному i2c с любых пинов, потому никому не мешает. Кстати OLED_I2C умеет и с аппаратным и с програмным i2c работать, смотря на какие ноги его инитить. Тоесть места в флеше лишнего всеравно откусит.
Конструктив - нехило бы иметь раздел "Либы наших аксакалов", каждому желающему знатоку закрепить в нем тему по какому либо девайсу, пущай модерирует. А то без этого засрут притащеным со всего мира говнокодом.
Конструктив - нехило бы иметь раздел "Либы наших аксакалов", каждому желающему знатоку закрепить в нем тему по какому либо девайсу, пущай модерирует. А то без этого засрут притащеным со всего мира говнокодом.
в чём суть сабжа конструктива? - от того, что ты это написал, ничего не изменится - нужно законодательно обязать аксакалов, в случае уклонения от общественно полезной деятельности - высылать в Сибир, думать над своим поведением, освободившуюся жилплощадь и имущество раздавать обделённым знаниями и умениями.
Э как ностальгия по светлому прошлому пробивается. А простой по желанию никак не воспринимается?
Э как ностальгия по светлому прошлому пробивается. А простой по желанию никак не воспринимается?
это ты у кого спрашиваешь - у меня или объективной реальности, свидетельствующей, что "да" - никак, только под страхом смерти или депортации в Антарктиду.
Я не программист и к таковым себя ни когда не причислял, НО ! сегодня осваивая Fritzing мне понадобилось создать «примитив» OLED I2C 0.96” на чипе 1306 для дальнейшего использования в проекте. Так вот, нагуглил столько datasheet по теме, что мрак, в итоге нашел таки чертеж платы и… нашел очень умный сайт производителя, который выложил скетч для демонстрации именно возможностей самого дисплея на основе библиотек ВХОДЯЩИХ в состав базовых библиотек Arduino IDE. Да, не просто… НО народ на сколько наглядно!!!!! И красиво.
Так что же САМ не помог другому. Нашёл интересный материал, вот и выложил бы ссылку на него для других начинающих. Или побоялся, что ЗНАЮЩИЕ от этого умнее станут. Они и без этого сами библиотеки пишут или поправляют существующие.
Просто нужно ЗНАЮЩИМ осознать, что иногда, на первый взгляд, самая прописная истина разжеванная и положенная в рот начинающему, без сарказма и издевательств, может родит второго Энштейна. Ведь кто-то только начинает и ему как воздух нужен совет и чем проще тем лучше (если сможете то на пальцах), а кто-то уже ПРОШАРЕННЫЙ в других контроллерах просто поймал ступор, ну тому понятно! указал направление и дал пинка, он и сам благополучно до всего додумается, правда при этом зачастую забывая поделиться своими конечными изысканиями, что помогло бы в плане общего развития избежать пинков другим, менее прошаренным.
Если написать готовый скетч для новичка (что проще всего), то Энштейн точно не родится.
Думаю при ответе не вопрос, не плохо было бы не просто отвечать, а ещё не РЫЧАТЬ, на вопросы по разъяснению к разъяснению. Ведь если тебя не поняли, значит в аудитории преподнесённый тобою материал «как должное», не для всех таковым является. И это не порок слушателя, а его желание постичь ТО что знаешь ТЫ.
В разделе "Отвлеченные темы" опубликовал рассказ Роберта Шекли "Верный вопрос" (http://arduino.ru/forum/otvlechennye-temy/robert-shekli-vernyi-vopros). Оканчивается рассказ строкой: "Чтобы правильно задать вопрос, нужно знать большую часть ответа".