Обсуждаем контроллеры компании Atmel.
Ответить

Re: Не скучные часы на WS2812B

Пн янв 21, 2019 10:11:52

кстати тоже думал чтобы в ночное время и яркость и цвет менялись

уговорили - буду делать по два светодиода на сегмент :) вот так https://www.thingiverse.com/thing:857558

Re: Не скучные часы на WS2812B

Пн янв 21, 2019 11:23:59

Это лишняя марока
проверено
надо делать просто стекло без всех этих извращений с подделкой под 7-сегментные индикаторы
https://radiokot.ru/forum/viewtopic.php ... 0#p3510990
Если светики располагаются с шагом 20 мм
проверено засветки от соседних светиков практически нет

Re: Не скучные часы на WS2812B

Вт янв 29, 2019 18:02:39

Добрый вечер друзья. Подскажите пожалуйста, а есть у кого либо прошивка на 4 знакоместа с одним датчиком температуры или со всеми наворотами на Atmega 328? Если есть то подскажите фузы… LOW, HIGH. Спасибо.

Re: Не скучные часы на WS2812B

Ср янв 30, 2019 15:10:04

4 знакоместа это правильно
а температуры надо две. под ногами и за окном

Re: Не скучные часы на WS2812B

Ср янв 30, 2019 18:30:00

и давление еще :)

Re: Не скучные часы на WS2812B

Ср янв 30, 2019 18:45:23

и давление еще :)

я не увидел в наблюдении за давлением какой-либо практической пользы.
Вот индикатор сквозняка это другое дело.

А ещё подглядел идейку с микрофончиком.
Думал сначала про ИК-датчик движения, но он толстый, а вот микрофончик влезет, если плосконький.

Re: Не скучные часы на WS2812B

Ср янв 30, 2019 21:09:21

да, барометр бесполезная хрень как и датчик влажности...
а без бме280 все влазит в мегу8

Re: Не скучные часы на WS2812B

Чт янв 31, 2019 04:53:58

бесполезная чем ? то что показывает всё что угодно кроме атмосферного давления ?
как бы то ни было плата управления готова и датчик куплен
осталось дождаться светодиоды и распечатать корпус индикаторов и самое главное прошивку
хотя не против вторые часы сделать на atmega8 без датчика давления

Re: Не скучные часы на WS2812B

Чт янв 31, 2019 08:20:11

Барометр показывает как положено, даже лучше, но для нас нет никакой пользы в этой информации. Давление практически никак не связано с погодой.
В 8-ую атмегу влезет всё если постараться. Только зачем.
Гораздо перспективнее поразмышлять в направлении ESP

Re: Не скучные часы на WS2812B

Чт янв 31, 2019 22:16:54

Очень хороший вариант часов, если нужно только время (без датчиков) и есть постоянный интернет по wi-fi, понадобится только ESP8266-01, полтора метра адресной СДЛ WS2812B, блок питания или зарядка на 5в 1а, ну и стабилизатор, например, 1117 на 3,3в для питания модуля. Прошиваем ESP8266 любым конвертером USB-TTL, можно и ардуинку в этом качестве использовать, следующим скетчем:

#include <ESP8266WiFi.h> //Используемые библиотеки, должны быть установлены в среде Arduino IDE, или чем вы там собрались компилировать
#include <WiFiUdp.h>
#include <Adafruit_NeoPixel.h>

char ssid[] = "ZAHUYAKER"; //точку доступа и пароль к wi-fi ставим, конечно, свои
char pass[] = "romanchik_irinchik";

int hours =0;
int mins =0;

#define PIN 2 //GPIO2 модуля ESP8266-01
#define NUMPIXELS 86 //Общее количество адресных ссветодиодов WS2812B
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

unsigned int localPort = 2390;

IPAddress timeServerIP;
const char* ntpServerName = "time.nist.gov"; //сервер точного времени также не обязательно выбирать именно этот

const int NTP_PACKET_SIZE = 48;

byte packetBuffer[ NTP_PACKET_SIZE];

WiFiUDP udp;

void setup()
{
Serial.begin(115200);
Serial.println();

Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, pass);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");

Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());

Serial.println("Starting UDP");
udp.begin(localPort);
Serial.print("Local port: ");
Serial.println(udp.localPort());
pixels.begin();
}

