demon77523

demon77523

Пикабушник
Дата рождения: 24 мая
1956 рейтинг 4 подписчика 2 подписки 3 поста 1 в горячем
Награды:
10 лет на Пикабу
19

RGB подсветка мышки на Arduino

Всем привет. Сегодня я покажу как можно доработать подсветку мыши. Сделал я её на светодиодах ws2812b, которые ещё называют адресными.

Решил я это сделать, потому что у моей мыши была обычная подсветка синего цвета.

Внутри стояли три светодиода, которые просто горели и никак не управлялись.

И сразу фото результата.

А теперь как это всё устроено.

Приделал на двухсторонний скотч 8 светодиодов. Справа в посадочном месте стоял грузик, вместо него отлично встала ардуинка.

Световые эффекты в прошивке поделил на четыре зоны: левая кнопка, правая, четыре светодиода в центре, два внизу. Для реализации одного из эффектов подключил потенциометр колёсика к ардуине, чтобы определять вращается колёсико или нет.

Перейдём к коду прошивки.

********************************************

#include <Thread.h>

Thread bodyT = Thread();

Thread lbT = Thread();

Thread rbT = Thread();

Thread counterT = Thread();

Thread idlT = Thread();

#include <Adafruit_NeoPixel.h>

#ifdef __AVR__

#include <avr/power.h>

#endif

#define PIN 7

#define NUM_LEDS 8

#define IDLS 600 //idle mode delay in seconds

Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);

const int wheelPin = A0;

uint16_t i=0, j=0; //body

uint16_t ti=0, tj=0; //tail

uint16_t jlb=0; //left button

uint16_t jrb=150; //right button

int bo[]={0,2,3,4,5,1}; //body order

int idlo[]={0,2,3,7,6,4,5,1}; //idle order

int wos=0; //wheel order position

byte wh=0;

bool idle=false; //idle state

int idlet=0; //idle time counter

int idlei=0; //idle led pos 1

int idlen=0; //idle led pos 2

void setup() {

#if defined (__AVR_ATtiny85__)

if (F_CPU == 16000000) clock_prescale_set(clock_div_1);

#endif

strip.begin();

strip.setBrightness(50);

strip.show();

bodyT.onRun(bodyF);

bodyT.setInterval(20);

lbT.onRun(lbF);

lbT.setInterval(15);

rbT.onRun(rbF);

rbT.setInterval(70);

counterT.onRun(counterF);

counterT.setInterval(1000);

idlT.onRun(idlF);

idlT.setInterval(3000);

}

void loop() {

if (counterT.shouldRun()) counterT.run();

if (!idle) {

if (bodyT.shouldRun()) bodyT.run();

if (lbT.shouldRun()) lbT.run();

if (rbT.shouldRun()) rbT.run();

} else {

if (idlT.shouldRun()) idlT.run();

}

if(wh==1) {

if(analogRead(wheelPin)>500) {tail();wh=2;}

} else {

if(analogRead(wheelPin)<500) {tail();wh=1;}

}

}

void counterF() {

if(!idle) idlet++;

if(idlet>IDLS) idle=true;

}

void idlF() {

strip.setPixelColor(idlo[idlei], Wheel(((idlei * 256 / strip.numPixels()) + j) & 255));

strip.show();

delay(75);

if(idlei==0) idlen=7; else idlen=idlei-1;

strip.setPixelColor(idlo[idlen], strip.Color(0, 0, 0));

strip.show();

if(idlei==7) idlei=0; else idlei++;

j++;

if(j>=256*5) j=0;

}

void tail() {

idle=false;

idlet=0;

for(ti=0; ti< 2; ti++) {

strip.setPixelColor(ti, Wheel(((ti * 256 / strip.numPixels()) + tj) & 255));

}

strip.show();

tj+=20;

if(tj>=256*5) tj=0;

}

void bodyF() {

for(i=2; i< strip.numPixels()-2; i++) {

strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));

}

