Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Классический пинбол, как в древнем игровом автомате или в компактной игрушке: есть пружины, шарики и препятствия. В нашем варианте можно не только зарабатывать очки: чтобы пройти уровень, придется выполнить дополнительную миссию.

Пинбол Пикабу

Аркады, На ловкость, Казуальные

Играть

Топ прошлой недели

  • Animalrescueed Animalrescueed 43 поста
  • XCVmind XCVmind 7 постов
  • tablepedia tablepedia 43 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
337
Sikar
Sikar
Автомобильное сообщество

Ответ на пост «В Нью-Йорке начали бороться против прямотоков»⁠⁠1

3 года назад

Навеяло. Живу у дороги и накопил некоторую статистику, которая выражена в этом импровизированном меме

Ответ на пост «В Нью-Йорке начали бороться против прямотоков»

95% шумных гонщиков ездят на хламе, по цене среднего велика. Хорошие же машины обычно шумят больше за счёт шиповки, а не выхлопа.

Как по мне, в городах нужно  жить так, чтобы не мешать другим людям.

Показать полностью 1
Авто Громкость Автозвук Прямоток Штраф Камера фиксации Ответ на пост
63
1260
Falkosh
Falkosh
Автомобильное сообщество

В Нью-Йорке начали бороться против прямотоков⁠⁠1

3 года назад

Сначала они подняли штраф с 150 до 1000$ штраф за несоблюдение норм, сейчас в тестовом режиме заработали автоматические камеры с измерителем шума. Пока они выдают предупреждение. Следующий штраф будет 875$ (66 тыс руб)

В Нью-Йорке начали бороться против прямотоков

Загуглил, вилка штрафов там довольно большая: согласно закону владельцы могут быть наказаны штрафом в размере от 150 до 525 долл. за первое нарушение; от 300 до 1050 долл.  за второе правонарушение; и от 450 до 1575 долларов за любое нарушение после этого. Полагаю зависит именно от громкости звука - если пердит чуть-чуть, то небольшой штраф, а если как следует - то влепят по полной.


Уточнение от @polycarp72 #comment_227093159

Штраф не за повторное нарушение, а за неявку на измерение шума. Товарищу, которого засекли на камере с измерителем шума, было предложено приехать измерить шум и, если шум превышает норму, ему дадут время на замену глушака. Он забил на эту возможность и предложение превратилось в требование, за игнорирование которого - штраф. Это обычная практика в штатах, когда дается время на устранение незаконных модов у машин. Меня в свое время в Кали стопанули за тонировку. Тут нельзя тонировать стекла на передних дверях вообще, а я только переехал из штата, где было разрешено и тонировка была уже на новой машине. Отодрал пленку с передних дверей, заехал в ментовку, мне подписали бумажку и отменили штраф.

Показать полностью 1
Авто Громкость Автозвук Прямоток Штраф Камера фиксации
167
7
Gugudjamba
Gugudjamba

Продолжение поста «Имплантация bluetooth платы в магнитолу pioneer mvh-190ub и адаптер кнопок руля в одном флаконе»⁠⁠1

3 года назад

Еще раз напоминаю, все это тут в образовательных и развлекательных целях и повторение на ваш страх и риск. Все что сделаете своими ручками будет на вашей совести.


Предыстория этого безобразия тут. Откуда брать питание, куда подключать адаптер кнопок управления и аудиосигнал можно посмотреть там.


В сухом остатке от моей идеи теперь есть вот это:

Вот схема этого безобразия:

Если кому нужен только адаптер кнопок руля - просто берем нижнюю половину схемы и убираем нижний цифровой резистор X9C104 и резюк на10 кОм (так же убираем его если платка без кнопок или вообще другой модели).

Если кому нужно просто включать блютус платку в режиме AUX (в наличии второго такого умалишенного я сомневаюсь), то верхняя половина схемы, ну и управлением платкой можно пренебречь.