void loop()
{
WiFi.hostByName(ntpServerName, timeServerIP);

sendNTPpacket(timeServerIP);
delay(1000);

int cb = udp.parsePacket();
if (!cb) {
//Serial.println("no packet yet");
}
else {
//Serial.print("packet received, length=");
//Serial.println(cb);

udp.read(packetBuffer, NTP_PACKET_SIZE);

unsigned long highWord = word(packetBuffer[40], packetBuffer[41]);
unsigned long lowWord = word(packetBuffer[42], packetBuffer[43]);
unsigned long secsSince1900 = highWord << 16 | lowWord;
const unsigned long seventyYears = 2208988800UL;
unsigned long epoch = secsSince1900 - seventyYears;

epoch = epoch + 3 * 3600; // 3 - коррекция часового пояса, ставим свою
hours = (epoch % 86400L) / 3600;
if (hours<24)
{
hours++;
}
if (hours==24)
{
hours=0;
}
mins = (epoch % 3600) / 60;


Serial.print(hours);
Serial.print(':');
Serial.println(mins);

drawdigit(0,155,0,0,hours/10);//Draw the first digit of the hour //0-20 номера светодиодов первой цифры, 21-41 втораой цифры, в каждом сегменте по 3сд
drawdigit(21,155,0,0,hours-((hours/10)*10));//Draw the second digit of the hour //42-43 точки между второй и третьей цифрами
pixels.setPixelColor(42, pixels.Color(155,0,0));//Draw the two middle dots //44-64 третья цифра, 65-85 четвертая цифра
pixels.setPixelColor(43, pixels.Color(155,0,0));
drawdigit(44,155,0,0,mins/10);//Draw the first digit of the minute //яркость выбрал 155, цвет - красный, при таком режиме потребление не более 0,9а, т.к. для питания часов
drawdigit(65,155,0,0,mins-((mins/10)*10));//Draw the second digit of the minute //использовался слабенький адаптер 5в 0,9а

delay(59500);//Request to NIST server should be separated by 60 seconds. //Можно реализовать и автосмену цвета и задать значения цветов, мне это показалось лишним








}
}




void drawdigit(int offset, int r, int g, int b, int n)
{

if (n==2 || n==3 || n== 4 || n==5 || n==6 || n==8 || n==9 )//СРЕДНИЙ СЕГМЕНТ
{
pixels.setPixelColor(0+offset, pixels.Color(r,g,b)); // 0, 1, 2 - последовательность подключения светодиодов, если у вас другая - ставим свои значения для каждого сегмента
pixels.setPixelColor(1+offset, pixels.Color(r,g,b)); //последовательность подключения в каждой цифре должна быть одинаковой)))
pixels.setPixelColor(2+offset, pixels.Color(r,g,b));
}
else
{
pixels.setPixelColor(0+offset, pixels.Color(0,0,0));
pixels.setPixelColor(1+offset, pixels.Color(0,0,0));
pixels.setPixelColor(2+offset, pixels.Color(0,0,0));
}
if (n==0 || n==1 || n== 2 || n==3 || n==4 || n==7 || n==8 || n==9)//ВЕРХНИЙ ПРАВЫЙ СЕГМЕНТ
{
pixels.setPixelColor(18+offset, pixels.Color(r,g,b));
pixels.setPixelColor(19+offset, pixels.Color(r,g,b));
pixels.setPixelColor(20+offset, pixels.Color(r,g,b));
}
else
{
pixels.setPixelColor(18+offset, pixels.Color(0,0,0));
pixels.setPixelColor(19+offset, pixels.Color(0,0,0));
pixels.setPixelColor(20+offset, pixels.Color(0,0,0));
}
if (n==0 || n==2 || n== 3 || n==5 || n==6 || n==7 || n==8 || n==9)//ВЕРХНИЙ СЕГМЕНТ
{
pixels.setPixelColor(15+offset, pixels.Color(r,g,b));
pixels.setPixelColor(16+offset, pixels.Color(r,g,b));
pixels.setPixelColor(17+offset, pixels.Color(r,g,b));
}
else
{
pixels.setPixelColor(15+offset, pixels.Color(0,0,0));
pixels.setPixelColor(16+offset, pixels.Color(0,0,0));
pixels.setPixelColor(17+offset, pixels.Color(0,0,0));
}
if (n==0 || n==4 || n==5 || n== 6 || n==8 || n==9 )//ВЕРХНИЙ ЛЕВЫЙ СЕГМЕНТ
{
pixels.setPixelColor(12+offset, pixels.Color(r,g,b));
pixels.setPixelColor(13+offset, pixels.Color(r,g,b));
pixels.setPixelColor(14+offset, pixels.Color(r,g,b));
}
else
{
pixels.setPixelColor(12+offset, pixels.Color(0,0,0));
pixels.setPixelColor(13+offset, pixels.Color(0,0,0));
pixels.setPixelColor(14+offset, pixels.Color(0,0,0));
}
if (n==0 || n==2 || n==6 || n== 8)//НИЖНИЙ ЛЕВЫЙ СЕГМЕНТ
{
pixels.setPixelColor(9+offset, pixels.Color(r,g,b));
pixels.setPixelColor(10+offset, pixels.Color(r,g,b));
pixels.setPixelColor(11+offset, pixels.Color(r,g,b));
}
else
{
pixels.setPixelColor(9+offset, pixels.Color(0,0,0));
pixels.setPixelColor(10+offset, pixels.Color(0,0,0));
pixels.setPixelColor(11+offset, pixels.Color(0,0,0));
}
if (n==0 || n==2 || n==3 || n== 5 || n==6 || n==8 || n==9)//НИЖНИЙ СЕГМЕНТ
{
pixels.setPixelColor(6+offset, pixels.Color(r,g,b));
pixels.setPixelColor(7+offset, pixels.Color(r,g,b));
pixels.setPixelColor(8+offset, pixels.Color(r,g,b));
}
else
{
pixels.setPixelColor(6+offset, pixels.Color(0,0,0));
pixels.setPixelColor(7+offset, pixels.Color(0,0,0));
pixels.setPixelColor(8+offset, pixels.Color(0,0,0));
}
if (n==0 || n==1 || n==3 || n==4 || n==5 || n==6|| n==7 || n==8 || n==9)//НИЖНИЙ ПРАВЫЙ СЕГМЕНТ
{
pixels.setPixelColor(3+offset, pixels.Color(r,g,b));
pixels.setPixelColor(4+offset, pixels.Color(r,g,b));
pixels.setPixelColor(5+offset, pixels.Color(r,g,b));
}
else
{
pixels.setPixelColor(3+offset, pixels.Color(0,0,0));
pixels.setPixelColor(4+offset, pixels.Color(0,0,0));
pixels.setPixelColor(5+offset, pixels.Color(0,0,0));
}
pixels.show();
}



