Проекты Ардуино, Raspberry Pi. Робототехника
Три закона роботехники в научной фантастике — обязательные правила поведения для роботов, впервые сформулированные Айзеком Азимовым в рассказе «Хоровод».
Законы гласят:
— Робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинён вред.
— Робот должен повиноваться всем приказам, которые даёт человек, кроме тех случаев, когда эти приказы противоречат Первому Закону.
— Робот должен заботиться о своей безопасности в той мере, в которой это не противоречит Первому и Второму Законам.
Подробнее …
Arduino представляет собой инструмент,
с помощью которого можно создавать
различные электронные устройства.
Она может использоваться как для
построения простых схем, так и для
реализации довольно
сложных проектов.
Arduino является довольно простой
платой в изучении и на начальном
этапе работы с ней не требует особых
схемотехнике. Сейчас проекты на
этой платформе собирают даже
школьники младших классов, причем
собрать можно действительно
все что угодно: от простого
мигающего светодиода
или метеостанции до полноценной
системы»Умный дом», которая
будет охватывать огромное
пространство, позволяя
автоматизировать большинство
процессов в помещении.
Представленные в нашей рубрике
видеоуроки помогут вам построить
своими руками очень
крутые устройства и проекты.
Подробнее…
В жизни каждого разработчика наступает момент, когда сложность задач превышает возможности техники. Выход только один: переход на другую платформу.
Raspberry Pi – небольшой, но вполне настоящий компьютер с возможностью подключения монитора, клавиатуры и мыши. Для связи с внешним миром есть порт Ethernet и разъем ввода-вывода. Двадцати шести (в новых модификациях — 40) контактов этого разъема вполне достаточно для подключения любых самодельных устройств и датчиков.
Для Raspberry Pi разработано множество интересных устройств и программ, которые работают под управлением бесплатной операционной системы Linux, да и сам компьютер стоит недорого.
Подробнее …
Количество проектов 768
Видео — уроки
- Хорошая книга для быстрого старта в изучении Arduino
- Arduino Урок. Подключение Arduino
- Arduino Урок 1. Мигание светодиодом
- Arduino Урок 2. Потенциометр
- Arduino Урок 3. RGB светодиод
- Arduino Урок 4. Множество светодиодов
- Arduino Урок 5. Кнопка, логические операторы
- Arduino Урок 6. Фоторезистор, делитель напряжения
- Arduino Урок 7. Термодатчик, Serial Monitor
- Arduino Урок 8. Сервопривод, библиотеки
- Arduino Урок 9. Flex Sensor
- Arduino Урок 10. ИК приемник
- Arduino Урок 11. Биполярный шаговый двигатель на L298N
- Видеоуроки по Arduino от Jeremy Blum. SD-карты и регистрация данных (11-я серия)
- Видеоуроки по Arduino от Jeremy Blum. Чтение RFID-меток (12-я серия)
- Видеоуроки по Arduino от Jeremy Blum. ЖК-дисплеи / LCD (13-я серия)
- Знакомимся с Arduino — что это такое?
- Arduino первые шаги. (подключение, софт, схема, пробный проект)
- Arduino UNO — обзор пинов
- Arduino IDE введение
- Таймер для определения реакции человека на базе Электронного конструктора СМАЙЛ
- Работа с интернетом на примере Ethernet Shield W5100
Проекты
на Arduino
- Светящийся зонт, определяющий качество воздуха
- Манипулятор на мобильной платформе на базе Arduino
- Дистанционное управление отоплением на Arduino
- Электронный конструктор СМАЙЛ. Обзор
- Автоматический полив растения. Часть 1
- ArduCar-Z машина на ардуино с ИК пультом управления
- Автоматический полив растения. Часть 2
- Умный дом на Arduino (проект). Arduino «Smart home»
- Автоматическое позиционирование солнечной батареи
- Электронный ключ. Система управления контролем доступа
- Робот-манипулятор на основе Arduino
- Arduino датчик распознавания цвета
- Шагающий робот на Ардуино (продолжение)
- Поворотный стол для 3D макросъёмки на Arduino
- Робототехническая платформа с манипулятором
- Шестиногогий робот (Hexopod)
- Частотомер на Arduino
- Гальваническая развязка дискретных входов Arduino
- Миниатюрный манипулятор
- Измеритель пульса
- Светодиодная подсветка для сноуборда
- Электронный сигнализатор для рыбака
- RGB-куб с гироскопом
- Измеритель магнитного поля
- Графический барометр
- Счетчик потребления электроэнергии
- ИК-приемник для Arduino
- Управление светодиодной лентой
- Регулятор оборотов электродвигателя
- Дубликатор домофонных ключей
- Электронная зимняя удочка
- Датчик температуры
- Энкодер для Arduino
- Пожарная сигнализация на Arduino
- Автоматика ванной комнаты
- Дозиметр на Ардуино
- Модуль беспроводной связи
- Система Земля-Луна
- Манипулятор для склада
- Самогонный аппарат
- Радиостанция на Arduino
- Четырехразрядный дисплей
- Контроллер для компрессора
- Двигатель космического корабля
- Автомат для полива растений
- Крутящаяся платформа на Arduino
Проекты
на Raspberry Pi
- Что это такое Raspberry Pi ? Обзор миникомпьютера
- Робот собирает кубик Рубика
- Minecraft на Raspberry Pi
- Робот на Raspberry Pi серия 1
- Робот на Raspberry Pi серия 2
- Играем на Raspberry Pi — 16 бит тому назад
- Плата расширения для Raspberry Pi 1.8 «LCD TFT дисплей 128×160 TFT
- Raspberry Pi. Камера и TFT сенсорный интерфейс
- Балансирующий робот на Raspberry Pi
- Интернет-радио на Raspberry Pi
- Смартфон на базе Raspberry Pi
- Raspberry Pi в качестве FM-передатчика
- Управление портами ввода-вывода Raspberry Pi
- Умный аквариум под управлением Arduino и Rapsberry Pi
- Как подключить внешний жесткий диск к Raspberry Pi
- Автокомпьютер на Raspberry Pi
- Подключение восьмиканального блока реле к Raspberry Pi
- Raspberry Pi с питанием от солнечной батареи
- Как сделать сетевое хранилище данных на Raspberry Pi
- Установка Windows 10 на Raspberry Pi 2
- Электронный замок
- Восьмиканальный блок реле
- Автомат — садовник
Ардуино-робото-мания
РОБОТОТЕХНИКА ДЛЯ ДОМАШНИХ УМЕЛЬЦЕВ. Роботы нам представляются чем-то огромным и сложным, но это не так. Каждому можно попробовать сделать свой вклад в роботехнику — это очень легко, если у вас есть возможность купить Arduino. Это простой одноплатный компьютер с микросхемой процессора, встроенной памятью и набором портов ввода-вывода для подключения внешних сигналов. Своеобразный «конструктор», из кубиков (модулей) которого собирают любые устройства — от простейшей тележки, движущейся по записанной в память машинки программе, до квадрокоптеров и станков-автоматов. Собственно, нечто подобное было и раньше, но конструкторам из Италии пришла в голову замечательная идея — встроить язык программирования непосредственно в память процессора. Теперь разработать программу способен любой ученик средней школы. Большое количество дополнительных модулей – шилдов расширяют возможности базовой схемы. Стандарт Arduino открыт, чертежи и программы бесплатны. Дешевый контроллер, несложный язык разработки программ — и многие тысячи самых обычных людей решили заняться созданием роботов, «умных домов», устройств автоматики. Кто-то создал интересные схемы и занялся их производством. Продажи устройств, совместимых с системой, растут с каждым днем. Есть несколько разновидностей Arduino: Arduino Uno – самая популярная модель микроконтроллера. Большинство разработок, основанных на Arduino, построенно на Arduino Uno, либо полностью с ним совместимы. Именно для этой платы создано большинство модулей расширения возможностей микроконтроллера. Достаточно установить в разъем Arduino добавочный модуль (Arduino-shield), и вы сможете управлять дополнительными реле, электродвигателями или обеспечить работу контроллера с беспроводными устройствами. Arduino Mega – для сложных проектов. Эффективная плата с расширенной памятью и большим количеством входов/выходов позволяет решить даже самые сложные задачи. Arduino Nano – модель для компактных систем. Малые габариты и пониженное энергопотребление делает эту плату незаменимой для миниатюрных конструкций с батарейным питанием.
Динамическая фоновая подсветка экрана своими руками
ОБНОВЛЕНИЯ
- 02.12.2018 версия 1.3: Добавлено ограничение тока для всей системы, настройка CURRENT_LIMIT
- 21.10.2019: Вышел проект “Компактный эмбилайт by Karman” – читай здесь
ОПИСАНИЕ
Динамическая фоновая подсветка экрана телевизора или монитора компьютера. Работает под управлением Arduino, на компьютере вертится программа Ambibox. Arduino управляет адресной светодиодной лентой на чипах WS2812. В схему добавлен фоторезистор для адаптивной подстройки яркости ленты в зависимости от интенсивности освещения в помещении.
- Разрешение самодельной фоновой подсветки гораздо выше, чем предлагают даже дорогие модели от Philips
- Самая простая схема подключения среди всех моих проектов
- Удобная программа Ambibox для настройки и персонализации фоновой подсветки
ГОТОВЫЙ НАБОР
У наших партнёров Giant4 появился готовый набор (ссылка на товар) для сборки динамической подсветки! В комплекте идёт:
- Лента (длину можно выбрать)
- Провода для подключения
- Блок питания
- Удобный контроллер
- Подробная инструкция по установке
КОМПОНЕНТЫ
Инструменты, полезное
Каталоги ссылок на Алиэкспресс на этом сайте:
- Всё для пайки: паяльники, приспособления
- Платы Ардуино, модули и датчики
- Модули и датчики для умного дома
- Дешёвые инструменты
- Аккумуляторы, платы защиты, зарядники
- Мультиметры
- Блоки питания, преобразователи
Железки со схемы
Стараюсь оставлять ссылки только на проверенные крупные магазины, из которых заказываю сам. Также по первые ссылки ведут по возможности на минимальное количество магазинов, чтобы минимально платить за доставку. Если какие-то ссылки не работают, можно поискать аналогичную железку в каталоге Ардуино модулей. Также проект можно попробовать собрать из компонентов моего набора GyverKIT.
Arduino Nano купить в РФ, aliexpress, aliexpress, искать
Адресная лента
- Купить в РФ, 60 свет/метр, 30 свет/метр
- Купить на Али ссылка, ссылка
- Black PCB / White PCB – цвет подложки ленты, чёрная / белая. В видео была чёрная
- 1m/5m – длина ленты в метрах (чтобы заказать 2 метра, берите два заказа 1m, очевидно)
- 30/60/74/96/100/144 – количество светодиодов на 1 метр ленты. В видео использовалась лента 60 диодов на метр
- IP30 лента без влагозащиты (как на видео)
- IP65 лента покрыта силиконом
- IP67 лента полностью в силиконовом коробе
- Постфикс ECO – лента чуть более низкого качества, меньше меди, на длинной ленте будет сильно проседать яркость
- Беспаечные угловые соединители для ленты! 3 pin https://ali. ski/fm05oP https://ali.ski/2vRw0
Блоки питания aliexpress, aliexpress, искать
Мощные блоки питания aliexpress, aliexpress, искать
- Фоторезисторы https://ali.ski/J2d4-M https://ali.ski/10_e0
- Резисторы ЧипДип 10 кОм https://www.chipdip.ru/product0/41486
- Резисторы ЧипДип 300 Ом https://www.chipdip.ru/product0/29794
Обычная
Контроль яркости
Ноутбучная
На телевизор 1
На телевизор 2
ПРОШИВКА
ВНИМАНИЕ! Максимально подробный гайд по началу работы с платой и загрузке прошивки для проекта находится ЗДЕСЬ. Изучи его внимательно, прежде чем писать на форум или в группу ВК!
ИНСТРУКЦИЯ
СКАЧАТЬ
GITHUB
СООБЩИТЬ ОБ ОШИБКЕ
УПРАВЛЕНИЕ
Теперь ставим программу амбибокс. Тут всё стандартно, далее далее продолжить далее далее завершить. В конце при выборе устройства нужно указать адалайт. Запускаем. Сразу можно поставить русский язык. И можно поставить автозапуск программы при старте компьютера. Чтобы она не мешала остальным, можно поставить задержку запуска. Теперь переходим на вторую вкладку и сразу жмём кнопку больше настроек. Не пугаемся. Вспоминаем номер порта, у меня это был порт номер 5, и указываем его. Далее в программе есть несколько методов захвата изображения, из них у меня работают вроде бы первые 6, можете их все потыкать посомтреть посмотреть какой будет меньше тормозить. Но. Все методы кроме GDI FS Aero включают классическую тему оформления виндоус, то есть без прозрачных окошек, они даже подписаны no aero. Я люблю прозрачные окошки так что оставил аэро. Теперь нажимаем показать зоны захвата и видим, что они не настроены. Зон должно быть столько же, сколько у вас светодиодов. 98. Оп, перезагрузилась. Теперь жмём мастера настрйоки зон. Я наклеивал ленту так, что она получилась без угловых светодиодов, ставлю галочку. Далее, по горизонтали у меня 31 светодиод, ориентироваться нужно не на это число, а сразу смотреть вниз на зоны. Соотношение сторон определяется автоматически, но я на всякий случай поставил как у своего монитора, 16 на 9. И ещё можно удлинить зоны, чтобы они брали источник цвета с большей площади, так результат будет более симпатичным. Ну и всё. Сохраняем настрйоки и ставим галку включить подсветку. Тадаааам. Поздравляю, теперь у нас есть динамическая подсветка монитора. С режимом виндоус аэро наблюдается небольшая задержка, в других режимах без аэро задержки почти нет. В папке с картинками для тестов вы найдёте несколько сочных картинок для проверки вашей фоновой подсветки.
Рекомендую попробовать программу Adalight EtVersion, вот отсюда
ОШИБКИ И FAQ
Может случиться так, что при работе от USB компьютер не выключается, пока не будет извлечён штекер, ведущий к Arduino
Ответы на большинство вопросов можно найти здесь: https://alexgyver.ru/ws2812_guide/
В: Я купил ленту, на ней контакты G R B 12V. Как подключить?
О: Молодец, можешь кинуть ей в собаку. Это не та лента.
В: Не работает! Какие есть типичные ошибки?
О: Скорее всего в подключении. В основном забывают объединить GND ленты и GND Ардуины.
ПОДДЕРЖАТЬ
Вы можете поддержать меня за создание доступных проектов с открытым исходным кодом, полный список реквизитов есть вот здесь.
Распечатайте цветной механический телевизор на базе Arduino
В мире магии был Гудини, который первым изобрел трюки, которые исполняются до сих пор. И у сжатия данных есть Джейкоб Зив.
В 1977 году Зив, работая с Абрахамом Лемпелем, опубликовал эквивалент Гудини о Magic : статья в IEEE Transactions on Information Theory под названием «Универсальный алгоритм последовательного сжатия данных». и год LZ77 не был первым алгоритмом сжатия без потерь, но он был первым, который мог творить чудеса за один шаг.
В следующем году два исследователя выпустили уточнение, LZ78. Этот алгоритм стал основой для программы сжатия Unix, использовавшейся в начале 80-х; WinZip и Gzip, родившиеся в начале 90-х; и форматы изображений GIF и TIFF. Без этих алгоритмов мы, скорее всего, рассылали бы большие файлы данных на дисках вместо того, чтобы отправлять их по Интернету одним щелчком мыши, покупали бы нашу музыку на компакт-дисках вместо потоковой передачи и просматривали бы ленты Facebook, в которых нет скачущих анимированных изображений.
Зив продолжал сотрудничать с другими исследователями по другим инновациям в области сжатия. Именно его полная работа, охватывающая более полувека, принесла ему Почетная медаль IEEE 2021 г. «за фундаментальный вклад в теорию информации и технологии сжатия данных, а также за выдающееся лидерство в исследованиях».
Зив родился в 1931 году в семье иммигрантов из России в Тверии, городе, который тогда находился в Палестине, управляемой британцами, а теперь является частью Израиля. Электричество и гаджеты — и мало что еще — очаровывали его в детстве. Например, играя на скрипке, он придумал, как превратить свой пюпитр в лампу. Он также пытался построить передатчик Маркони из металлических частей фортепиано. Когда он подключил устройство, весь дом погрузился во тьму. Он так и не заставил этот передатчик работать.
Когда в 1948 году началась арабо-израильская война, Зив учился в средней школе. Призванный в Армию обороны Израиля, он некоторое время служил на передовой, пока группа матерей не провела организованные акции протеста, требуя, чтобы самых молодых солдат отправили в другое место. Переназначение Зива привело его в ВВС Израиля, где он выучился на специалиста по радарам. Когда война закончилась, он поступил в Технион — Израильский технологический институт, чтобы изучать электротехнику.
После получения степени магистра в 1955, Зив вернулся в оборонный мир, на этот раз присоединившись к Израильской исследовательской лаборатории национальной обороны (сейчас Rafael Advanced Defense Systems) для разработки электронных компонентов для использования в ракетах и других военных системах. Проблема заключалась в том, вспоминает Зив, что ни один из инженеров в группе, включая его самого, не разбирался в электронике более чем на базовом уровне. Их электротехническое образование было больше сосредоточено на энергосистемах.
«У нас было около шести человек, и нам приходилось учить себя, — говорит он. — Мы выбирали книгу, а затем учились вместе, как религиозные евреи, изучающие еврейскую Библию. Этого было недостаточно».
Цель группы состояла в том, чтобы построить систему телеметрии, используя транзисторы вместо электронных ламп. Им нужны были не только знания, но и детали. Зив связался с Bell Telephone Laboratories и запросил бесплатный образец своего транзистора; компания отправила 100.
«Это покрыло наши потребности на несколько месяцев, — говорит он. — Я отдаю должное тому, что первым в Израиле сделал что-то серьезное с транзистором».
В 1959 году Зив был выбран в качестве одного из немногих исследователей из израильской оборонной лаборатории для обучения за границей. Эта программа, по его словам, изменила эволюцию науки в Израиле. Его организаторы не направляли отобранных молодых инженеров и ученых в определенные области. Вместо этого они позволили им продолжить любое обучение в аспирантуре в любой западной стране.
«В то время для запуска компьютерной программы приходилось использовать перфокарты, а я их ненавидел. Вот почему я не стал заниматься настоящей информатикой.»
Зив планировал продолжить работу в области связи, но его больше не интересовало только оборудование. Недавно он прочитал Теория информации (Prentice-Hall, 1953), одна из первых книг Стэнфорда Голдмана на эту тему, и он решил сосредоточить свое внимание на теории информации. И где еще можно изучать теорию информации, как не в Массачусетском технологическом институте, где начинал Клод Шеннон, пионер в этой области?
Зив прибыл в Кембридж, штат Массачусетс, в 1960 году. Его докторская степень. исследование включало метод определения того, как кодировать и декодировать сообщения, отправляемые по зашумленному каналу, сводя к минимуму вероятность и ошибку и в то же время сохраняя простоту декодирования.
«Теория информации прекрасна, — говорит он. — Она говорит вам, что является лучшим, чего вы можете достичь, и [она] говорит вам, как приблизить результат. наилучший возможный результат».
Зив противопоставляет эту уверенность неопределенности алгоритма глубокого обучения. Может быть ясно, что алгоритм работает, но никто не знает, является ли он наилучшим возможным результатом.
Во время работы в Массачусетском технологическом институте Зив подрабатывал у американского оборонного подрядчика. Melpar, где он работал над программным обеспечением для исправления ошибок. Он нашел эту работу менее красивой. «В то время для запуска компьютерной программы приходилось использовать перфокарты, — вспоминает он. — И я их ненавидел. Вот почему я не занимался настоящими компьютерными науками».
Вернувшись в лабораторию оборонных исследований после двух лет в США, Зив возглавил отдел связи. Затем в 1970 году вместе с несколькими другими сотрудниками он поступил на факультет Техниона.
Там он познакомился с Авраамом Лемпелем. Они обсудили попытки улучшить сжатие данных без потерь.
В то время передовым методом сжатия данных без потерь было кодирование Хаффмана. Этот подход начинается с поиска последовательностей битов в файле данных и последующей их сортировки по частоте появления. Затем кодировщик строит словарь, в котором наиболее распространенные последовательности представлены наименьшим количеством битов. Та же идея лежит в основе азбуки Морзе: наиболее часто встречающаяся в английском языке буква e представлена одной точкой, в то время как более редкие буквы имеют более сложные комбинации точек и тире.
Кодирование Хаффмана, хотя и используется сегодня в формате сжатия MPEG-2 и формате JPEG без потерь, имеет свои недостатки. Требуется два прохода через файл данных: один для вычисления статистических характеристик файла, а второй для кодирования данных. А хранение словаря вместе с закодированными данными увеличивает размер сжатого файла.
Зив и Лемпель задались вопросом, смогут ли они разработать алгоритм сжатия данных без потерь, который будет работать с любыми данными, не требует предварительной обработки и обеспечит наилучшее сжатие этих данных, цель, определяемая чем-то, известным как энтропия Шеннона. Было неясно, возможна ли вообще их цель. Они решили выяснить.
Зив говорит, что он и Лемпель были «идеальной парой» для решения этого вопроса. «Я знал все о теории информации и статистике, а Абрахам хорошо разбирался в булевой алгебре и информатике».
Им пришла в голову идея, чтобы алгоритм искал уникальные последовательности битов одновременно со сжатием данных, используя указатели для ссылки на ранее просмотренные последовательности. Этот подход требует только одного прохода через файл, поэтому он быстрее, чем кодирование Хаффмана.
Зив объясняет это так: «Вы просматриваете входящие биты, чтобы найти самый длинный участок битов, для которого есть совпадение в прошлом. Предположим, что первый входящий бит равен 1. Теперь, поскольку у вас есть только один бит, вы никогда не видели его в прошлом, поэтому у вас нет другого выбора, кроме как передать его как есть».
«Но затем вы получаете еще один бит, — продолжает он. — Скажем, это тоже 1. Итак, вы вводите в свой словарь 1-1. Допустим, следующий бит — 0. Итак, в вашем словаре теперь есть 1-1, а также 1-0″.
Вот тут-то и появляется указатель. В следующий раз, когда поток битов будет включать 1-1 или 1-0, программа не будет передавать эти биты. Вместо этого он отправляет указатель на место, где эта последовательность впервые появилась, вместе с длиной совпадающей последовательности. Количество битов, необходимых для этого указателя, очень мало.
«Теория информации прекрасна. Он говорит вам, что является лучшим, чего вы можете достичь, и (оно) говорит вам, как приблизить результат».0003
«В основном это то, что они делали при публикации TV Guide , — говорит Зив. — Они запускали синопсис каждой программы по одному разу. Если программа появлялась более одного раза, они не публиковали синопсис повторно. Они просто говорили: вернитесь к странице x ».
Декодирование таким способом еще проще, потому что декодеру не нужно идентифицировать уникальные последовательности. Вместо этого он находит расположение последовательностей, следуя указателям, а затем заменяет каждый указатель копией соответствующей последовательности.
Алгоритм сделал все, что намеревались сделать Зив и Лемпель, — он доказал, что универсально оптимальное сжатие без потерь без предварительной обработки возможно.
«В то время, когда они опубликовали свою работу, тот факт, что алгоритм был четким и элегантным, а также его легко реализовать при низкой вычислительной сложности, почти не имел значения», — говорит Цахи Вайсман, профессор электротехники в Стэнфордском университете, специализирующийся на теории информации. «Это было больше о теоретическом результате».
В конце концов, однако, исследователи признали практическое значение алгоритма, говорит Вайсман. «Сам алгоритм стал действительно полезным, когда наши технологии начали работать с файлами большего размера, чем 100 000 или даже миллион символов».
«Их история — это история о силе фундаментальных теоретических исследований, — добавляет Вайсман. — Вы можете установить теоретические результаты о том, что должно быть достижимо, и десятилетия спустя человечество извлечет пользу из реализации алгоритмов, основанных на этих результатах».
Зив и Лемпель продолжали работать над технологией, пытаясь приблизиться к энтропии для небольших файлов данных. Эта работа привела к LZ78. Зив говорит, что LZ78 кажется похожим на LZ77, но на самом деле сильно отличается, потому что предвосхищает следующий бит. «Допустим, первый бит равен 1, поэтому вы вводите в словарь два кода, 1-1 и 1-0, — объясняет он. Эти две последовательности можно представить как первые ветви дерева».
«Когда приходит второй бит, — говорит Зив, — если он равен 1, вы отправляете указатель на первый код, 1-1, а если он равен 0, вы указываете на другой код, 1-0. расширить словарь, добавив еще две возможности к выбранной ветви дерева. Если вы делаете это неоднократно, последовательности, которые появляются чаще, будут увеличивать длину ветвей».
«Оказывается, — говорит он, — это было не только оптимальным [подходом], но и настолько простым, что сразу стало полезным».
Джейкоб Зив (слева) и Абрахам Лемпель опубликовали алгоритмы сжатия данных без потерь в 1977 и 1978 годах, оба в IEEE Transactions on Information Theory. Эти методы стали известны как LZ77 и LZ78 и используются до сих пор. Фото: Джейкоб Зив/Technion
Пока Зив и Лемпель работали над LZ78, они оба находились в творческом отпуске в Технионе и работали в американских компаниях. Они знали, что их разработка будет коммерчески полезной, и хотели ее запатентовать.
«Я работал в Bell Labs, — вспоминает Зив, — и поэтому подумал, что патент должен принадлежать им. Но они сказали, что невозможно получить патент, если это не аппаратное обеспечение, и они не были заинтересованы в попытках». (Верховный суд США не открывал двери для прямой патентной защиты программного обеспечения до 1980-х годов.)
Однако работодатель Лемпеля, Sperry Rand Corp., был готов попробовать. Компания обошла ограничения на патенты на программное обеспечение, создав аппаратное обеспечение, реализующее алгоритм, и запатентовав это устройство. Сперри Рэнд последовал за этим первым патентом с версией, адаптированной исследователем Терри Уэлчем, которая называется алгоритмом LZW. Именно вариант LZW получил наибольшее распространение.
Зив сожалеет, что не смог напрямую запатентовать LZ78, но, по его словам, «нам нравился тот факт, что [LZW] был очень популярен. Это сделало нас знаменитыми, и нам также понравились исследования, к которым они нас привели».
Одна из последующих концепций стала называться сложностью Лемпеля-Зива, мерой количества уникальных подстрок, содержащихся в последовательности битов. Чем меньше уникальных подстрок, тем сильнее можно сжать последовательность.
Эта мера позже стала использоваться для проверки безопасности шифровальных кодов; если код действительно случайный, его нельзя сжать. Сложность Лемпеля-Зива также использовалась для анализа электроэнцефалограмм — записей электрической активности мозга — для определения глубины наркоза, для диагностики депрессии и для других целей. Исследователи даже применили его для анализа поп-лирики, чтобы определить тенденции повторяемости.
За свою карьеру Зив опубликовал около 100 рецензируемых статей. В то время как статьи 1977 и 1978 годов являются самыми известными, у теоретиков информации, пришедших после Зива, есть свои фавориты.
Для Шломо Шамая, выдающегося профессора Техниона, именно статья 1976 года представила Алгоритм Винера-Зива, способ определения пределов использования дополнительной информации, доступной декодеру, но не кодировщику. Эта проблема возникает, например, в видеоприложениях, которые используют тот факт, что декодер уже расшифровал предыдущий кадр, и поэтому его можно использовать в качестве дополнительной информации для кодирования следующего.
Для Винсента Пура, профессора электротехники Принстонского университета, это статья 1969 года, описывающая граница Зива-Закаи, способ узнать, получает ли процессор сигналов наиболее точную возможную информацию из данного сигнала.
Зив также вдохновил ряд ведущих экспертов по сжатию данных на курсах, которые он вел в Технионе до 1985 года. Вайсман, бывший студент, говорит, что Зив «глубоко увлечен математической красотой сжатия как способа количественного измерения информации. Пройдя курс у него в 1999 сыграл большую роль в том, чтобы поставить меня на путь моих собственных исследований».
Он был не единственным, кто был так вдохновлен. «Я прошел курс по теории информации у Зива в 1979 году, в начале учебы в магистратуре, — говорит Шамай. — Прошло более 40 лет, а я до сих пор помню этот курс. Мне захотелось взглянуть на эти проблемы, провести исследование и получить докторскую степень».
В последние годы глаукома лишила Зива большей части зрения. Он говорит, что статья, опубликованная в IEEE Transactions on Information Theory в январе этого года он последний. Ему 89.
«Я начал писать статью два с половиной года назад, когда у меня еще было достаточно зрения, чтобы пользоваться компьютером, — говорит он. — В конце концов, Юваль Кассуто, младший преподаватель Техниона, завершил проект». В работе рассматриваются ситуации, в которых требуется быстрая передача больших информационных файлов в удаленные базы данных.
Как объясняет Зив, такая необходимость может возникнуть, когда врач хочет сравнить образец ДНК пациента с предыдущими образцами того же пациента, чтобы определить, была ли мутация, или с библиотекой ДНК, чтобы определить, была ли у пациента генетическое заболевание. Или исследователь, изучающий новый вирус, может захотеть сравнить последовательность его ДНК с базой данных ДНК известных вирусов.
«Проблема в том, что количество информации в образце ДНК огромно, — говорит Зив, — слишком много, чтобы сегодня по сети можно было отправить его за считанные часы или даже, иногда, за дни. Если вы, скажем, пытаетесь для выявления вирусов, которые очень быстро меняются во времени, это может быть слишком долго».
Подход, который он и Кассуто описывают, включает использование известных последовательностей, которые обычно появляются в базе данных, чтобы помочь сжать новые данные, без предварительной проверки на конкретное соответствие между новыми данными и известными последовательностями.
«Я очень надеюсь, что это исследование может быть использовано в будущем», — говорит Зив. Судя по его послужному списку, Cassuto-Ziv — или, возможно, CZ21 — добавит к его наследию.
Эта статья появилась в печатном выпуске за май 2021 года под названием «Создатель сжатия». С кодом › Большинство из нас слишком много времени проводят перед телевизором. Поэтому я разработал систему, которая автоматически ограничивает время и время работы телевизора. Система работает, контролируя входной сигнал, поступающий на телевизор. Это делается путем добавления релейного переключателя к входному кабелю. При выполнении определенных условий реле включается, и телевизор может принимать входной сигнал. Используя микроконтроллер Arduino, вы можете запрограммировать систему так, чтобы телевизор включался только в течение определенного времени каждый день или между определенными часами. Вы можете установить PIN-код, чтобы его могли включить только определенные люди. Вы даже можете настроить его так, чтобы телевизор не включался, если вы не выполнили определенное количество упражнений в этот день. Система очень универсальна и может быть настроена в соответствии с вашими потребностями. Шаг №1: Цепь управления Шаг № 2: Выберите соответствующий соединительный кабель Первое, что вам нужно сделать, это приобрести соединительный кабель, соответствующий входным разъемам телевизора и источнику сигнала. Наиболее распространенными типами являются коаксиальный кабель, кабель RCA и кабель HDMI. Шаг 3. Обрежьте кабели и снимите внешнюю изоляцию Шаг № 4: Припаяйте цепь реле вместе Шаг № 5: Подключите схему реле к Arduino Теперь нужно подключить схему реле к Arduino. Подключите провода от платы реле к Arduino так, чтобы анод диода был подключен к одному из контактов GND на плате. Затем возьмите провод, подключенный к катоду диода, и подключите его к одному из цифровых контактов на плате Arduino. Очень важно правильно понять эти полярности. Если вы случайно поменяете их местами, вы можете разрушить Arduino. Шаг № 6: Установите детали внутри изолированного корпуса Найдите большой изолированный корпус проекта. Затем прикрепите схему реле и Arduino к внутренней части корпуса с помощью небольшой капли горячего клея. Небольшой капли горячего клея будет достаточно, чтобы закрепить доски на месте, но при этом вы сможете снять их позже, если захотите. Вырежьте отверстия и прорези в задней части корпуса для кабелей, шнуров питания и проводов датчиков. Шаг № 7: Решите, как вы хотите управлять телевизором Шаг 8. Используйте простой оконный таймер для включения телевизора Шаг 9. Установите пароль для авторизованных пользователей для активации телевизора Другой вариант дизайна, который вы можете реализовать, включает установку кода доступа, чтобы только авторизованные пользователи могли включать телевизор. Это легко сделать с помощью пульта от телевизора. Все, что вам нужно сделать, это добавить инфракрасный приемник к Arduino. Вы можете посмотреть пример того, как это сделать здесь. Вы можете либо использовать одну кнопку, как в примере, либо создать секретную комбинацию кнопок, которая активирует телевизор. Шаг № 10. Создайте датчик, который будет включать телевизор только после тренировки Шаг №11: подключение датчиков к Arduino Ограничение времени просмотра телевизора с помощью реле, управляемого Arduino