Jump to content

    

controller_m30

Участник
  • Content Count

    470
  • Joined

  • Last visited

Community Reputation

0 Обычный

About controller_m30

  • Rank
    Местный

Контакты

  • Сайт
    Array
  • ICQ
    Array

Recent Profile Visitors

5720 profile views
  1. В виде готовых к применению наборов, как мне кажется, существуют только Arduino и LEGO. При этом Arduino в большей степени конструктор для любителей электроники и программирования. Предполагается что купленные Arduino-детали выкладываются на столе, соединяются проводками, и в таком виде с ними работают. А каких-то креплений к моторам, или переходников к не-электрическим деталям, насколько я знаю, в Arduino не практикуется. Поэтому, вероятно, придётся немного: поточить, посверлить, и поклеить. Или попробовать LEGO. А ещё, если бы мы могли увидеть хоть какое-то изображение этого зеркала (желательно с размерами), может быть кто-то и вспомнил что-нибудь подходящее, или придумал бы как его можно прикрепить.
  2. Кстати, кривошип это идея! Вот очень простой вариант её реализации. Конструктор LEGO Technic. Нужно взять: двигатель, червячный редуктор, и несколько деталек для самого кривошипа. Колёсико вращается, качелька синяя поворачивается вправо-влево. Что и требовалось. Всё это можно передвигать, переставлять, чтоб подобрать нужную амплитуду качания. Прикрепить зеркало к этим LEGO-деталям, думаю, проще чем к чему-либо. И главное, совсем не нужно: паять, сверлить, точить, резать и клеить... А просто соединить детали. Бюджет такого проекта вполне умеренный: мотор - 5 долларов, батарейный отсек (там-же) для мотора - 5 дол, червячный редуктор - 5 дол за 5 шт. Простые детальки: планки, оси, колёсико - наверное тоже в несколько долларов все вместе выйдут (я не стал искать, думаю найти несложно).
  3. Есть такой редактор/конвертер. Пользовался давно. Где скачал уже не помню. Генерирует файл *.font с простым форматом. Думаю разобраться несложно. FontEditor_BitmapConverter.rar
  4. Я бы рекомендовал сначала попробовать доступные программы для фотограмметрии, чтобы представлять особенности и нюансы метода. Нюансы навскидку такие: прозрачные/блестящие/зеркальные объекты распознаются неверно (блики и отражения влияют отрицательно). Освещённые солнцем объекты имеют такой сильный контраст между освещённой и затенённой частями, что камера обычно не может их нормально разглядеть в составе одного объекта (хорошо видит или освещённую, или затенённую часть). Если же множество объектов в кадре освещено солнцем, то бывают трудности с определением их размеров и взаимного расположения (тень от солнца искажает очертания объектов на двух снимках, и триангуляция их границ даёт неверный результат). И прочее. Поэтому "машинное зрение" имеет свои границы. Компонент глубины получается триангуляцией, но предварительно программе нужно найти какую-то опорную точку, которая есть на обоих снимках. Однако дальность до выбранного объекта будет не в сантиметрах/миллиметрах, а в неких условных единицах измерения, относительно дальности до опорного объекта. А чтобы перевести эти условные единицы измерения в сантиметры (а на каждой новой паре фоток будет разный масштаб этих условных единиц, из-за новой точки опоры) - пользователю нужно самому найти в кадре некий эталонный объект, размеры или расстояние до которого ему известны. Можно в кадр прямо помещать какой-то эталон с известными размерами: линейку, кубик, шарик, и т.п. В приведенных выше программах получается 3D объект произвольного размера, который нужно потом растянуть/сжать до необходимого. Хотя Meshroom, если сумеет опознать на каком фотоаппарате делались снимки - то сможет сделать и 3D-объект правильного масштаба. Но не всегда удобно закидывать в Meshroom оригинальные фотки (где и хранятся данные о фотоаппарате), поэтому и верный масштаб удаётся получить редко.
  5. В случае 24C32 запись может производиться пакетами по 64 байта (размер буфера флешь). Если МК планировал записать 64 байта, а успел записать только 3 (такое количество для примера), после чего перезагрузился - тогда Защитный Стоп запустит запись такого, возможно некорректного, блока данных. Полагаю что любая запись должна производиться только под "осознанным" контролем программы МК. А случайно инициировать запись во флешь, в надежде что если там что-то и запишется, то это 100% корректные данные - это легкомыслие. В целом я поддерживаю идею Arlleex по созданию конечного программного автомата I2C_Master. И уточняю момент с 9 тактами SCL или 9 тактами Guard STOP - только с целью доведения этой идеи до блеска :)
  6. Ведомая микросхема конечно знает куда переписать содержимое своего буфера. А вот знает-ли об этом программа МК? Если произошла перезагрузка МК и он пытается инициализировать шину I2C, "забыв" что в буфере 24C32 лежат готовые к записи данные (отправляй только STOP и понеслась!). Тогда запустив серию из 9 "Защитных Стоп" - МК запустит запись неизвестных ему данных по неизвестному ему (МК) адресу.
  7. Тогда я позволю себе уточнить для случая 24C32, что в ситуации, если ведомая микросхема перед сбросом МК что-то передавала на шину, то сигнал Защитный Стоп (повторенный 9 раз) будет ею интерпретирован как ACK от МК, и она вместо того чтобы освободить шину, продолжит передавать биты дальше. Ну а в ситуации, если перед сбросом МК шла запись в буфер флешь, то STOP запустит запись содержимого буфера в память (в неизвестные адреса, кстати), и при этом некоторое время флешь не будет подтверждать обращения к ней. Поэтому остальные сигналы Защитного Стоп (кроме первого) скорее всего пропадут втуне.
  8. Наверное Защитный Стоп полезен - я просто не знаю, к каким микросхемам он может быть применён (не всё можно знать). Но мне интересно уточнить для стандартной флешь, например 24C32, что Вы планируете применять - Защитный Стоп, или 9 тактов SCL при SDA=1?
  9. 9 циклов SCL полезнее в тех случаях, когда STOP используется для запуска какого-то внутреннего процесса в ведомой микросхеме I2C. Например STOP запускает запись сектора в I2C-флешь. Поэтому в таких случаях, возможно, лучше использовать 9 тактов SCL, а не STOP.
  10. Моё предложение - берите любой, подходящий по грузоподъёмности (мне кажется, они отличаются только этим). Рекомендовать какой то конкретный не буду, т.к. сам бы не применял его в данном случае. Но если вам понравилась идея с сервоприводом, проверьте её обязательно. И кроме того, в процессе вы освоите Arduino, а это пригодится в данном проекте, по любому.
  11. Это называется "Тестер сервопривода". Обычно продаётся там-же, где предлагаются и сервоприводы. Видео как им пользоваться. Так что можете купить сразу всё в одном месте. Конечно. Сервопривод управляется сигналом ШИМ. Контроллер установленный на Arduino может генерировать ШИМ-сигнал с любыми параметрами подходящими для сервопривода. Хоть от 0 до 90, или от 45 до 135, или 90 - 180, и т.п. Как запрограммируете Arduino, так и будет. Можно уменьшить не скорость сервопривода, а время между командами на изменение углового положения "качалки" сервопривода. Например в программе отдаётся команда повернуть в положение 1 градус, делается пауза (например 0.5 сек), затем команда повернуть в положение 2 град, и снова пауза 0.5 сек, затем команда повернуть в позицию 3 градуса и т.д. В результате поворот на все 90 градусов займёт 45 секунд (90 шагов * 0.5 сек = 45 сек). Или любую другую паузу между шагами - хоть минуту, и будет другое время поворота на нужные вам 90 градусов. Можно использовать Power Bank. 5 вольт хватит и для Arduino и для сервопривода. Рекомендую Arduino Nano 3.0. Совершенно недорогая, и есть всё, чтобы подключив к компу по USB - сразу начать программировать, или "заливать" готовые скетчи скачанные из инета. Пример в первом попавшемся инет-магазине. На Алиэкспресс ещё дешевле. PS. Платы Arduino часто продаются с НЕприпаянными штырьками - в пакете с платой они лежат отдельно, и их надо будет ещё припаять. Как это выглядит, видео. Если вам хотелось бы обойтись без паяльника, то возможно лучше купить Arduino UNO - на ней часть разъёмов уже запаяна. Видео распаковки UNO. С точки зрения программирования эти платы идентичные (процессор тот же самый). Отличаются только шнуром USB для подключения к ПК. А ещё лучше - уточняйте у продавца в магазине, продаёт он интересующую Вас плату Arduino с уже припаянными штырьками, или их надо будет ещё запаивать? (а вам, допустим, самому паять нежелательно).
  12. Я бы предложил такое. 1. Купить набор пластиковых зубчатых колёс для моделей, и собрать из них механизм вращения зеркала с редуктором - с любой нужной степенью его замедления. Примеры таких наборов на Алиэкспресс: с двигателем, без двигателя. Как правило все детали в подобных наборах имеют стандартный модуль зуба 0.5, и поэтому совместимы между собой даже у разных продавцов (но на всякий случай уточняйте в описании товара - изредка бывают и с другим модулем). В качестве двигателя поначалу можно использовать тот что идёт в наборе, или подобный ему, взятый от любой игрушки. Управление чисто ручное: перестановкой контактов на батарейке с "+" на "-" и наоборот. 2. Далее можно попробовать применить цифровое управление двигателем. В качестве драйвера двигателя, можно взять, к примеру, L298n, или что-то подобное, которое в изобилии продаётся в магазинах для Ардуино. Полагаю что скорость двигателя регулировать не нужно (она задана подобранной зубчатой передачей), поэтому достаточно будет научиться управлять этим драйвером с помощью пары кнопок: вращение по часовой, вращение против часовой, и стоп. 3. Для остановки зеркала в положении 90 градусов и поворота в обратную сторону - использовать готовые датчики всё из того же "арсенала" Ардуино: с оптическим, с магнитным, или механическим переключением (микрик). Для переключения направления, сигналы от датчиков можно завести почти что напрямую в L298n - нужно только добавить микросхему триггера 74LS74. Такая схема (модуль L298n, два концевых датчика, и 74LS74) уже может автономно вращать зеркало на 90 градусов и возвращать его на исходную позицию. Если же для управления решите использовать процессорную плату Ардуино (если есть интерес к процессорам), то датчики нужно подключить к этой плате, и уже она будет по программе "рулить" двигателем. Но в этом случае придётся немножко по-программировать. Или же поискать готовый скетч для такой схемы (вдруг кто-то уже сделал, и выложил в сеть).
  13. Возможный вариант - недо-конфигурирован Port Mapping контроллер. Линию SDA вывели на внешний пин P4.1, а линию SCL на пин P4.2 - почему-то нет. Это может быть связано с тем, что доступ к регистрам PortMapp должен каждый раз происходить через ввод пароля 0x2D52 (обязательное условие), а в тексте программы доступ с паролем происходит один раз - при конфигурации пина P4.7. А при настройке портов P4.1 и P4.2 пароль не вводится вовсе.
  14. Да, да. Это предложение только для генерации точной тактовой частоты в одном из модулей схемы. Например, это может быть основная частота МК (вместо кварца 8МГц используется такой генератор), или для точного регулирования частоты модуля I2S в МК (вход I2S_CKIN, как предлагали выше), или только для частоты работы самого ЦАП, если там есть такой вход. Т.е. из всех возможностей, в генераторе используется только вывод меандра, и его частота. Генератор относительно недорогой, и точный с большим запасом для данного применения.
  15. Вариант с покупкой готового модуля для высокоточной генерации частоты. Если ТС живёт в крупном городе, то возможно стоит поискать в местном радиомагазине DDS-генератор сигнала AD9833 (скорее всего находятся в отделе для Arduino). Микросхема выдаёт такие сигналы: синус, меандр, треугольник. Диапазон выходной частоты от 0 до 12.5МГц, с шагом 0.1Гц. Или ещё более крутой вариант AD9834. Выдаёт синус и треугольник. По частоте на выходе: до 37.5МГц при тактовой 75МГц с разрешением 0.28Гц. А при тактировании 1МГц - разрешение 0.004Гц. Фотки модулей (для поиска в радиомагазине), и примерные ссылки на Али (чисто для ориентировки по ценам, и чтоб бегло посмотреть описание): AD9833, AD9834 Сам пользовался AD9833 для точной генерации частоты. Программируется просто. Второй вариант только рассматривал, но не работал с ним.