// send an NTP request to the time server at the given address
unsigned long sendNTPpacket(IPAddress& address)
{
//Serial.println("sending NTP packet...");
// set all bytes in the buffer to 0
memset(packetBuffer, 3, NTP_PACKET_SIZE);
// Initialize values needed to form NTP request
// (see URL above for details on the packets)
packetBuffer[0] = 0b11100011; // LI, Version, Mode
packetBuffer[1] = 0; // Stratum, or type of clock
packetBuffer[2] = 6; // Polling Interval
packetBuffer[3] = 0xEC; // Peer Clock Precision
// 8 bytes of zero for Root Delay & Root Dispersion
packetBuffer[12] = 49;
packetBuffer[13] = 0x4E;
packetBuffer[14] = 49;
packetBuffer[15] = 52;

// all NTP fields have been given values, now
// you can send a packet requesting a timestamp:
udp.beginPacket(address, 123); //NTP requests are to port 123
udp.write(packetBuffer, NTP_PACKET_SIZE);
udp.endPacket();
}

Корпус и диффузоры сегментов напечатаны на 3d принтере. Единственное, совершил глупость - корпус распечатал черным, а сегменты - белым и днем белые сегменты выделяются на черном фоне. Боялся, если сделать корпус белого цвета, будет фоновая засветка. Надо было пару лицевых слоев корпуса напечатать белым, а остальное - черным. Цветовая температура в сегменте ровная и четкая, просто огонь)))
https://cloud.mail.ru/public/JCJK/36cbjpAXT

Re: Не скучные часы на WS2812B

Пт фев 01, 2019 03:52:10

а где схема и .stl ? :)

Re: Не скучные часы на WS2812B

Пт фев 01, 2019 10:18:42

и видосик ?
хотя и так понятно, что ничего такого уж хорошего в них нет
а постоянный интернет это оч большой минус

Научите меня пользоваться ESP-хой
перетащу на неё свои часики и будет всем счастье.

Re: Не скучные часы на WS2812B

Сб фев 02, 2019 09:48:26

Здравствуйте, Дмитрий. Мы с вами общались на ютубе. Я и Ваши часы сделал, оставалось лишних полтора метра адресных светодиодов)) Большой минус в том, что прошивка заливается хексом, а у меня из имеющегося под рукой модуля RTC - 1302(( Температурные датчики на аналоговом пине почему-то тоже работать не хотят.
Отвечая на предыдущее сообщение, схема настолько проста, что даже размещать ее не стал, но вот рисуночек:
https://yadi.sk/i/sMsdxUkwujHpqA
Вот небольшое видео про часы:
https://yadi.sk/d/hgTxOMz5SxN8zA
Я не автор моделек корпуса, но он не против их использования, в архиве модели в stl, m3d, stp, можно менять по своему желанию:
https://yadi.sk/d/jWDLJjKhHR0wXw
А вот тут видео по часам Дмитрия, хотелось бы спросить, где можно узнать больше о функциях меню и инициализируются ли из меню датчики температуры:
https://yadi.sk/i/7bqSeqMwtMkscw

Добавлено after 16 minutes 48 seconds:
Я так понимаю, esp планируется для подключения уличных датчиков. Одна работает как клиент и к ней подключены датчики, а вторая подключается к ардуино как точка доступа. В сети полно скетчей для реализации подобного.

Re: Не скучные часы на WS2812B

Сб фев 02, 2019 10:13:19

Здравствуйте, Дмитрий. Мы с вами общались на ютубе. Я и Ваши часы сделал, оставалось лишних полтора метра адресных светодиодов)) Большой минус в том, что прошивка заливается хексом, а у меня из имеющегося под рукой модуля RTC - 1302(( Температурные датчики на аналоговом пине почему-то тоже работать не хотят.
сказали бы, я бы подшаманил для вас
Вообще мои могут работать и без датчиков света и давления и без градусников.
Всё настраивается настройками. Про них есть видос на канале.
Давно пора бы подшаманить чтобы и без RTC ходили.
Хотите ?
У ваших шикарное оформление. Если туда ещё мою прошивку, то будет вообще ништяк.
Научите меня пользовать ESP-ху и я портирую свою прошивку на неё.

Добавлено after 12 minutes 48 seconds:
А вот тут видео по часам Дмитрия, хотелось бы спросить, где можно узнать больше о функциях меню и инициализируются ли из меню датчики температуры:
https://yadi.sk/i/7bqSeqMwtMkscw

здорово !
на сколько я понял у вас не работает RTC.
если будете делать для них диффузоры, обратите внимание, что в левой цифре
когда загорается "+" в сегменте загораются не 3 а только 2 светика
хорошо бы их отделить. Хотя можно зажигать и все 3 но тогда надо будет и остальные "лучи" добавить до трёх. Или как-то ещё подумать.

Добавлено after 16 minutes 48 seconds:
Я так понимаю, esp планируется для подключения уличных датчиков. Одна работает как клиент и к ней подключены датчики, а вторая подключается к ардуино как точка доступа. В сети полно скетчей для реализации подобного.

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

И ещё. подключите часики к компу, они могут про себя кое-что рассказать, не много правда.

Re: Не скучные часы на WS2812B

Сб фев 02, 2019 10:36:50

Я сам-то по образованию (-ям) энергетик, юрист, механик, электрик, еще есть корки токаря на станках ЧПУ, сварщика, еще пяток профессий)) Работаю юристом, в свободное время собираю различные машины и механизмы, фрезерные станки с ЧПУ, 3d принтеры и тому подобное. Помогают в плане электроники знания, полученные в детстве и юности в радиокружках, но я не программист, только учусь, пытаясь идти в ногу со временем)) Так что, учитель из меня хреновый, сам учусь. Мне, кстати на Али попадалась esp-ха, на которой можно реализовать все, крутая штука с сопроцессором и нехилой памятью, она сама по себе круче ардуинки. Единственное, мне в ней не понравилась цена)

Re: Не скучные часы на WS2812B

Сб фев 02, 2019 10:42:49

собираю различные машины и механизмы, фрезерные станки с ЧПУ, 3d принтеры и тому подобное.
жуть !
Я тут написал прошивочку для некого портативного устройства "мультитаймер-фонарик-лазер-УФ-термодатчик/регулятор-светодатчик/регулятор" https://radiokot.ru/forum/viewtopic.php ... 4#p3554574
Теперь надо такой же соответственно железобетонный непотопляемый негорючий корпус.
Можете ?

И ещё есть портативный датчик CO2. к нему тоже надо хитырый корпус.
https://radiokot.ru/forum/viewtopic.php ... 9#p3375649

Re: Не скучные часы на WS2812B

Сб фев 02, 2019 20:58:14

Теперь надо такой же соответственно железобетонный непотопляемый негорючий корпус.
https://radiokot.ru/forum/viewtopic.php ... 9#p3375649


Ну с железобетонным помочь не смогу)), а вот намоделить что-нибудь в Компасе и распечатать на 3d принтере, это без проблем. Только нужно знать критические расстояния-размеры, форму, эскиз какой-никакой.

Re: Не скучные часы на WS2812B

Сб фев 02, 2019 21:32:13

Теперь надо такой же соответственно железобетонный непотопляемый негорючий корпус.
https://radiokot.ru/forum/viewtopic.php ... 9#p3375649


Ну с железобетонным помочь не смогу)), а вот намоделить что-нибудь в Компасе и распечатать на 3d принтере, это без проблем. Только нужно знать критические расстояния-размеры, форму, эскиз какой-никакой.
идём в тему
https://radiokot.ru/forum/viewtopic.php ... 9#p3562319

Re: Не скучные часы на WS2812B

Пт фев 08, 2019 22:49:12

Новая версия прошивки моих часиков
https://radiokot.ru/forum/viewtopic.php ... 7#p3566317

Re: Не скучные часы на WS2812B

Сб фев 09, 2019 06:33:49

Изображение
черные печататься будут часа 3-4 соплом 0.8...чем бы стол намазать чтобы не отвалились
Ответить