
Arduino & Pi
Медиа плеер на базе RPI 3 с доступом в Кинопоиск? (или в какой нибудь другой сборник фильмов типа VK, OK, и т.п.)
Товарищи, всем привет! Валяется уже давно малинка, на которой был вечно недонастроенный KODI. С успехом применял для просмотра фильмов, со скрипом для прослушивания музыки, но не более того (ибо даже ютуб на этой сборке ОС настраивается каждый раз с большим трудом )
Сейчас хочу для близких сделать простейший медиаплеер, чтобы умел играть коллекцию фильмов, а главное, чтобы был доступ к какой либо онлайн базе фильмов. В Идеале просто к кинопоиску, где у меня есть оплаченный аккаунт.
Погуглил в разные стороны, нашёл решения разной степени кривости. Например KODI + IPTV + Torrent, или Android TV (для 3ей малинки, поговаривают, сборка довольно кривоватая). Но оба варианта требуют костылей и мучительной настройки. К тому же у меня слабоватый мобильный интернет, и всякие торренто-качалки-игралки работать скорее всего не будут.
В общем вопрос вот какой. Как на базе Raspberry 3 получить просмотр фильмов с Кинопоиска или что-то аналогичное?
Управление матрицей 128х64 через Node-Red просто и понятно
Для многих большой вопрос как пользоваться такими матрицами. Мы решили изготовить экран для суровых условий (улица, солнце, дождь). Вот первые тесты. Программисты создают примеры работы и инструкции с экраном, пока инженеры проектиоуют конструктив. работа по протоколам modbus tcp, rest api, Http, mqtt и др.
Подробнее можно обсудить в нашей группе: https://t.me/Antexgate
Нужен экран для raspberry pi zero 2w
Хочу собрать карманный компьютер на raspberry pi zero 2w, но возник вопрос какой монитор нужен, видел что на старших моделях подключают их напрямую к плате, на зеро версии такого порта не нашел , подскажите пожалуйста как выбрать такой монитор чтобы можно было на прямую к плате подключить если это вообще возможно
Сгибатель кабелей, часть 4
Друзья, рад сообщить, что мне удалось выкроить немного времени для работы над моим проектом, и я готов представить демо-версию 4.0 моего уникального устройства — "сгибателя кабелей". В этой версии я внедрил несколько значительных улучшений, которые делают устройство ещё более функциональным и удобным в использовании.
Главное нововведение — это возможность сохранения последнего количества сгибов. Теперь, даже если что-то пойдет не так, последние результаты будут надежно сохранены в EEPROM. Это значит, что даже в самых неблагоприятных условиях вы сможете восстановить данные и продолжить тестирование с того места, где остановились. Если же результаты вам больше не нужны, предусмотрена кнопка сброса, которой можно воспользоваться в любой момент.
Я осознаю, что простое сгибание кабеля может не дать полной картины его состояния, так как внешние повреждения не всегда свидетельствуют о внутренних разрушениях проводов. Поэтому я начал разрабатывать методику определения работоспособности кабеля, чтобы устройство могло не только фиксировать физические изменения, но и оценивать электрические характеристики.
Кроме того, я решил, что это будет последний раз, когда я использую эмулятор для тестирования. Все последующие версии будут создаваться исключительно в "железе", что позволит добиться максимальной точности и надежности.
Я продолжаю работать над этим проектом и с нетерпением жду возможности поделиться с вами новыми достижениями. Надеюсь, что мои усилия помогут вам в оценке качества и долговечности ваших кабелей.
Сгибатель кабелей, часть 3
Приветствую всех! Я продолжаю развивать свой самодельный стенд для испытания USB-кабелей, и хочу поделиться последними достижениями. В новой версии моего устройства, которое я называю "сгибателем кабелей", появилась возможность подсчета количества сгибаний. Каждое сгибание и разгибание теперь учитываются как отдельные действия, что позволяет более точно отслеживать износ кабеля.
Ранее, чтобы остановить работу устройства, приходилось отключать питание, что было не слишком удобно. Поэтому я добавил кнопку, которая позволяет запускать и останавливать работу сервомашинки простым коротким нажатием. Это значительно улучшило удобство использования.
Я также изменил логику работы сервы, и теперь она изгибается в диапазоне от 0° до +90°. Однако, несмотря на все эти улучшения, я чувствую, что моё устройство ещё не достигло совершенства. Одной из важных функций, которую я планирую добавить в четвёртой версии, является возможность сохранения результатов. Это позволит избежать потери данных о количестве циклов при отключении питания, что критически важно для точной оценки долговечности кабелей.
Я продолжаю работать над этим проектом и надеюсь, что вскоре смогу представить ещё более совершенную версию моего устройства.
Сгибатель кабелей , часть 1
В мире современных технологий мы все сталкиваемся с необходимостью приобретения зарядных кабелей для наших телефонов, ноутбуков и планшетов. На первый взгляд кажется очевидным, что чем дороже кабель, тем выше его качество. Однако, в моей практике однажды произошло обратное, что и вдохновило меня на создание уникального устройства — "сгибателя кабелей".
Недавно я начал изучать программирование и решил применить свои новые знания на практике. Первым шагом стало подключение сервомотора к микроконтроллеру ATmega 128, работающему на частоте 8 МГц. Я использовал цифровую серву с усилием 20 (40) кг, и смог настроить её так, чтобы она вращалась на заданный угол от +90 до -90 градусов.
Однако вскоре я понял, что это устройство, хоть и интересное, не дает полной картины о качестве кабеля. Поэтому в следующей версии я планирую добавить дисплей, кнопку для управления, функцию определения работоспособности кабеля и счетчик количества сгибаний. Это позволит более точно оценивать качество и долговечность кабелей, которые мы используем каждый день.
Исходный код моего проекта будет представлен ниже, и я надеюсь, что он вдохновит других на создание собственных инновационных решений.
define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
#define SERVO_MIN 1000 // Минимальная ширина импульса (1 мс)
#define SERVO_MAX 2000 // Максимальная ширина импульса (2 мс)
#define SERVO_MID ((SERVO_MIN + SERVO_MAX) / 2) // Среднее значение
volatile uint32_t rotation_count = 0; // Счетчик количества поворотов
void servo_init()
{
// Настройка таймера 1 для генерации ШИМ
TCCR1A |= (1 << WGM11) | (1 << COM1A1); // Fast PWM, 10-bit
TCCR1B |= (1 << WGM12) | (1 << WGM13) | (1 << CS11); // Prescaler 8
ICR1 = 20000; // TOP значение для 20 мс периода (50 Гц)
DDRB |= (1 << PINB5); // Установка PB5 (OC1A) как выход
}
void servo_set_position(uint16_t position)
{
OCR1A = position;
}
int main(void)
{
servo_init();
while (1)
{
// Поворот сервомотора на полный угол
servo_set_position(SERVO_MIN);
_delay_ms(700); // Задержка 700 мс
// Поворот сервомотора обратно
servo_set_position(SERVO_MAX);
_delay_ms(700); // Задержка 700 мс
// Увеличение счетчика поворотов после завершения полного цикла
rotation_count++;
}
return 0;
}