strip.show();

j++;

if(j>=256*5) j=0;

}

void lbF() {

strip.setPixelColor(7, Wheel((7+jlb) & 255));

strip.show();

jlb++;

if(jlb>=106) jlb=0;

}

void rbF() {

strip.setPixelColor(6, Wheel((6+jrb) & 255));

strip.show();

jrb++;

if(jrb>=256) jrb=150;

}

uint32_t Wheel(byte WheelPos) {

WheelPos = 255 - WheelPos;

if(WheelPos < 85) {

return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);

}

if(WheelPos < 170) {

WheelPos -= 85;

return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);

}

WheelPos -= 170;

return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);

}

***************************************************

Вкратце по коду. Три функции: для каждой кнопки и средней зоны. Ещё одна функция для нижней зоны, которая срабатывает при вращении колёсика. Функция счетчика времени простоя. И функция для эффекта во время простоя, запускающаяся после 10 минут бездействия.

Также в этом проекте я освоил библиотеку Thread.h. Она позволяет как бы одновременно выполнять несколько функций. Но это не настоящая многозадачность конечно же. Ведь это ардуино.

Эффекты такие: на левой кнопке переход с оранжевого на зелёный цвет, на правой с синего на красный с меньшей скоростью, в центральной зоне эффект радуги и в нижней зоне меняющиеся цвета при вращении колёсика. В режиме простоя один бегущий светодиод разными цветами.

Вот остальные фото и видео.

На этом всё. Всем пока.

Показать полностью 6 3
1661

Срочно смени пароль от роутера)

Я не шучу, смени даже если он не стандартный (хотя всё равно может не помочь).

Подключён у меня интернет от ростелекома и решил я просканировать подсеть провайдера. Запустил программу  RouterScan и вбил диапазон 100.64.0.0/10. Диапазон очень немаленький и пришлось подождать. Спустя двое с половиной суток я остановил сканирование на примерно 80%. Результат оказался очень хорошим.

Из этих 29 тысяч нужны только те у которых известен BSSID. Далее с помощью яндекса получаю координаты wifi точек. Осталось меньше 10 тысяч. Делю на 5 файлов по 2000 строк в каждом и отправляю в гугл карты. В итоге получаю вот такую картину

Можно посмотреть подробную информацию по каждой точке доступа

IP адрес, логин/пароль роутера, пароль wifi, координаты.

Вот такая вот ситуация с безопасностью сейчас обстоит.

Кому интересно даю ссылки на карту и таблицу с данными

https://drive.google.com/open?id=1UyeHcQ0KENQ8u1dGqJIvG0FvQi...

https://drive.google.com/file/d/18XYkYqc4cuFXnoAOYrLHJHLs7xA...

Показать полностью 3

Помогите найти фильм[найден]

UPD: Всем спасибо, очень быстро ответили


Главный герой мужчина. Помню момент, он познакомился с женщиной. Встретился с ней. В какой-то момент он прогнал её из своей машины. Разогнался и намеренно улетел с обрыва. С ним всё в порядке. Он попадает в психбольницу как суицидник. Там появляются ещё несколько основных героев. Врач-психолог-психиатр, девушка и парень- пациенты. Главный герой не верил в методы лечения врача. Но врач заключил с ним уговор, что он не будет больше совершать попыток суицида до какого-то времени. Так же как и с другим парнем-пациентом. У девушки была мания наносить себе раны до крови. Это её вроде как возбуждало. В конце окончания времени уговора тот парень себя убивает. Перед этим он сказал ГГ, что ему до него ещё очень далеко (ну или что-то наподобие этого). У главного героя с девушкой хеппи энд. Ах да, Гг худощавый был.

Вот такой фильм. Надеюсь кто-нибудь смотрел и помнит название. Хочу полностью посмотреть.

И поздравляю всех с наступающим новым годом 🎄

Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества