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

Башня

Аркады, Строительство, На ловкость

Играть

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

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

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

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

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

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

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

Arduino + Идея

С этим тегом используют

Электроника Ardublock Самоделки YouTube Своими руками Вертикальное видео Видео ВК Telegram (ссылка) Дизайн Юмор Креатив Бизнес Маркетинг Все
9 постов сначала свежее
1157
trapwalker
trapwalker
Умный дом, проекты, философия ИИ, ностальгия, ПУТЕШЕСТВИЯ, футурология, критическое мышление, научпоп, выживалово, геймдев, просто о сложном
Инженериум DIY
Серия ОчУмелыеРучки
7 месяцев назад

Тут народ всякую херню за лайки клянчит⁠⁠

А я что, рыжий что ли? Но я не буду про отжимания и подобную хрень.

Если будет интерес, а он, надо сказать, не всегда есть, бывает постараешься, сделаешь пост с уникальным контентом, а его в гробу видали, то, короче, расскажу, покажу и подробно объясню как недорого из буханки хлеба и простых недорогих запчастей собрать без знаний и умений WiFi-бомбу, которая будет лишать соседа вайфая, если он шибко громко музыку в неположенное время слушает.

Тут народ всякую херню за лайки клянчит Arduino, Идея, Esp8266, Проект, Wi-Fi, Bluetooth, Как достать, Соседи, Проблемные соседи, Квест, Квесты в реальности, Своими руками, Электроника, Микроконтроллеры

Для тех, кто в теме, поясню, что речь о деаутентификаторе с микрофоном. Будем мерять уровень шума, а если он долго превышает порог, то будем глушить вайфай на некоторое время.

Управлять устройством можно будет удалённо, а спрятать недалеко от квартиры излишне шумного соседа.

Это в кадре, кстати, не все необходимые запчасти. Вернее тут много лишнего.

И да, инструкций в сети и без моих навалом, но меня ж можно в комментах поспрашивать, да в панамку напхать...

Ещё в планах проекты:

- Обнаружение домочадцев на подходе к дому\квартире (по сигналу вайфая и блютуса), интеграция в умный дом (mqtt Home Assistant), Алису, Telegram и прочее. Фактически это датчик присутствия конкретного смартфона (блютус гарнитуры, смарт-часов, и т.д.) для умного дома.

- Городской геотрекер по файфаям.

- Небольшой иммерсивный квест "Загадочный WiFi в Лесу".

- Устройство генерации нервного тика у врагов путём злостного нерегулярного попискивания. С беспалевным управлением через Bluetooth или WiFi.

Показать полностью
[моё] Arduino Идея Esp8266 Проект Wi-Fi Bluetooth Как достать Соседи Проблемные соседи Квест Квесты в реальности Своими руками Электроника Микроконтроллеры
285
194
monobogdan
monobogdan
2 года назад
TECHNO BROTHER

Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера⁠⁠

Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера Смартфон, Телефон, Идея, Своими руками, Arduino, Embedded, Встраиваемые системы, Планшет, Игры, Консоли, Самоделки, Моддинг, Android, Linux, Java, C++, Kernel, Покупка, Raspberry pi, Микроконтроллеры, Видео, Длиннопост

К сожалению, в наше время многие старые, но весьма неплохие по характеристикам гаджеты отправляются напрямую в помойку, и их владельцы не подозревают, что им можно найти применение. Сервер, мультимедийная-станция, да даже просто как TV-приставка — люди в упор не замечают сфер, где старенький планшет мог бы быть полезен. Но как быть, если посвящаешь жизнь портативным гаджетам, кодингу и копанию в железе? Правильно: сделать довольно мощную игровую консоль из старого планшета самому! Сегодня вам расскажу, как я сделал свою портативную приставку из планшета с нерабочим тачскрином, Raspberry Pi Pico и 8 кнопок! За рабочим результатом прячется несколько дней работы: поиск UART на плате, разработка контроллера геймпада на базе RPi Pico, написание приложения-сервиса, которое слушает события и отправляет их в подсистему ввода Linux в обход Android. Интересно? Тогда жду вас под катом!

❯ Мотивация


Прошло уже практически 10 лет с того момента, как у меня появилась моя первая портативная консоль. Несмотря на то, что я был заядлым ПК-игроком, я уже успел посмотреть на PS3 и PSP, но денег на их покупку у меня особо не было, да и к тому времени уже был в наличии Android-планшет. Но к моему 13-летию в 2014 году, когда я ходил и выбирал себе будущий девайс на день рождения, отец и мама решили подарить мне мою первую портативную консоль. Изначально, я уговаривал её купить мне целых два девайса, но бюджет был ограничен 4.000 рублей, а я хотел взять смартфон Fly IQ239 и консоль JXD S601 одновременно:

Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера Смартфон, Телефон, Идея, Своими руками, Arduino, Embedded, Встраиваемые системы, Планшет, Игры, Консоли, Самоделки, Моддинг, Android, Linux, Java, C++, Kernel, Покупка, Raspberry pi, Микроконтроллеры, Видео, Длиннопост


Однако, увидев здоровую 7-дюймовую консоль в магазине TREC (думаю, жители южной части РФ помнят такой), мама уговорила меня взять именно её, мотивируя это «ну и чего ты будешь тыкаться в этот мелкий экран? Возьми большую». После покупки гаджета, я был доволен: играл какие-то игрушки с ретро-платформ, устанавливал игры на Android, сидел в ВК через Kate Mobile. Что еще нужно было школяру? Однако, планшет прожил у меня недолго: с очередного лага я психанул и ударил по нему кулачком, унеся на тот свет и дисплей и тачскрин. Так консолька и пролежала в подвале около 8 лет. Впрочем, мне продолжали импонировать подобные устройства и в прошлом году я купил и написал про несколько подобных девайсов.

Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера Смартфон, Телефон, Идея, Своими руками, Arduino, Embedded, Встраиваемые системы, Планшет, Игры, Консоли, Самоделки, Моддинг, Android, Linux, Java, C++, Kernel, Покупка, Raspberry pi, Микроконтроллеры, Видео, Длиннопост



Несколько месяцев назад, мой читатель Кирилл Севостьянов с Хабра прислал мне HTC HD2 в качестве донора и планшет Prestigio PMP7170B3G, который был рабочим, но… у него отказал тачскрин. Я всё думал, чего бы с ним сделать и решил реализовать игровую консольку своими руками из подручных средств. Идея крутилась в голове довольно давно, но реализовал я её только сейчас.

❯ Что нам нужно сделать?


Итак, что должно быть у портативной консоли? Чипсет, дисплей, звук, ОС — это всё нам уже предоставляет планшет. Нам остаётся лишь сделать свой геймпад. Давайте подумаем, что нам будет нужно для того, чтобы его сделать и передавать от него события на планшет:

  • Контроллер для геймпада: тут нам подойдет практически любой микроконтроллер, который работает от 3.3в. Выбор большой: Arduino Pro Mini 3.3v, ESP32, RPi Pico. Я остановился на последнем: недавно я взял себе две штучки «пощупать» их — и они мне очень понравились!

  • Физический интерфейс: с планшетом нужно как-то общаться. У нас есть три варианта: USB (не факт, что поддержка преобразователей включена в ядре), UART и SPI/I2C на пятачках тачскрина (потребуют написания драйвера т. к. в android-устройствах нет прямого доступа к SPI/I2C из userland'а). Я остановился на UART: его легко найти на большинстве китайских планшетов, а если не получилось — то на помощь может прийти схема платы.

  • Программная реализация: как это будет работать? Я решил реализовать геймпад в виде сервиса на Android, который слушает состояния кнопок с UART и «инжектит» события напрямую в драйвер ввода. Таким образом, поддержка нашего геймпада появляется даже в самой системе — можно управлять менюшкой или приложениями как с клавиатуры!


    С планом определились, пора начать с программной части: сначала нам обязательно понадобится ROOT-доступ. Его получение на разных девайсах отличается — на prestigio уже был порт CWM и я просто поставил SuperSU. Без ROOT доступа мы не сможем использовать UART!

Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера Смартфон, Телефон, Идея, Своими руками, Arduino, Embedded, Встраиваемые системы, Планшет, Игры, Консоли, Самоделки, Моддинг, Android, Linux, Java, C++, Kernel, Покупка, Raspberry pi, Микроконтроллеры, Видео, Длиннопост


Теперь нам нужно найти пятачки UART на плате. Разведен он не везде, но в случае устройств на MediaTek — почти всегда, ещё и пятачки подписаны. На моём планшете он нашёлся сразу: был между двух металлических экранов и соответствовал 4-ому каналу UART. Получить к нему доступ можно в /dev/ttyMT3. Я использую ESP32 в качестве UART преобразователя: подпаиваемся к RX/TX, запускаем putty и заходим в adb shell. Определяем бодрейт (скорость) нашего UART порта — на MediaTek он обычно равен 921600, на других чипсетах — 115200. Пытаемся что-то вывести и хоба — мы уже можем «поболтать» с планшетом!

Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера Смартфон, Телефон, Идея, Своими руками, Arduino, Embedded, Встраиваемые системы, Планшет, Игры, Консоли, Самоделки, Моддинг, Android, Linux, Java, C++, Kernel, Покупка, Raspberry pi, Микроконтроллеры, Видео, Длиннопост

❯ Приложение-сервис


Итак, у нас уже есть доступ к UART и мы можем общаться с планшетом из внешнего мира. Но получить события с кнопок пол дела, нужно их ещё и послать в систему. Для этого есть целых три способа:

  1. InputManager.injectInputEvent — именно этим методом пользуется команда input, которую вы можете использовать через adb. Но увы, он работает только при наличие разрешения INJECT_EVENTS, который доступен только системным приложениям — находятся они в /system/app и подписаны тем же сертификатом, что и остальная прошивка.

  2. Модуль uinput дает возможность создать виртуальное устройство ввода и посылать события из userland'а — т. е. из прикладного приложения. У моего планшета было устройство /dev/uinput, но lsmod показывал, что сам модуль не загружен. Так что отметаем — он есть не везде.

  3. Прямой инжект событий в character устройство — весьма грязный хак, который позволяет инжектить события, не притворяясь системным приложением, но имеет некоторые ограничения. Именно его я и выбрал и о ограничениях ниже.


Сначала нам нужно узнать, какие кнопки поддерживают загруженные устройства ввода в системе. Для этого используем команду getevent -li. Там есть разные устройства ввода, в том числе и тачскрин (если вам нужно симулировать нажатия на экран), мне же подошёл драйвер физических кнопок mtk-kpd. Он занимается обработкой кнопок громкости, включения и т. п. Тут важно обратить внимание на то, что если попытаться послать кнопку, которое устройство не реализует (например пробел), то ничего не произойдет:

Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера Смартфон, Телефон, Идея, Своими руками, Arduino, Embedded, Встраиваемые системы, Планшет, Игры, Консоли, Самоделки, Моддинг, Android, Linux, Java, C++, Kernel, Покупка, Raspberry pi, Микроконтроллеры, Видео, Длиннопост



Инжект событий я писал на C, т. к. это требовало прямой записи input_event, а в Java прокинул его через Jni. Концепция простая: открываем устройство /dev/input/event2 и посылаем в него события ввода и синхронизации (это обязательно!), которые затем Android читает и обрабатывает:

#include <linux/uinput.h>

#include <fcntl.h>

#include <unistd.h>

#include <stdio.h>

#include <stdlib.h>

#include <android/log.h>

#include <jni.h>

int uinput;

extern "C" JNIEXPORT void JNICALL Java_com_monobogdan_inputservicebridge_InputNative_init(JNIEnv *env, jclass clazz) {

uinput = open("/dev/input/event2", O_WRONLY);

__android_log_print(ANDROID_LOG_DEBUG , "Test", uinput >= 0 ? "Open event OK" : "Failed to open event"); }

void emit(int fd, int type, int code, int val) {

struct input_event ie; ie.type = type;

ie.code = code; ie.value = val;

ie.time.tv_sec = 0;

ie.time.tv_usec = 0;

write(fd, &ie, sizeof(ie)); }

extern "C" JNIEXPORT void JNICALL Java_com_monobogdan_inputservicebridge_InputNative_sendKeyEvent(JNIEnv *env, jclass clazz, jint key_code, jboolean pressed) {

__android_log_print(ANDROID_LOG_DEBUG , "Test", "Send");

emit(uinput, EV_KEY, key_code, (bool)pressed ? 1 : 0);

emit(uinput, EV_SYN, SYN_REPORT, 0);

}

Основной обработкой занимается сервис, который я реализовал в отдельном потоке: он слушает события с UART и посылает соответствующие изменения состояния через sendKeyEvent. На вход приходят простые сообщения вида:

U L где U/D — нажато, не нажато, а L — однобайтовый идентификатор кнопки. В случае L — это влево, R — вправо и т. п. Вся доступная раскладка хранится в словаре. Причём само чтение из UART реализовано костылем с чтением «чужого» stdout, т. к. android-приложения не умеют сами по себе работать с root правами. В теории, это могло дать неприятный оверхед, но на практике никакого серьезного инпут лага это не создает. Не забываем сделать устройство event записываемым — ставим ему права 777:

package com.monobogdan.inputservicebridge;

public class InputListener extends Service {

private static final int tty = 3;

private InputManager iManager;

private Map<Character, Integer> keyMap;

private Method injectMethod;

private Process runAsRoot(String cmd)

{

try {

return Runtime.getRuntime().exec(new String[] { "su", "-c", cmd });

}

catch (IOException e)

{

e.printStackTrace();

return null;

}

}

@override

public void onCreate() {

super.onCreate();

// According to linux key map (input-event-codes.h)

keyMap = new HashMap<>();

keyMap.put('U', 103);

keyMap.put('D', 108);

keyMap.put('L', 105);

keyMap.put('R', 106);

keyMap.put('E', 115);

keyMap.put('B', 158);

keyMap.put('A', 232);

keyMap.put('C', 212);

InputNative.init();

try {

runAsRoot("chmod 777 /dev/input/event2").waitFor();

} catch (InterruptedException e) {

throw new RuntimeException(e);

}

Executors.newSingleThreadExecutor().execute(new Runnable() {

@override

public void run() {

Process proc = runAsRoot("cat /dev/ttyMT" + tty);

BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream()));

while(true)

{

try {

String line = reader.readLine();

if(line != null && line.length() > 0) {

Log.i("Hi", "run: " + line);

boolean pressing = line.charAt(0) == 'D';

int keyCode = keyMap.get(line.charAt(2));

Log.i("TAG", "run: " + keyCode);

InputNative.sendKeyEvent(keyCode, pressing);

}

}

catch(IOException e)

{

e.printStackTrace();

}

/*try {

Thread.sleep(1000 / 30);

} catch (InterruptedException e) {

e.printStackTrace();

}*/

}

}

});

}

@override

public IBinder onBind(Intent intent) {

return null;

}

}

Таким образом, если мы отправляем с ПК «D L» — система считает, что мы зажали стрелку влево, а U L — считает что мы отпустили. Но если mtk-kpd поддерживает стрелки и еще некоторые действия без каких либо проблем, то enter в список обрабатываемых кнопок не входит: придется мудрить! И тут нам приходит на помощь механизм трансляции кодов кнопок в действия: они хранятся в специальных файлах .kl в /system/usr/keylayout/. Я назначил DPAD_CENTER на… кнопку регулировки громкости звука! Ну, а почему бы и нет. :) Таким образом можно переназначить уже имеющиеся кнопки громкости на, например, start/select.

Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера Смартфон, Телефон, Идея, Своими руками, Arduino, Embedded, Встраиваемые системы, Планшет, Игры, Консоли, Самоделки, Моддинг, Android, Linux, Java, C++, Kernel, Покупка, Raspberry pi, Микроконтроллеры, Видео, Длиннопост

❯ Геймпад


После того, как сервис был готов и отлажен, нужно было реализовать хардварную часть проекта — сам геймпад. В качестве контроллера я, как уже говорил, выбрал Raspberry Pi Pico на базе МК RP2040 — бодреньком контроллере с двумя ARM Cortex-M0 ядрами. Стоит копейки, а в отличии от ESP'шек, его SDK не такое перегруженное и выглядит более приближенным к bare-metal.

Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера Смартфон, Телефон, Идея, Своими руками, Arduino, Embedded, Встраиваемые системы, Планшет, Игры, Консоли, Самоделки, Моддинг, Android, Linux, Java, C++, Kernel, Покупка, Raspberry pi, Микроконтроллеры, Видео, Длиннопост



На данный момент, я решил развести все кнопки на бредборде — макетной плате без пайки, т. к. макеток для пайки у меня под рукой не было. Сделал примитивный геймпад:

Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера Смартфон, Телефон, Идея, Своими руками, Arduino, Embedded, Встраиваемые системы, Планшет, Игры, Консоли, Самоделки, Моддинг, Android, Linux, Java, C++, Kernel, Покупка, Raspberry pi, Микроконтроллеры, Видео, Длиннопост



Развел на соответствующие GPIO:

Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера Смартфон, Телефон, Идея, Своими руками, Arduino, Embedded, Встраиваемые системы, Планшет, Игры, Консоли, Самоделки, Моддинг, Android, Linux, Java, C++, Kernel, Покупка, Raspberry pi, Микроконтроллеры, Видео, Длиннопост



И написал примитивную прошивку, которая отслеживает состояние кнопок. В прошивке точно так же есть словарь, задающий ассоциацию между физическими пинами и «виртуальными» кнопками. При нажатии или отжатии кнопки, программа изменяет стейт и отсылает новое состояние планшету.

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include "pico/stdlib.h"

#include "pico/time.h"

#include "hardware/uart.h"

struct keyMap

{

int gpio;

char key;

bool pressed;

int lastTick;

};

keyMap keys[] = {

{

15,

'L',

false,

0

},

{

14,

'U',

false,

0

},

{

13,

'D',

false,

0

},

{

12,

'R',

false,

0

},

{

11,

'E',

false,

0

},

{

10,

'B',

false,

0

},

{

20,

'A',

false,

0

},

{

21,

'C',

false,

0

}

};

#define KEY_NUM 8

int main() {

stdio_init_all();

uart_init(uart0, 921600);

gpio_set_function(PICO_DEFAULT_UART_TX_PIN, GPIO_FUNC_UART);

gpio_set_function(PICO_DEFAULT_UART_RX_PIN, GPIO_FUNC_UART);

sleep_ms(1000); // Allow serial monitor to settle

for(int i = 0; i < KEY_NUM; i++)

{

gpio_init(keys[i].gpio);

gpio_set_dir(keys[i].gpio, false);

gpio_pull_up(keys[i].gpio);

}

while(true)

{

int now = time_us_32();

for(int i = 0; i < KEY_NUM; i++)

{

char buf[5];

buf[1] = ' ';

buf[3] = '\n';

buf[4] = 0;

if(!gpio_get(keys[i].gpio) && !keys[i].pressed && now - keys[i].lastTick > 15500)

{

buf[0] = 'D';

buf[2] = keys[i].key;

puts(buf);

keys[i].lastTick = now;

keys[i].pressed = true;

continue;

}

if(gpio_get(keys[i].gpio) && keys[i].pressed && now - keys[i].lastTick > 15500)

{

buf[0] = 'U';

buf[2] = keys[i].key;

puts(buf);

keys[i].pressed = false;

keys[i].lastTick = now;

}

}

}

}

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

Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера Смартфон, Телефон, Идея, Своими руками, Arduino, Embedded, Встраиваемые системы, Планшет, Игры, Консоли, Самоделки, Моддинг, Android, Linux, Java, C++, Kernel, Покупка, Raspberry pi, Микроконтроллеры, Видео, Длиннопост



А почему бы не попробовать поиграть в какую-нибудь игру? Ну мы же консоль вроде делаем: берём эмулятор NES, биндим кнопки в настройках и наслаждаемся игрой в Марио!

❯ Заключение


Реализация этого проекта заняла у меня не так уж и много времени: всего около 3-х дней работы по вечерам. Вероятно кто-то спросит: «а чего ты просто Bluetooth геймпад не купил?». Так это не прикольно ведь. Гораздо приятнее играть в девайс, к которому ты приложил руку сам. Более того, не у всех старых планшетов есть BT. Обошёлся на данной стадии проект недорого: планшет мне подарили бесплатно (точно также у вас дома может лежать подобный), RPi Pico — 350 рублей, кнопки по 10 рублей/штучка.

В целом, я сам по себе обожаю копаться в различных железках и их софтварной части (вспомнить хотя-бы статью про перекомпиляциюu-boot из вендорских исходников для нонейм консоли), а созидать что-то свое вообще вызывает какие-то нереальные всплески эндорфина — оно и понятно! :)

Однако несмотря на то, что мы уже имеем рабочий «прототип», проект далёк от завершения: я намерен довести его до конца и окончательно перевоплотить старый планшет в автономную игровую консоль (и рассказать об этом во второй части статьи). Для этого мне понадобится распечатать корпус и кнопки на 3D-принтере. К сожалению, у меня в городе ни у кого особо нет 3D-принтеров, поэтому начну копить на Ender 3, а от вас, читателей, с удовольствием почитаю мнение в комментариях и советы касательно выбора принтера!

Статья подготовлена при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, чтобы не пропускать еженедельные статьи про моддинг различных гаджетов!

Показать полностью 10 1
[моё] Смартфон Телефон Идея Своими руками Arduino Embedded Встраиваемые системы Планшет Игры Консоли Самоделки Моддинг Android Linux Java C++ Kernel Покупка Raspberry pi Микроконтроллеры Видео Длиннопост
33
ElonMuskSpaceX
ElonMuskSpaceX
3 года назад
Бестолковые вопросы

Вопросик⁠⁠

А если бы вам хороший 3D принтер подарили друзья, то что бы вы на нем сделали?

3D 3D принтер Самоделки Ремонт Идея Вопрос Рукожоп Технологии ЧПУ Электрика Arduino Электроника Производство Тюнинг Ремонт техники Поломка Текст
45
Партнёрский материал Реклама
specials
specials

Считаете себя киноманом 80 LVL?⁠⁠

Залетайте проверить память и сообразительность → Будет интересно

Киногерои Тест Текст
63
trapwalker
trapwalker
3 года назад
Лига идей
Серия Есть идея

Ответ на пост «Сделал студийный фонарь из сантеха»⁠⁠1

Мой любмый канал (@AlexGyver) про DIY.
Жалко автор идеи для самоделок не принимает, видимо своих выше крыши.

Но оставлю здесь парочку, вдруг пригодятся кому.

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

2. Дешевый способ сделать аналог яндекс-розетки на базе ESP8266 с возможностью подключения к Алисе.
Вот у него на канале уже были радиоуправляемые розетки, но в умный дом такие негодятся. Нужна интеграия с алисой, API для подключения к мажордому и т.д.

3. Приёмник и передатчик для радиопеленгационной игры "Охота на лис". В сети полно схем, но простых и повторяемых "из сантеха" ещё не было.


4. Ароматизатор выхлопных газов. Картридж с силиконовыми капсулами, внутри каждой спиралька нагревательная и ароматизатор. По блютуз с телефона выбираем нужный аромат и выхлоп нашего авто приобретает аромат кофе или мандаринов. Посоны на парковке оценят.

5. Бегущая строка для автомобилистов. Лепим на заднее стекло, а на руле "горячие" кнопки со смайлами: "спасибо", "козёл", "ПНХ", "у вас номера грязные", "соблюдайте дистанцию"... ну и кастомизируемые варианты, настраиваемые по БТ с телефона.

6. Дверца для кота. Чтобы как в космических кораблях из фантастики. Можно сделать ирисовую диафрагму или красиво раздвигающиеся створки.
Должна без особых проблем врезаться в любую межкомнатную дверь, симпатично смотреться и не сильно ухудьшать звукоизоляцию. При приближении кота должна открываться давая ему пройти. Не должна перекусывать кота пополам. Можно реализовать авторизованный доступ по RFID-метке.

7. Тёплая будка для мелких собак (и\или кошек). Эти звери даже в квартирах иногда подмерзают. Нужно сделать удобную корзинку, чтобы безопасный подогрев включался только когда животное внутри. Можно вести статистику пользования будкой подсчитыая часы, проведенные в ней.

8. Умный светящийся радио-ошейник с зуммером для мелких собак.
На крупных таких ошейников полно, а мелкие могут потеряться и хрен их найдёшь, особенно вечером. Не знаю реально ли туда треккер сейчас вставить достаточно компактный, но светодиоды и пищалку можно точно, а еще можно блютус, чтобы в режиме iBeaсon видно было расстояние до собаки хотя бы.
Но круче было бы, конечно, дисплейчик с радаром как у охотников за привидениями.


9. Управляемый USB-хаб. Это такой хаб, у которого гнёзда можно включать\выключать программно отправляя команды по расписанию или по каким-то событиям на компе. К примеру, так можно выключать всякие вентиляторы. и прочие USB-девайсы. Хорошо бы. конечно, за одно, прокачать отдаваемые хабом токи, чтоб с каждого по два ампера выдавал точно.

10. Домик для обуви. Конструктор для сборки расширяемой полочки для обуви. Заказываем резку деталей из фанеры на лазерном станке ЧПУ, собираем и получаем полку для обуви, которая умеет понимать есть ли ботинки в ячейке, умеет сушить обувь в оптимальном режиме теплым воздухом, подогревать обувь к заданному часу, выключатся когда уже не требуется сушка.


11. Электронная сушилка для полотенцев в ванной. Должна включаться и греть только если полотенца на ней висят мокрые. Если полотенца высохли - должна выключаться.


12. ХЗ как назвать. Несколько десятков тривиальных пенопластовых корабликов с батарейкой, двумя моторчиками, RGB светодиодом и инфракрасным фото-диодом. Выпускаем их на воду, смотрим на них с двух ракурсов через две веб-камеры, программно управляем корабликами понимая их местоположения по вспышкам. Отдаём команды на управление моторами через инфракрасный прожектор. Смысл в том, чтобы сделать прикольные красочные представления, только не дронами в воздухе, а корабликами на воде. Готов помочь с написанием софта для определения координат и автоматического управения корабликами.



Идеи берите кто хотите. Без реализации они яйца выломанного не стоят, а если кто сделает - пишите, может хоть успею купить и попользоваться результатами =)

Показать полностью
[моё] Электроника Arduino Самоделки Своими руками Программирование Идея Проект Ответ на пост Текст
79
56
trapwalker
trapwalker
3 года назад
Arduino & Pi
Серия Есть идея

Давайте делать крутые уникальные DIY-проекты, а не очередные ардуино-кликеры. Идей всем, разбирайте!⁠⁠

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

1. Электронные булавки для карты.
Идея в том, чтобы наделать светодиодных булавок для карты, а потом с компа управлять их свечением и миганием разными цветами.

Нужно напечатать на 3д-принтере (в любом фаб-лабе) корпуса, куда вставляется голый контроллер навесным монтажом, инфракрасный приёмник, две батарейки-таблетки, RGB-светодиод и вклеивается обычная канцелярская кнопка для пробковой доски.
Управляем через USB-свисток с инфракрасным светодиодом. Передаём ID булавки, и закодированный алгоритм переключения цвета.

2. Кораблики.
Контроллер со светодиодом как в прошлом проекте, но корпуса нарезаются из пенопласта горячей проволокой по кондуктору, добавляются два маленьких моторчика с удлиненными валами и гребными винтами и драйвер для управления ими. Весь кораблик примерно размером с палец. Идея в том, чтобы этих корабликов было несколько десятков. Пускаем их на воду, а с берега или моста смотрим на них обычной веб-камерой и светим инфракрасным сетодиодным прожектором с модуляцией сигнала.
Камера отслеживает огоньки и математически определяет координаты корабликов. Чтобы понимать где какой именно, можно давать сигнал конкретным корабликам выключить или переключить свет на долю секунды. Далее трекать уже по свечению. Динамическим управлением корабликам можно задавать произвольные траектории, делать из них красивые узоры и построения. Это как шоу дронов, только на воде.


3. Аудиорегистратор.

Фактически это микрофон с кнопкой на петличку. Его задача непрерывно писать звук вокруг, иметь внутри часы и в специальном файлике запоминать когда нажималась кнопка.

Идея в том, чтобы не приходилось ничего записывать в блокнотик. Просто ставим закладку кнопкой на записи и говорим (опционально) заголовок. Прибор сливает записанное во время зарядки через USB на комп. В это время работает на запись другой такой же прибор. При записи можно шифровать звук ассиметричным ключом так, чтобы завладев неправомерно петличкой с нее нельзя было получить звук. На компе при зарядке речь распознаётся и индексируется для текстового поиска. Можно в веб-интерфейсе видеть весь таймлайн с метками и заголовками, можно прослушать произвольные куски, пометить их ненужными, важными или прочитанными.

Такой девайс очень недооценён в походах, сплавах, путешествиях, когда путевые записи делать некогда, но непрерывно возникает необходимость делать какие-то пометки для отчета. Это цены за проезд и пирожки, это какие-то ориентиры, это номера телефонов и адреса, это разъяснения местных как докуда-то добраться (возможно на малознакомом языке), это комментарии о порогах и завалах на маршруте.  По временнЫм меткам запись четко привязывается к GPS-треку, который записывается каким-то другим устройством.
Смартфоны, к сожалению, пока что не могут выполнять такую функцию непрерывной записи, нужно более энергоэффективное специализированное устройство.


4. Контроллер для интеграции дешевой бытовой техники в умный дом.

Проблема. Есть, к примеру, хорошая недорогая, но качественная стиральная машина. Как интегрировать её в "умный дом"?
Делаем небольшое типовое устройство на базе ESP с вайфаем. Питаться оно может от внутреннего низковольтного БП стиральной машины, должно иметь несколько входов, заточенных на подключение параллельно индикаторным светодиодам стиральной машины и управляющим кнопкам без фиксации. Можно предусмотреть индуктивный датчик тока на основе токового трансформатора в виде петли вокруг силового кабеля для детекции нагрузки тэна, например.

Такое устройство сможет запустить стирку в заданное время, даже если машина изначально не имела таймера. Позволит отдавать статус её работы в контекст умного дома. Можно спросить у Алисы закончилась ли стирка, можно попросить ее напомнить по окончании или получить уведомление на смартфон.


5. Умный плеер для мягких игрушек.

Фактически это гибрид автономной mp3-колонки с RFID-сканнером. Идеально, если у этой штуки будет ещё и wifi для конфигурирования и функции радио-няни.
Идея в том, чтобы превратить любую мягкую игрушку ребенка в радио-няню с медиа-плеером. Загружаем на встроенную флешку через web-интерфейс сказки, аудио-книги, песенки, целые плейлисты, даём ребёнку связку RFID-карточек с картинками и ребёнок прислоняя их к игрушке может интерактивно взаимодействовать с контентом: включать нужные сказки или плейлисты, познавать мир прислоняя игрушку к разным предметам и слушая про них маленькие рассказы, можно встроить в лапку микропереключатель и вызвать родителей через вайфай и их смартфон, поговорить с ними голосом. Можно сделать для бабушек и дедушек карточки с их фотографиями и ребенок сможет "звонить" родным сам, прислоняя их карточки к игрушке.
Все технологии просты, понятны и доступны. Почему таких игрушек не выпускают массово - я ума не приложу.Там и сам девайс можно продавать и контент к нему и в комплекте с игрушками и только начинку... Можно забрендировать в форме сердечка, которое вкладывает душу в вашу любимую игрушку. Можно приспособить Алису к девайсу и многократно расширить функциональность, но это уже сложнее.


6. Походный сетевой коммуникатор.

Устройство, объединяющее в себе приёмо-передатчик в гражданском диапазоне, КВ-пейджер, GPS-трекер и GSM-шлюз.

Идея в том, чтобы объединять группы людей на пересеченной местности просто и прозрачной связью. Дать возможность адресно обмениваться короткими текстовыми и голосовыми сообщениями в реальном времени и режиме почтового ящика. Устройства связываются со всеми такими же устройствами по всем каналам, по каким могут достучаться, синхронизируют передачи друг с другом, имеют блютус\wifi, которые позволят со смартфона видеть на карте другие устройства. Удобно размещать такое в базовом лагере как ретранслятор, удобно ставить стационарно такие устройства в экспедиционном автомобиле с хорошей антенной,  удобно раздавать такие отделяющимся группам для стыковки и координации.
Конструктивно это водозащищенный кирпич с мелким экономичным ЖК-экранчиком для текстовых сообщений и гнездом для сменных аккумуляторов 18650.

Показать полностью
[моё] Arduino Своими руками Самоделки Идея Длиннопост Текст
124
MaestroA
MaestroA
4 года назад
Arduino & Pi

Помощь в выборе комплектующих⁠⁠

Друзья доброго времени суток. С ардуино я не знаком от слова - совсем. Но очень хочу сделать вот какую штуку:


Есть значит у меня вот такой вот ручной айратор для газонной травы:

Помощь в выборе комплектующих Arduino, Помощь, Новичок, Идея

Два пластиковых колеса, между ними "вал", на котором шипы (гвозди), и ручка чтобы это чудо катать по газону, для насыщения последнего кислородом.


Что хочу: Купить ещё два колеса с возможностью поварота, сварить раму из металло профиля, поставить на эту раму аккумулятор от авто для того чтобы была масса (для прокола гвоздями даже сухой и глиняной земли), прицепить ардуино и чтобы работало это на ДУ. Можно со смарфона, но в идеале с джойстика.


Понимаю что нужен мотор (но не знаю какой потянет конструкцию весом около 20 кг, привода наверное для поворота колёс, сама плата, пульт и тп.


Помогите вопщем, посоветуйте,  какие характеристики должны быть у всех комплектующих, и реально ли это вообще?)

Показать полностью
Arduino Помощь Новичок Идея
33
23
Rawhalt
Rawhalt
4 года назад

Мягкое пробуждение ранним зимним утром. Самоделка на ардуино⁠⁠

Замечал по себе, что просыпаюсь ранним утром гораздо легче, когда на улице за окном уже светло (в моем регионе с апреля по сентябрь). В зимнее время вставать тяжко, а на будильник порой не сразу реагирую. У меня возникла идея слегка обмануть организм, сымитировав светлое утро. Для этого мне было достаточно настольной лампы, которая бы включалась автоматически за час до пробуждения. Сразу скажу, что результат есть: вставать гораздо легче, даже просыпаюсь до звукового будильника и при этом как будто бы сам по себе. Может у этой задачи есть и готовые решения, но я ничего не искал - иногда полезно поизобретать велосипед)


В качестве установщика времени включения хотелось использовать телефон. В программировании под андройд ничего особо не знаю, и хотелось ограничиться стандартными средствами. Для связи контроллера с телефоном можно использовать звуковой кабель mini jack – minijack. То есть ардуинка будет обрабатывать аналоговый сигнал, возникающий во время звучания звонка будильника телефона и запитывать реле, коммутирующее фазу. Идея заключается в том, чтобы первый в списке будильников был сигнал, который не воспринимается человеческим ухом (т.е <20 Гц или >20 000 Гц). Он включит свет, а потом (примерно через час или 40 мин) прозвонит обычная ваша мелодия, под которую вы привыкли вставать. Таким образом пробуждение происходит более мягко.


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


Да простят меня люди, смыслящие в схемотехнике: схема нарисована без всяких правил - только для иллюстрации)

Мягкое пробуждение ранним зимним утром. Самоделка на ардуино Идея, Самоделки, Доброе утро, Автоматика, Arduino, Видео, Длиннопост

На схеме не уточнял подключение реле, так как можно использовать готовый модуль, а можно щелкать реле через транзистор.


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


С помощью программы NCH Tone Generator сгенерил синусоиду в 1 Гц и записал её в минутный wav. Низкочастотный сигнал проще обработать и для моей цели отлично подходит.


Можно сравнить через монитор порта, что приходит на аналоговый входе при воспроизведении ключевого сигнала и обычной музыки.

Мягкое пробуждение ранним зимним утром. Самоделка на ардуино Идея, Самоделки, Доброе утро, Автоматика, Arduino, Видео, Длиннопост
Мягкое пробуждение ранним зимним утром. Самоделка на ардуино Идея, Самоделки, Доброе утро, Автоматика, Arduino, Видео, Длиннопост

Сама программа простая. Нам нужно посчитать длину полуволны в условных единицах, то есть определить, сколько успеет насчитать счётчик за время пока сигнал больше нуля. Получаемые значения для ключевого сигнала будут на порядки больше и стабильнее, чем для других звуковых сигналов. С помощью плоттера порта можно сравнить: в случае сигнала со стабильным периодом счётчик будет насчитывать каждый раз схожие значения (3500 на графике), в другом случае (включил музыку) значения счётчика не повторяются и они не успевают добраться даже до 100. Таким образом легко отделить наш сигнал от других и исключить ложные срабатывания.

Мягкое пробуждение ранним зимним утром. Самоделка на ардуино Идея, Самоделки, Доброе утро, Автоматика, Arduino, Видео, Длиннопост
Мягкое пробуждение ранним зимним утром. Самоделка на ардуино Идея, Самоделки, Доброе утро, Автоматика, Arduino, Видео, Длиннопост

На видео реле срабатывает не мгновенно, так как для надежности в программе несколько раз проверяется длина импульсов

Надеюсь, кому-нибудь окажется полезной эта идея.

Показать полностью 5 1
[моё] Идея Самоделки Доброе утро Автоматика Arduino Видео Длиннопост
18
Uruguay
Uruguay
8 лет назад

Нужны идеи. Какие функции добавить к машинке который объезжает препятствия?⁠⁠

Я наконец сделал машинку, который объезжает препятствия на ардуино. Но я хочу большего. Что можно добавить к нему? Какие функции?
Надеюсь, что обойдемся без шуток.
Комменты для минусов внутри.

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