Номинал резистора 680 Ом выбран таковым в силу малости сопротивления резисторов кнопок на руле (от 30 до 1150 Ом), дабы обеспечить максимальное изменение напряжение на входе микросхемы. То есть его значение может быть и выше, в зависимости от вашего случая. Ниже точно нет - можно спалить вход на ардуине.

Резистор в 10 кОм создает делитель напряжения совместно с цифровым резистором и ограничивает ток на ножке микросхемы. Там по схеме с китайского сайта должно быть 22 кОм, но 10 тоже работают.


Если что, то я использовал esp-12f из-за малых размеров. Но исходно тестировал на большой платке. Просто начинающие не разберутся с прошивкой и обвесом, а те кто в теме и без меня поймут че и как. По факту все это можно собрать на стандартных блоках с помощью стандартных соединительных проводов, разве что зафиксировать от выпадания.

Код снова положу здесь, не хочу в гитхаб тащить - засмеют.

И снова привет команде пикабу за ущербный редактор, табы то зачем жрать?!


// Коды имеющихся на руле кнопок
const int VOL_UP=1;
const int VOL_DN=2;
const int PREV_TR=3;
const int NEXT_TR=4;
const int MODE=5;
const int MUTE=6;
// контакты первого потенциометра
int INC = 7;
int UD = 6;
int CS=5;
// аналоговый пин, на котором мы считываем сопротивление нажатой на руле кнопки
int wheelPin=A6;
// контакты второго потенциометра
int INC1 = 2;
int UD1 = 3;
int CS1=4;
// переменные
//int i=0;
int prevButton=7; // на всякий случай, чтобы при подаче питания сработал цикл и потенциометры были инициализированы
int j = 100; // инициируем переменную для первого потенциометра управляющего магнитолой
int k = 100; // для второго управляющего блютус платкой
void setup() {
pinMode(CS, OUTPUT);
pinMode(INC, OUTPUT);
pinMode(UD, OUTPUT);
digitalWrite(CS, HIGH);
digitalWrite(INC, HIGH);
digitalWrite(UD, HIGH);
pinMode(wheelPin, INPUT);
Serial.begin(115200);
pinMode(CS1, OUTPUT);
pinMode(INC1, OUTPUT);
pinMode(UD1, OUTPUT);
digitalWrite(CS1, HIGH);
digitalWrite(INC1, HIGH);
digitalWrite(UD1, HIGH);
}
// Эта функция читает сопротивление с кнопок на руле и возвращает код нажатой кнопки, либо 0
int getR() {
// читаем сопротивление (на самом деле напряжение, конечно) на аналоговом пине
int r=analogRead(wheelPin);
Serial.println(r); // для отладки
delay(100); // не знаю зачем
// Ищем, какая кнопка соответствует этому сопротивлению.
// Данные значения сопротивлений
if (r>=95 && r<=180) return(VOL_UP);//130 значение r для моей машины
if (r>=190 && r<=270) return(VOL_DN);//230
if (r>=550 && r<=750) return(PREV_TR);//605
if (r>=400 && r<=530) return(NEXT_TR);//476
if (r>=250 && r<=390) return(MODE);//333
if (r>=10 && r<=90) return(MUTE);//30
// если ни одна из кнопок не нажата, возвращаем 0
return (0);
}
// ОСНОВНОЙ ЦИКЛ
void loop() {
int currButton=getR(); // заносим в переменную currButton код нажатой кнопки
// Serial.println(currButton);
// Serial.println(prevButton);
if (currButton!=prevButton) { // если значение поменялось с прошлого раза
delay(10);
currButton=getR(); // ждем 10ms и читаем еще раз, чтобы исключить "дребезг" кнопки
if (currButton!=prevButton) { // если код кнопки точно поменялся с прошлого раза
prevButton=currButton; // сохраняем новое значение в переменную prevButton
switch(currButton) {
case VOL_UP: j = 15; break; //справка для значения сопротивлений pineer 16kОм (97 Ом для моей машины)
case VOL_DN: j = 23; break; //24к (201)
case PREV_TR: j = 11; k=64; setResistance1(k); break; //11к (1153)
case NEXT_TR: j = 7; k=74; setResistance1(k); break; //8к (611)
case MODE: j = 1; break; //1,2к (344)
case MUTE: j = 3; break; //4к (31)
default: j = 100; k = 100; setResistance1(k); break;// вертаем максимальное сопротивление
// точные значения j и k подбираются опытным путем, исходя из параметров цифровых резисторов
// у первого контролируется сопротивление, у второго падение напряжения на выходе
}
// выставляем сопротивление
setResistance(j);
// setResistance1(k); // заколходил вызов функции прям в свиче, чтобы лишний раз не гонять функцию, которая выполняется совсем не мгновенно
// Serial.print("j ");
// Serial.println(j); // да да, я не знаю как нормально отладкой заниматься на ардуине, используем дедовский способ.
// Serial.print("k ");
// Serial.println(k);
delay(50); // добавил паузу, чтобы четче отрабатывался сигнал магнитолой
}
}
}
// Эта функция задает сопротивление на цифровом резисторе 1
void setResistance(int percent) {
Serial.println(percent);
// Понижаем сопротивление до 0%:
digitalWrite(UD, LOW);
digitalWrite(CS, LOW);
for (int i=0; i<100; i++) {
digitalWrite(INC, LOW);
delayMicroseconds(1);
digitalWrite(INC, HIGH);
delayMicroseconds(1);
}
// сопротивление до нужного:
digitalWrite(UD, HIGH);
for (int i=0; i<percent; i++) {
digitalWrite(INC, LOW);
delayMicroseconds(1);
digitalWrite(INC, HIGH);
delayMicroseconds(1);
}
digitalWrite(CS, HIGH);
}
// Эта функция задает сопротивление на цифровом резисторе 2
void setResistance1(int percent) {
// Понижаем сопротивление до 0%:
digitalWrite(UD1, LOW);
digitalWrite(CS1, LOW);
for (int i=0; i<100; i++) {
digitalWrite(INC1, LOW);
delayMicroseconds(1);
digitalWrite(INC1, HIGH);
delayMicroseconds(1);
}
// сопротивление до нужного:
digitalWrite(UD1, HIGH);
for (int i=0; i<percent; i++) {
digitalWrite(INC1, LOW);
delayMicroseconds(1);
digitalWrite(INC1, HIGH);
delayMicroseconds(1);
}
digitalWrite(CS1, HIGH);
}

Второй скетч также был безжалостно сперт. На этот раз из стандартного примера библиотеки spi slave для esp8266. Откусил от примера кусочек, заставил читать статус SPI сообщения и как ни странно в этих данных обнаружил искомые сигналы на которые и заставил реагировать микросхемку.


/*
SPI Slave Demo Sketch
Connect the SPI Master device to the following pins on the esp8266:
GPIO NodeMCU Name | Uno
===================================
15 D8 SS | D10
13 D7 MOSI | D11
12 D6 MISO | D12
14 D5 SCK | D13
Note: If the ESP is booting at a moment when the SPI Master has the Select line HIGH (deselected)
the ESP8266 WILL FAIL to boot!
See SPISlave_SafeMaster example for possible workaround
*/
#include "SPISlave.h"
const int SwitchBT = 4;
int SwitchBTState;
void setup()
{
Serial.begin(115200);
Serial.setDebugOutput(true);
pinMode(SwitchBT, OUTPUT);
// data has been received from the master. Beware that len is always 32
// and the buffer is autofilled with zeroes if data is less than 32 bytes long
// It's up to the user to implement protocol for handling data length
SPISlave.onData([](uint8_t * data, size_t len) {
// Serial.printf("D%s\n", (int*)data);
// uint32_t istatus = SPIIR;
// uint32_t iiistatus = SPI1S;
// Serial.println(SPIIR, BIN);
// Serial.println(SPI1S, BIN);
// Serial.println(SPII1, BIN);
});
// status has been received from the master.
// The status register is a special register that bot the slave and the master can write to and read from.
// Can be used to exchange small data or status information
SPISlave.onStatus([](uint32_t data) {
Serial.printf("S%u\n", data);
if (data == 2248212531) {
SwitchBTState = HIGH;
Serial.println("high");
}
if (data == 2214658099 || data == 2147549235 || data == 2214658227) {
SwitchBTState = LOW;
Serial.println("low");
}
});
// Setup SPI Slave registers and pins
SPISlave.begin();
}
void loop() {
digitalWrite(SwitchBT, SwitchBTState);
}

Если что, вот какая прорва информации была перелопачена в поисках заветных сочетаний циферок:

Подключать к магнитоле надо вот к этим ножкам:

На самой плате удобнее припаяться к тестовым пятакам снизу. Какой провод за что отвечает на фото уже не вспомню. Да и если вы надумали повторить это и не знаете как прозвонить контакт - то вам явно не стоит лезть в это.

Подводя итог - шалость удалась ©

Я получил массу эмоций, чуточку знаний и море удовольствия в эти огразмические секунды  бега по квартире с криками "IT'S ALIVE !1!11!", когда эта хрень заработала. Конечно, есть шероховатости типа негромкого щелчка в колонках при подаче питания на платку. Но городить ерунду с еще одним сигналом на мьют усилителя счел излишним. Тогда уже проще купить магнитолу и не сношать мозг.

Впрочем... собрать "свою" магнитолу идея в голове присутствует. Даже для пробы купил ЦАП крошечный с алика для мобилки и компьютера... а надо сказать очень крутая штука оказалось! Я как джаз послушал... так восторг, джаз прям заиграл. Но об этом может быть потом.


Ах да, самое главное. Мораль =)

Мораль такова - разделяй отладку железа и софта. Сначала одно, потом другое. Ну и внимательней с редактированием кода, одна маленькая ошибочно закомментированная строчка может стоить вам многих часов попаболи и искреннего непонимания почему оно не работает. Ну и +-20% отклонения это овердохера.

Но самое главное - не работайте уставшим над сложными  или важными вещами, это чревато большими потерями времени и нервов, в лучшем случае.

А вот теперь я хочу рассказать о тех душевных терзаниях и страданиях которые испытал на этом тернистом пути. К прочтению совсем не обязательно, не гарантирую что вам это будет интересно.


Сама соль проблемы в том, что главные ардуинщики и библиотекописаки идиоты. Они решили что анрдуине не нужны микроконтроллеры в режиме slave. Хотя в процессе поиска решения своей проблемы сталкивался с огромным количеством случаев когда люди хотели получить такую плюшку. Смысл же ардуины в том, чтобы облегчить жизнь и дать в руки инструмент относительно простой и не требующий взрывать мозг хардкорным прогерством на сишке или плюсах. Если посмотреть код и прудыдущего поста, то окажется что в нем ардуина моя работает с spi в slave режиме напрямую, то есть минуя разные там библиотеки и просто обращаясь к регистрам. Забегая вперед скажу что вроде как единственная работающая библиотека умеющая в slave есть только у esp8266, а esp32 и STM32 уже не имеют такой. Собственно, на ней и основано решение проблемы.

Итак, столкнувшись с тем, что ардуино нано не успевает решил попробовать esp8266. Вот тут еще кусочек морали - никогда не спеши с выводами. С ходу использовав тестовый скетч я не получил удобоваримой информации и мало того, получал её в виде кроказябр. Психанув закинул на дальнюю полку и заказал stm32f103c6t6 - младшенькую из bluepill семейства. Кстати, у меня теперь этого добра кучка тыщь на пять и я не знаю что с ним делать =) вот такой вот побочный эффект от "экономии". Придется придумывать проект где можно задействовать все это барахло.

