demon77523

demon77523

Пикабушник
Дата рождения: 24 мая
1955 рейтинг 4 подписчика 2 подписки 4 поста 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
1662

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

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

Подключён у меня интернет от ростелекома и решил я просканировать подсеть провайдера. Запустил программу  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: Всем спасибо, очень быстро ответили


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

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

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

Взываю к лиги помощи пикабу

Взываю к лиги помощи пикабу

В общем вот что. Я заказываю в интернете товар, курьер доставляет его на ваш адрес. Ну и ваша работа отправить его мне почтой.  Сам не из ДС, купить практически невозможно. Конечно не просто за спасибо.

По традиции котик и коммент для минусов прилагаются.

Показать полностью
Отличная работа, все прочитано!