Comments 131
С форматированием кода, да, — беда. Однако можно было бы просто отправить автору-переводчику приват, чтобы код завернул в тег code.
Не новичкам, а "ардуинщикам". Учиться надо на нормальных схемах электрических принципиальных, а не на таких картиночках.
P.S. Сам из секты Arduino :D
Чукча не читатель...
Учебник стоит читать, если потом это нужно будет для получения денег/развития своего проекта. А для сборки часов, метеостанции, автоматического лотка для кошки и прочей DIY-мелочевки — зачем?
Перфекционизм он не всегда нужен.
Диагноз: "Ардуинщик" классический.
А для сборки часов, метеостанции, автоматического лотка для кошки и прочей DIY-мелочевки — зачем?
А чьи-то статьи вам зачем для этого тогда читать?
Вполне хватит инструкции в картинках, какой проводок куда вставлять.
(впрочем, многие тут заметят, что по сути «статьи» к этому и сводятся)
Вряд ли кто-то станет отрицать, что инструкцию что от техники, что от таблеток редко кто читает.
Не читать инструкцию к таблеткам. Даже не проглядеть. Не понимаю.
То, что для вас это серьезная профессия, совершенно не означает, что все вокруг должны так же серьезно ее воспринимать.
новичкам слишком сложно читать статьи написанные профессионалами
Учиться нынче не в почете? Хоть что-то почитать о тех деталях, из которых собираешься слепить что-то? Ну, например, узнать, что ардуина питается (и выдает на выходы) 5 вольт, а тот же модуль GPS допускает на своих входах максимум 3.6 вольта? :)
В статьях же новичков для новичков зачастую описываются теже грабли, на которые другой новичок может наступить.
А кроме описанной пары граблей молча прикладывается десяток других, неописанных. Просто потому что автор сам не в курсе их существования из-за недостатка знаний.
Да, грабли в статьях от новичков имеются — это неизбежное зло. Однако отмечу, что у автора (оригнал статьи) устройство заработало. Сколько оно проработает — это уже другой вопрос.
Учиться — это труд и это сложно для мозга
Поэтому лучше учить других? Как сделать то, в чем сам не разбираешься? :)
отмечу, что у автора (оригнал статьи) устройство заработало
В чем его заслуги чуть больше нуля.
Учиться — это труд и это сложно для мозга, который старается избежать этого.
Какой у Вас ленивый мозг.
Поэтому лучше учить других?
Тут статья из серии «Смотрите у меня получилось!» и человеку захотелось поделиться. Обучения как такового в статье нет.
В целом, я понимаю точку зрения, что «Работа должна выполняться профессионалом». Однако, в реальном мире в редких областях это действительно так.
Самый жирный минус переводчика, автора статьи на Хабре, в качестве перевода. А это показатель низкого уровня знаний в тематике. А низкий уровень знаний в тематика в отсутствии желания учиться. Хотя зачем учиться, это, по Вашим словам, бесполезная трата времени.
Хотя зачем учиться, это, по Вашим словам, бесполезная трата времени.
Просьба указать сообщение, в котором я такое написал. Если вы имели в виду вот это, то увы, там речь шла про учебник. А читать учебник и учиться — это несколько разные вещи.
С таким подходом и начинать не стоило.
Как минимум учиться по книгам, чтобы повышать свои навыки и умения. А не по картиночках для глупых и копипасту бестолковых программ, не понимая что она делает и почему именно так.
С таким подходом и начинать не стоило.Большая часть того, чем мы занимаемся в свободное от работы и семьи время, вызывает вопросы «зачем, ведь можно купить готовое?», «зачем, ведь другие уже сделали лучше?», «зачем, это не стоит потраченного времени», и т.д.
В результате многие проводят значительную часть жизни, уставившись в телевизор, планшет, или с пивом на лавочке. Это лучше?
А что полезного, в данном случае, даст публикация полной схемы ардуины + гпс-модуля + модуля экрана? Это не несёт ни какого смысла. Никто не полезет внутрь гпс-модуля, всё взаимодейставе идёт на уровне интерфейсов и функциональных блоков. Знать, что D5 ардуины подключён к Rx гпс-ки для понимания работы мне необходимо. Знать номинал резистора в смесителе радиочастотной части гпс — нет. Публикация полной схемы электрической принципиальной только запутает и ухудшит понимание принципов работы прибора, ничего полезного не дав взамен. Вы ещё посетуйте, что прошивку в хекс-кодах не опубликовали в статье, как это было принято в журнале "коневодство" (то, есть, простите, "радио"). Да и то там это просто вынужденно делали...
Вы, должно быть, чересчур умны, чтобы заметить это, но на иллюстрации изображена именно схема соединений, дорогое невоспитанное подзаборное хамло.
Я никому не хамил в отличие от Вас. Ещё надо посмотреть кто из нас необразованное и невоспитанное подзаборное хамло.
И в отличие от Вас, я действительно образован и умен.
P.S> Да и на самом деле, зря вы нападает на среду ардуино. На самом деле очень изюмительная штука, когда надо пощупать что то быстро и без разбора в регистрах нового датчика, просто взял — включил и оно работает. Я так множество датчиков тестирую. Это очень удобно, да и плюс все датчики и сенсоры что продаются на али, все уже изначально подготовлены под интерфейс ардуины, взял проводки воткнул и все завертелось.
З.Ы.
Зная, как пишут библиотеки для Ардуино, у Вас вряд ли получится использовать все характеристики датчика не изучая его регистры. Вот мне не составляет проблемы быстро накидать программу без среды Ардуино для проверки работы внешних датчиков, исполнительных устройств и т.д.
Мне Вас немного жаль, раз Вы так тестируете.
В статье именно цветная картиночках и никакого отношения к схеме она не имеет.
А, то есть вы даже не знаете как выглядят схемы соединений? Тогда понятно, почему вместо конструктивных аргументов вы используете личные оскорбления. Умище так и прёт, так и прёт!
Я никому не хамил
Вы не только хамло позорное, но и брехло подзаборное.
Давайте просто процитирую :
вернитесь в ясли малолетний «ардуинолюб
Сколько же вас «ардуинолюбов» бестолковых?!
Статьи из серии «Смотрите, что я сделаль, а оно ещё и работает!
Какой у Вас ленивый мозг.
Диагноз: "Ардуинщик" классический.
Чукча не читатель…
"Ардуинщик" неразумный взялся за перевод статьи
Собственно, ничего иного, кроме оскорблений окружающих и хамства вы в теме не написали. Поздравляю вас, вы — брехливое хамло.
в отличие от Вас, я действительно образован и умен.
Более искушены в хамстве и вранье, это точно. Но тут меня не сложно победить, да я пытаться не буду — слаб я в этом, не то, что вы, такой умище, что не можете схему соединений не то, что прочесть, но даже опознать! Фу, позорище.
Как раз в отличие от Вас я знаю, как выглядит схема соединений. В отличие от Вас схемы электрические разных видов за моим авторством проходили нормаконтроль и проверку военпредов. Так кто из нас неуч?
Ах, Вас задевают "Ардуинщик" и "Ардуинолюб", ну извините, пока Вы и такие же как Вы необразованные товарищи будете писать безграмотные статьи, я называл и буду так продолжать называть все ваше сборище.
Есть определенные стандарты схем. А то что кто-то продвигает свой вид «схем» — это «я художник, я так вижу».
Вот бы еще питание от солнечной панели и всё залить эпоксидной смолой. Полная автономность, походность… Хватит питания?
Питания-то хватит, только сначала надо вот эту наколенную поделку выкинуть целиком и сделать нормально.
У дешёвого 3-дюймового графического e-ink обновление части экрана занимает 300 мс, жрёт он при этом в пределах 10 мА, обновлять надо раз в минуту одну цифру, раз в 10 минут две цифры, etc.
GPS более чем достаточно включать раз в неделю на пару минут.
Всё остальное время потребление всего этого хозяйства < 10 мкА.
А работать нормально оно всё равно не будет, потому что в типовом железобетонном доме ставить часы придётся на окно, чтобы они что-то там поймали хотя бы теоретически.
За неделю RTC на обычном часовом кварце может и убежать довольно сильно :)
void loop() {
// put your main code here, to run repeatedly:
readGPSData(1000);
updateTime();
displayTime();
delay(59000);
}
Аффтар проверяет время каждые 59 секунд, то есть, его часы by design имеют отставание до 1 минуты. На ровном месте.
А мы тут кварцами меряемся.
Upd. А хотя ладно, дальше он кладёт в системные часы и секунды тоже, а ещё дальше берёт время из них. Но зачем тогда ежеминутно дёргать GPS? Ну или, наоборот, зачем эта задержка в 59 секунд, когда просто сиди да читай что тебе GPS сам в консоль сыпет? Загадки, одни загадки.
Автор, похоже, из того же лагеря ардуинистов, что и little-brother — не учиться же, напрягая мозг и себя, в самом деле-то…
То есть наворочен какой-то код, который, видимо, автору казался логичным и нужным, но есть очень серьёзные сомнения, что даже он сам сможет объяснить, почему он ему таким казался.
Первые в мире часы на E-ink, которые не могут работать от батарейки.
readGPSData ( 1000 );
Время обновления();
displayTime ();
задержка ( 59000 );
Ну почему нельзя нормально перевести даже такую короткую заметку?
e-Paper (электронно переворачиваемые «листы» бумаги с цифрами)
серийный номер программного обеспечения для приема данных с модуля GPS, отображение e-Paper
4-строчный SPI для связи
Или переводчик не владеет тематикой — тогда зачем браться? Или перевод сделан по принципу «вот вам гуглоперевод, отстаньте от меня» — тогда зачем вообще его публиковать?
И откуда в последнее время пошла мода кое-как переводить всякую ерунду с hackaday.io? Без знаний по теме, без какой-либо изюминки, без хоть какого-то старания… Зачем оно здесь?
Чему тут удивляться. "Ардуинщик" неразумный взялся за перевод статьи. И таких все больше и больше. Тут возникает вопрос, как такие статьи из песочницы пропускают.
И откуда в последнее время пошла мода кое-как переводить всякую ерунду с hackaday.io? Без знаний по теме, без какой-либо изюминки, без хоть какого-то старания… Зачем оно здесь?
Публикуешь пять бессмысленных переводов гуглотранслейтом — и вот уже можно называть себя «регулярный автор популярного ресурса Хабрахабр» и соваться в корпоративные блоги с предложением за денежку малую…
С другой стороны, вот за этот опус ему уже чуть-чуть в карму да капнуло, будет упорен в глулотранслейте и научится поменьше лажать в технических вещах («Время обновления();») — да норм, за несколько месяцев карму в +NN вытащит, а там можно и услуги начать предлагать, если бедненько — то через фрилансерские биржи, а там и прямые выходы в PR-отделы появятся.
А я вот во вполне технологической области реально и лично знаю человека, который везде выступает как видный эксперт просто потому, что ему однажды зачем-то захотелось прослыть экспертом в этой области. Дальше всё по накатанной — завёл страницу во вконтакте, канал в телеге, стал копипастить туда новости по теме, начал везде подписываться экспертом. В области, в которой он эксперт, он сам при этом руками делает ровным счётом ничего и опыт имеет ровным счётом никакой.
Но кто-то вот на подработку на написании текстов карму набирает, а кого-то уже и СМИ периодически цитируют.
P.S> А можно Вам в личку пару вопросов задать?) Вы вроде с нордиками плотно работаете… Я тут с ними играюсь и че та встрял… А дев зон гады молчат (
задержка ( 59000 );
Спасибо за хорошее настроение с утра!
Браво, вы прекрасны.
ИМХО, все переводы с hackaday надо запретить. Ибо какой смысл читать одно и то же в двух местах.
/*
Self-adjusting clock for CET time zone with DST
by kk99
2018
*/
#include <SoftwareSerial.h>
#include <TinyGPS++.h>
#include <SPI.h>
#include <U8g2lib.h>
#include <Timezone.h>
#include <Arduino.h>
// GPS handle
TinyGPSPlus gps;
// EDP handle
U8G2_IL3820_V2_296X128_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
// Central European Time
TimeChangeRule CEST = {"CEST", Last, Sun, Mar, 2, 120}; // Central European Summer Time
TimeChangeRule CET = {"CET ", Last, Sun, Oct, 3, 60}; // Central European Standard Time
Timezone CE(CEST, CET);
TimeChangeRule *tcr;
// Serial handle
SoftwareSerial softSerial(3, 2);
void setup() {
// put your setup code here, to run once:
u8g2.begin();
softSerial.begin(9600);
setTime(00, 00, 00, 01, 01, 1970);
}
void loop() {
// put your main code here, to run repeatedly:
readGPSData(1000);
updateTime();
displayTime();
delay(59000);
}
static void readGPSData(unsigned long timeoutMs)
{
unsigned long start = millis();
do
{
while (softSerial.available())
gps.encode(softSerial.read());
} while (millis() - start < timeoutMs);
}
static void updateTime(void) {
if (gps.time.isValid() && gps.date.isValid()) {
setTime(gps.time.hour(), gps.time.minute(), gps.time.second(), gps.date.day(), gps.date.month(), gps.date.year());
}
}
static void displayTime(void)
{
const unsigned timeLength = 6;
char timeValue[timeLength];
time_t utc = now();
time_t local = CE.toLocal(utc, &tcr);
snprintf(timeValue, timeLength, "%02d:%02d", hour(local), minute(local));
u8g2.firstPage();
do {
u8g2.setFont(u8g2_font_logisoso78_tn);
u8g2.drawStr(26, 103, timeValue);
} while (u8g2.nextPage());
}
Что мешало сделать так
Гуглотранслейт так не умеет.
алг читатьДанныеГЛОНАСС (арг цел таймаутМс)
нач
цел старт
старт := миллис()
нц
нц пока мягкийПоследовательный.доступен()
глонасс.кодировать(мягкийПоследовательный.читать())
кц
кц пока (миллис — старт < таймаутМс )
кон
Исходная статья — не стоила затрат времени автора и нас и затрат энергии на работу всех задействованных вычислительных средств.
gps.time.isValid ()
в TinyGPS++ выдаёт True при значении 00:00, а именно нули выдаёт NEO при отсутствии связи со спутниками, со всеми вытекающими. Эти часы при отсутствии спутников будут показывать нули, а не неточное время. Странно, что ни один из популярных парсеров NMEA для Arduino не использует статус из $GPRMC для определения достоверности данных. («A» — статус: «A» — данные достоверны, «V» — недостоверны.) В итоге плюнул на все эти парсеры.
Странно, что ни один из популярных парсеров NMEA для Arduino не использует статус из $GPRMC для определения достоверности данных
Я сегодня прямо весь день хожу и всем советую прекрасную футболку.
Вот опять же, интересно, а что конкретно авторов этих парсеров побудило так делать?..
Сравнивать несколько показаний с заданным интервалом?
Смотреть на количество видимых спутников в $GPGSV?
Но 1PPS, если нужно точное время, надо ловить в любом случае, потому как именно по его фронту определяется время, отданное позже в том же RMC. 1PPS можно игнорировать, если доли секунды роли не играют.
Включение:
$GPRMC,235954.970,V,,,,,0.00,0.00,050180,,,N*43
Увидел один спутник, время стало правильным, дата изменилась, но опять неправильная:
$GPRMC,141524.094,V,,,,,0.00,0.00,110180,,,N*4E
Увидел несколько спутников (в т.ч. ГЛОНАСС, поэтому GPRMC сменилось на GNRMC), время и дата правильные, но координат пока нет:
$GNRMC,141709.078,V,,,,,42.33,255.93,030519,,,N*66
Короче, до фиксации координат никто ничего не гарантирует. Более того, NMEA 0183 подразумевает, что поля времени и даты в RMC без координат тупо не имеют смысла — т.к. это время собственно фиксации данных координат.
Какую-то эмпирику, не связанную с явным признаком валидности, можно использовать только на конкретной модели приёмника с конкретной версией прошивки.
Хотите, чтобы гарантированно работало на всех приёмниках — ждите «A» в RMC и строба 1PPS.
Самонастраивающиеся часы с электронным дисплеем