Моя точка зрения с автомобильной аналогией — поехал я жену за гаражами дрифтингу поучить. Ну, крутимся мы спокойно — тут выезжает велосипедист такой. Я от неожиданности аж смартфон с игрушкой выронил, рулевое колесо рванул и мы в забор въехали. Вот ведь велосипедисты сволочи — запретить всех.
А если серьёзно. Налицо некая лакуна в регулировании. Воздушное пространство класса G предполагается к использованию для нерегулируемых визуальных полётов, при этом всё законодательство рассчитано на то, что летает что-то большое и издалека видное. Очевидно, что дроны к таковым не относятся.
Если бы я был законодателем (да-да, любой таксист обязательно эксперт), то я бы сделал следующее:
— любой дрон массой более 0.5 кг обязан передавать свои координаты через GCS (ground control station) на некий сервер. Это не создаст больших проблем, так как практически всё современное уже имеет GPS + телеметрию. Всё что меньше — детские игрушки, не представляющие никакой опасности. Тот же сервер блокирует арминг если в окрестностях находится вертолёт или дрон пытается взлететь/влететь в запрещенную зону.
— полёты дронов выше 120 метров запрещены — не вижу никаких причин им там летать
— любой вертолёт или лёгкий самолёт обязаны иметь связь с тем же сервером и передавать свои координаты
А неважно какой именно отрезок проходить. Важно то, что пока бананов больше 2000 расход 5 бананов на километр. Больше 1000 — 3 банана на километр.
Следовательно, на первой тысяче бананов верблюд пройдёт 1000/5= 200 км. На второй тысяче — 1000/3= 333.(3) километров. После чего у него останется идти 1000 — 533 = 467 км, на которые он потратит 467 бананов. Значит останется 533 банана. Всё. По сколько именно идти в пределах этих километров значения не имеет.
Бегло пробежался по даташиту — вроде все команды совпадают. Скорее всего где-то косячная реализация у китйцев — так бывает. Либо разрабы библиотеки где-то накосячили по принципу «и так работает — сойдёт»
Эээээ. Не понял. Это же eeprom, а не флеш — там нет блоков — запись в произвольное место от одного байта. Последовательная запись блока до 32 байт сделана исключительно для удобства пользователей.
Не совсем понял процедуру заказа деталей. То есть все эти детали (или аналоги) должны быть на складе сборщика? А если у меня что-то экзотическое стоит? Есть ли какие-то доплаты за сложность (например BGA)?
Там толстая рамка прикручена шурупчиками к обычной плате. Никто не мешает её открутить.
Моя плата сделана так, что на неё можно напаять разъем HUB75E мамой и воткнуть её прямо в плату панели. Тогда получается очень компактный бутерброд — плата оказывается внутри.
Точный размер рамки сейчас не скажу — панель лежит на работе сейчас.
А, да. Понял. Тут есть одна тонкость.
Когда я делал эту железяку, то мне очень не хотелось делать bit shuffling, который обязательно надо делать для режима «для бита с минимальным весом нам нужно защёлкнуть 6-битные данные цвета».
В таком режиме данные, относящиеся к одному пикселю, разбросаны побитно в 8 разных байтах экранного буфера. Поэтому, чтобы поставить одну точку надо считать из экранного буфера 8 байт, изменить в них по 3 бита и положить обратно в память. У меня данные одного пикселя лежат в трёх последовательных байтах, поэтому для защёлкивания 6-ти битных данных цвета надо забрать из памяти 6 байт. Поэтому при 50МГц выборке из памяти мы получаем частоту защелкивания данных в строку всего 50/6 = 8,3 МГц, что всего в два раза больше, чем может отдавать STM32.
Зато имеем очень простую, быструю и прозрачную работу с экранным буфером.
В общем-то, сделать версию, которая будет отдавать данные именно в таком видео и повысить скорость задвигания данных в буфер до полных 50МГц — как два пальца. Тогда размер обслуживаемой панели можно будет увеличить еще в 6 раз. То есть на 100Гц будет уже не 128х128, а 384х256, например.
Если вдруг кому-то будет сильно надо — сделаю — это можно сделать на том же железе легко :)
Это впритирочку. То есть 32х32 еще выдадим с частотой порядка 50 Гц (а это мало для светодиодов — так как у них нет инерционности, то частоту лучше иметь не ниже 100Гц). А вот 64х32 уже частота падает ниже неприличности.
А мой контроллер на 100Гц тянет панель 128х128 в полном RGB888.
Да, я видел этот проект. STM32F4, 96х48 пикселей, то есть примерно в два раза больше пикселей, чем у меня сейчас.
Можно и так, конечно, хотя мне мой вариант нравится заметно больше — у меня выдал данные с процессора в контроллер и вообще забыл про панель до изменения картинки :)
Ну и по расчётам мой вариант должен вытянуть при частоте обновления 100 Гц панель примерно 128х128
> все ваши панели под HUB гигантских размеров
Что-то я стал сомневаться, что Вы с ними дело хоть когда-нибудь имели.
У меня на столе сейчас панель 64х32 с шагом 3 мм, это 192х96мм. Это огромная панель? Её цена с доставкой — 21$. Светодиоды там — 2121, кстати.
Теперь смотрим. WS2812B в версии 3535 стоят около 60$ за 1000 штук. Чтобы собрать аналогичную панель надо 2048 светодиодов, то есть где-то 130 баксов только на светодиоды. Если же берём самые маленькие на сегодняшний день APA102 2020, то 1000 штук их стоят каких-то 200$. То есть на 64х32 уйдёт всего-то каких-то 400$
Ну и мне очень хочется посмотреть — во сколько обойдётся соответствующая плата, шаблон для термопасты для неё, термопрофильная печь и всё прочее развлечение. Что-то подозреваю, что самодельная единичная панель 64x32 на APA102 2020 в итоге обойдётся примерно баксов так в 600-700.
И альтернатива — готовая панель с шагом 3мм за 22$ + платы (2$ за десяток при первом заказе на jlcpcb) + 5$ на детали + USB blaster за 3$. Итого 32$. Ну да, ну да, однозначно проще и дешевле на WS2812B делать, ну кто бы спорил :)
В смысле? Всё лежит на github Герберы для самостоятельного заказа Разводка в шестом sprint layout
Там еще добавлены выходные буферы 74HCT245PW — две штуки на плату. Платы заказаны, но еще не пришли, поэтому на практике не проверены.
Как придут — спаяю, проверю, выложу фотки и результаты проверки.
PRE_DELAY и POST_DELAY — это интервалы гашения до и после output enable (OE) для того, чтобы мультиплексоры успели переключить выходы и ключи открыться/закрыться. Без них будут «тянучки» от горящих пикселей на соседние строки. Значения подбираются экспериментально для конкретной панели.
Есть. Еще в два раза дороже. Готовых панелей на них нет. Паять самому пару тысяч диодов? Причём с зазором меньше миллиметра? И получить панель с шагом 4.5мм, при этом готовые LED панели сейчас доступны от шага 2мм. Оно того стоит?
1. Цитата: «матрицы 32х16 RGB светодиодов (протокол HUB75, маде ин Чина), разобрался с её управлением (читай — подковал), добился на Atmege-328 4 бита градаций BAM для каждого пикселя без мерцания, что в теории означает 4096 цветов». У меня сейчас матрица 64x32 сканируется в полном RGB888 с частотой выше 1 кГц. Есть разница? Простые табло я делал еще лет 5 назад на STM32F103 с выдачей через FSMC (до 512х32 там было, насколько я помню).
2. WS2812 в несколько раз дороже и минимальный шаг 10 мм.
Да, там ошибка, я изначально хотел уйти на MaxII — это как раз CPLD. Но потом глянул на CycloneIV и они мне понравились тем, что там достаточно внутренней RAM и цена вполне человеческая. А CPLD на FPGA поменять уже забыл. Там to do вообще уже не сильно актуален — пока статья мариновалась на модерации я уже успел и плату новую развести и заказать, и кое-что другое сделать.
А если серьёзно. Налицо некая лакуна в регулировании. Воздушное пространство класса G предполагается к использованию для нерегулируемых визуальных полётов, при этом всё законодательство рассчитано на то, что летает что-то большое и издалека видное. Очевидно, что дроны к таковым не относятся.
Если бы я был законодателем (да-да, любой таксист обязательно эксперт), то я бы сделал следующее:
— любой дрон массой более 0.5 кг обязан передавать свои координаты через GCS (ground control station) на некий сервер. Это не создаст больших проблем, так как практически всё современное уже имеет GPS + телеметрию. Всё что меньше — детские игрушки, не представляющие никакой опасности. Тот же сервер блокирует арминг если в окрестностях находится вертолёт или дрон пытается взлететь/влететь в запрещенную зону.
— полёты дронов выше 120 метров запрещены — не вижу никаких причин им там летать
— любой вертолёт или лёгкий самолёт обязаны иметь связь с тем же сервером и передавать свои координаты
Сразу вспомнил про BFG (Big Fucking Gun). Полез гуглить и точно:
ссылка
Следовательно, на первой тысяче бананов верблюд пройдёт 1000/5= 200 км. На второй тысяче — 1000/3= 333.(3) километров. После чего у него останется идти 1000 — 533 = 467 км, на которые он потратит 467 бананов. Значит останется 533 банана. Всё. По сколько именно идти в пределах этих километров значения не имеет.
Моя плата сделана так, что на неё можно напаять разъем HUB75E мамой и воткнуть её прямо в плату панели. Тогда получается очень компактный бутерброд — плата оказывается внутри.
Точный размер рамки сейчас не скажу — панель лежит на работе сейчас.
Когда я делал эту железяку, то мне очень не хотелось делать bit shuffling, который обязательно надо делать для режима «для бита с минимальным весом нам нужно защёлкнуть 6-битные данные цвета».
В таком режиме данные, относящиеся к одному пикселю, разбросаны побитно в 8 разных байтах экранного буфера. Поэтому, чтобы поставить одну точку надо считать из экранного буфера 8 байт, изменить в них по 3 бита и положить обратно в память. У меня данные одного пикселя лежат в трёх последовательных байтах, поэтому для защёлкивания 6-ти битных данных цвета надо забрать из памяти 6 байт. Поэтому при 50МГц выборке из памяти мы получаем частоту защелкивания данных в строку всего 50/6 = 8,3 МГц, что всего в два раза больше, чем может отдавать STM32.
Зато имеем очень простую, быструю и прозрачную работу с экранным буфером.
В общем-то, сделать версию, которая будет отдавать данные именно в таком видео и повысить скорость задвигания данных в буфер до полных 50МГц — как два пальца. Тогда размер обслуживаемой панели можно будет увеличить еще в 6 раз. То есть на 100Гц будет уже не 128х128, а 384х256, например.
Если вдруг кому-то будет сильно надо — сделаю — это можно сделать на том же железе легко :)
А мой контроллер на 100Гц тянет панель 128х128 в полном RGB888.
Можно и так, конечно, хотя мне мой вариант нравится заметно больше — у меня выдал данные с процессора в контроллер и вообще забыл про панель до изменения картинки :)
Ну и по расчётам мой вариант должен вытянуть при частоте обновления 100 Гц панель примерно 128х128
Что-то я стал сомневаться, что Вы с ними дело хоть когда-нибудь имели.
У меня на столе сейчас панель 64х32 с шагом 3 мм, это 192х96мм. Это огромная панель? Её цена с доставкой — 21$. Светодиоды там — 2121, кстати.
Теперь смотрим. WS2812B в версии 3535 стоят около 60$ за 1000 штук. Чтобы собрать аналогичную панель надо 2048 светодиодов, то есть где-то 130 баксов только на светодиоды. Если же берём самые маленькие на сегодняшний день APA102 2020, то 1000 штук их стоят каких-то 200$. То есть на 64х32 уйдёт всего-то каких-то 400$
Ну и мне очень хочется посмотреть — во сколько обойдётся соответствующая плата, шаблон для термопасты для неё, термопрофильная печь и всё прочее развлечение. Что-то подозреваю, что самодельная единичная панель 64x32 на APA102 2020 в итоге обойдётся примерно баксов так в 600-700.
И альтернатива — готовая панель с шагом 3мм за 22$ + платы (2$ за десяток при первом заказе на jlcpcb) + 5$ на детали + USB blaster за 3$. Итого 32$. Ну да, ну да, однозначно проще и дешевле на WS2812B делать, ну кто бы спорил :)
Герберы для самостоятельного заказа
Разводка в шестом sprint layout
Там еще добавлены выходные буферы 74HCT245PW — две штуки на плату. Платы заказаны, но еще не пришли, поэтому на практике не проверены.
Как придут — спаяю, проверю, выложу фотки и результаты проверки.
2. WS2812 в несколько раз дороже и минимальный шаг 10 мм.