Ну продолжим. Естественно, я не изучил информацию досконально и наступил на те же грабли - нет нужной библиотеки а код для ардуино нано естественно не подходит. И тут меня торкнуло, я попробовал откусить кусок больше, чем мог проглотить. С одной стороны я хотел закончить проект во чтобы то ни стало, а с другой сил и терпения на него было не много. Ах да, началось все с того, что все пять присланных эстээмок не работали через USB, то есть прошить их не получалось. Благо я умел делать это используя USB конвертер с ардуины, но легче от этого не стало, чего-то там все равно не хватало и нужен был родной программатор, который я естественно проигнорировал. Но в целом обошлось, ардуина умеет делать .bin который и прошивался через последовательны интерфейс. Но и тут меня ждало разочарование, требовалось таки прильнуть к корням. Вот щас страшные картинки накидаю.

Собственно, с STM32CubeIDE и STM32CubeMX я познакомился в попытках решить проблему определения контроллера USB портом. И надо сказать, это очень крутые штуки. Мало того, что относительно легко можно скофигурировать назначение ног контроллера натыркав правильные галки, так еще оно и код минимальный под это генерирует само. Но вот на этом моменте я и сломался окончательно. Я научился читать данные из шины spi... Но снова в кракозябрах... и буфер... и... В общем, я решил что разбираться в библиотеке HAL и сишном синтаксисе дальшке яне готов. Я же только учусь на джаве пописывать, а тут сишка. Я хз как, но джава все равно мягче и приятнее для пониманию. А СИ это как... ну я хз... ну как носить чугунные сапоги против удобных кросовочек. Если научишься в них ходить и недабох бегать - тебя просто не остановить, как халк будешь сносить все подряд. Правда бесшумно ходить тоже не сможешь :)

Короче, решил я уменьшить градус накала и внимательней присмотреться к espшке... И о чудо, буквально в один вечер поковыряв код высрал франкеншейна, который заработал.

Перейти к видео
Показать полностью 9 1
[моё] Рукоделие Самоделки Автозвук Bluetooth Arduino Адаптер Рукоделие без процесса Видео Ответ на пост Длиннопост
5
134
cartime.pkb
cartime.pkb
Автомобильное сообщество

Посиделки⁠⁠

3 года назад
Посиделки
[моё] Мемы Авто Обочечники Диоды Автозвук Картинка с текстом
11
1271
cartime.pkb
cartime.pkb
Автомобильное сообщество

Автозвук⁠⁠

3 года назад
Автозвук
Показать полностью 1
[моё] Мемы Авто Автозвук Сабвуфер
85
4
FobatsJah
FobatsJah
Таиланд

Выставка тюнинга и автозвука⁠⁠

3 года назад

Вчера на пляже Карон была организована небольшая выставка машин с экстремальным автозвуком

Перейти к видео
Таиланд Вертикальное видео Пхукет Карон Видео Автозвук
7
2
danmerdrou
danmerdrou
Автомобильное сообщество

Проблема с электрикой автомобиля⁠⁠

3 года назад

Добрый день.
Возникла проблема с электрикой автомобиля kia rio (jb /fl) 2010 года выпуска. (Седан)
1. Пропало освещение багажного отделения и при открытии багажника нет горения датчика открытия на приборной доске.
2 . Через несколько дней после появления первой проблемы перестали работать колонки, как передние, так и задние.
Магнитола родная, видит флешку, радиостанции, но звука нет.
Пытался перевести звук вперёд/назад, влево/вправо - бесполезно. Правда, как возможный симптом, накануне, перед исчезновением звука, флешка "играла" не так, как обычно, тормозила, звук кратковременно прерывался.
Планирую в сервис, но хотелось бы примерно представлять причину, возможный объём работ.
Заранее благодарю всех ответивших по делу.

Kia Rio Электрика Проблема Автозвук Текст
28
15
cartime.pkb
cartime.pkb
Автомобильное сообщество

Автозвук⁠⁠

3 года назад
Автозвук
Показать полностью 1
[моё] Мемы Авто Автозвук Сабвуфер
7
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии