Перейти к содержимому

Chebuya

Пользователи
  • Публикации

    609
  • Зарегистрирован

  • Посещение

  • Победитель дней

    72

Сообщения, опубликованные пользователем Chebuya


  1. 40 минут назад, hohserg сказал:

    В процессе использования возникли следующие баги:

    • В интерпретаторе при вводе "computer.uptime()" иногда срабатывает, иногда зависает(не знаю, что именно, планшет или дрон)

    Понятия не имею. Зависать на планшете не должно, скорее всего на дроне что-то. Проверю как будет время(и желание)

    40 минут назад, hohserg сказал:

    Имеем связанные дрон и планшет. Включаем сначала дрона, потом планшет. Планшет считает, что не приконектился, хотя сообщения быстрых клавиш(движения, например) отправляет, поэтому интерпритатор не работает, параметры дрона показывает N/A

    А эта штука называется таймер обновления. Планшет не часто запрашивает обновление данных - поэтому N/A. Интерпретатор должен работать при N/A - он только отсылает команды. И вернуть, по идее, должен. Если данные N/A - принудительно обнови данные(вроде кнопка E). Если буду часто запрашивать - никакой батарейки не хватит(у дрона/планшета, энергия ведь тратится)

     


  2. 30 минут назад, hohserg сказал:

    Моя прошивка по идее будет быстрее работать - не нужно тратить время на запись в eeprom и перезапуск

     

    Когда нужно поменять одну строку или какую-то константу, это может быть ощутимо

    Э? computer.shutdown сделан после того, как программа завершила своё исполнение. Т.е если программа - бесконечный цикл, то компьютер никогда не выключится. Это не ощутимо - компьютер запускает программу мгновенно. Быстрее шифт+пкм по дрону/роботу, чем вводить что-то в компьютере. 

    В eeprom программу не записывает - я просто прошиваю любой EEPROM этим кодом - и код загружается в оперативную память. Опять же повторюсь - запуск мгновенный, если файл не раздувать больше 15 килобайт. 


  3. 2 часа назад, hohserg сказал:

    При помощи ПДУ можно тестировать произвольные прошивки? Не только для дрона?

    Нет, к сожалению это только для дронов=)
    на самом деле, проще вообще так делать:

    local handle, data, chunk = component.proxy(component.list("internet")()).request("http://мой-ип/bios.lua"), ""
       
    while true do
        chunk = handle.read(math.huge)
        if chunk then
            data = data .. chunk
        else
            break
        end
    end
     
    handle.close()
    
    local chunk, err = load(data, "=stdin", "t")
    if not chunk and err then
    	error(err)
    end
    
    success, err = xpcall(chunk, debug.traceback)
    if not success and err then
    	error(err)
    elseif success and not err then
    	for freq = 100, 2000, 100 do 
    		computer.beep(freq, .1)
    	end
    
    	computer.shutdown()
    end

    И редактируешь код  прямо в редакторе, а еще говорил @Asior что дропбокс позволяет открывать файлы в облаке как файлы на компьютере. Так омжно даже не заморачиваться, а тупо перезагружать, и комп/дрон/мк уже скачал новую прошивку.

    • Нравится 1

  4. 42 минуты назад, hohserg сказал:

    Актуальность

    Раньше, чтобы обновить прошивку дрона или микроконтроллера нужно было

    • записать прошивку на eeprom через компьютер,
    • снять устройство,
    • заменить eeprom через верстак
    • поставить устройство

    Довольно геморно если устройств много или часто вносятся мелкие изменения во время разработки

     

    Решение

    Чтобы не демонтировать устройство можно отправлять ему прошивку по беспородной сетевой карте. Устройство в свою очередь принимает обнову и применяет ее.


    А можно использовать мою программу. Там есть и возврат ошибок, так же там есть интерпретатор(можно вживую, как на компьютере, протестировать какую-то вещь). Там и есть загрузка файлов, и так же можно при желании даже перепрошить дрона=)

     

    UPD: А у @Fingercomp эта штука в openprograms уже висит 3 года https://github.com/OpenPrograms/Fingercomp-Programs/tree/master/net-flash

    • Нравится 1

  5. 16 минут назад, Doob сказал:

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

    Да, я как-то смотрел. Этот cozmo имеет микрофон, возможность работать c алексой(Алиса/Сири/Кортана от Амазон), и мало того - выход в инет. Так что скорее всего он и видео с камеры сливает в сесть со звуком. Не удивлюсь что этот робот будет по столу твоему гулять и разглядывать монитор "Asus" c клавиатурой noname c aliexpress. И будет кидать таргетированную рекламу с клавиатурами и мониторами


  6.  

    15 минут назад, Doob сказал:

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

    Скрытый текст

     

     


  7. 2 часа назад, eu_tomat сказал:

    Ещё есть идея. Можно вынести в отдельный проект создание интерпретатора Lua-кода через web-интерфейс. Это почти как с дронами из OpenComputers: непосредственная отладка при работе с периферией дрона затруднена, поэтому приходится использовать планшеты и стационарные компы для опосредованной отладки. Так и тут, чтобы не заливать каждый раз программу в контроллер, можно короткие скрипты выполнять через web-интерфейс и выводить какую-то информацию. Такая программа позволила бы быстрее и удобнее уточнять нюансы при работе с периферией. Но с этой задачей ты и без меня справишься. Возможно даже, до того, как я приобрету NodeMCU.

    Если использовать ESPLorer - там по стандарту есть интерпретатор. Отлаживаем на компе с кабелем, как отладили - можем уже и без кабеля запускать.

    Скрытый текст

    LAvytU6.png

     

    По поводу NodeMCU - это прошивка, а не платформа. Те платы NodeMCU - лишь esp12e в удобном формате на основе esp8266. Esp8266 можно программировать в среде Arduino, умельцы сделали. Если брать ESP32, то её тоже можно программировать

    2 часа назад, eu_tomat сказал:

    Я в ближайшее время вряд ли смогу осилить распознавание геометрии пространства по изображениям с камер. Хочу начать с более простых задач. Но да, это уже не для всех проще. Можно, наверное, какой-то готовый софт использовать, но я не в курсе этих решений. И хватит ли для них RPi? А подключение к этой задаче ещё и стационарного компа тоже дополнительно усложнит проект.

    https://www.youtube.com/watch?v=zk6CEt8rsdA

    Там вроде что-то есть.

     

    P.S Мой вывод - лучше сделать машинку без камеры и лидаров и троллить котов самому, нежели автоматически. Этот проект будет намного проще, и понятнее остальным. Кода там минимум получится, а дальше можно будет узнать, интересна ли тема остальным.

     


  8. 2 часа назад, eu_tomat сказал:

    Было бы глупо что? Трогать функции? Так они же сами себя не напишут. Сам микроконтроллер не имеет аппаратной поддержки чисел с плавающей точкой даже для базовых операций, не говоря уже о тригонометрии.

    Если честно, то я думаю, что для текущего проекта esp8266 недостаточно. А esp32 вполне подходит, но там NodeMCU уже нет. Я считаю, что нужно начать с простого. На большее с NodeMCU рассчитывать не стоит. Либо действительно брать уже RPI. 

     

    На счёт лидаров - в автопилоте Tesla они не используются, а в основном используются камеры. Если честно - то я склоняюсь, что проект ну никак не для "начинающих" в микроконтроллерах. Нужно что-то проще, автономный робот это посложнее, чем написать даже простую игрушку на Lua. Нужно предугадать массу ситуаций. А делать просто машинку, которая избегает препятствий - как по мне, банально не интересно. Если думать о простоте - то даже на этапе "обумывания" проект уже не первой лёгкости.

    P.S Если я правильно понял - хочется сделать именно машинку, которая должна сама ездить, делать какие-то действия? Или просто ездить отталкиваясь от препятствий?  


  9. 3 часа назад, eu_tomat сказал:

    У меня вот ещё какой вопрос. Как у NodeMCU дела с математическими функциями? Синусы с косинусами придётся самому вычислять? Как там вообще осуществляются вычисления с плавающей точкой? 

    Я думаю математические функции не тронуты, было бы глупо. Но нужно проверить


  10. 24 минуты назад, eu_tomat сказал:

    Да, цель в создании именно автономного робота, способного видеть и обходить препятствия без участия человека. Я неточно сформулировал цель. 

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


  11. 3 минуты назад, eu_tomat сказал:

    Камеру поставить, конечно, весело, но что делать с картинкой, я пока не придумал. Я не знаю, как по картинкам распознать преграды, и реально ли выполнить эту задачу силами самого контроллера. Может, при развитии проекта вместе что-нибудь придумаем. Это было бы интересно. А пока что с вычислительной точки зрения я способен овладеть лишь дальномером.

    А зачем распознавать преграды микроконтроллером?=)

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


  12. 4 минуты назад, eu_tomat сказал:

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

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

    8 минут назад, eu_tomat сказал:

    Ну, а как принудительно установить на нужный угол? Шаговый двигатель не имеет такой возможности. Можно лишь сместить на нужный угол относительно исходного. И снова встаёт вопрос, как определить угол? Исходный или конечный, без разницы.

     

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

    По сути, можно использовать недостаток сервоприводов которые не могут вращаться на 360 градусов - крутануть например на 260 градусов вправо, и рано или поздно сервопривод установится в нужное положение. А там уже можно прыгать от исходного положения. 

     


  13. 14 минуты назад, eu_tomat сказал:

    Но как определить начальный угол вала шагового двигателя при включении робота?

    Никак. Принудительно при включении робота устанавливать угол например на 90%

    15 минут назад, eu_tomat сказал:

    В видео я не услышал главного: почему после поворота на один градус нужно ждать именно 30 миллисекунд. Почему не больше? Почему не меньше? Изменится ли эта задержка при повышении или понижении напряжения питания сервопривода?

    Скорее всего, эти данные получены экспериментальным путём. Так же, есть задержка между получением данных у ультразвукового сенсора. Ты то можешь выставить любую задержку, не обязательно ведь ставить 30 мс


  14. 28 минут назад, eu_tomat сказал:

    Правильно ли я понимаю, что сервоприводы для Ардуино могут лишь воспринимать управляющий сигнал без возможности передать контроллеру фактический угол поворота? И если сервоприводу дать команду развернуться в крайней положение из противоположного, то время завершения операции можно определить лишь примерно? Оно, насколько я понимаю, зависит от питающего напряжения? И является ли скорость поворота сервопривода более-менее постоянной, или сервопривод замедляется ближе к целевой точке? И есть ли у сервопривода крайние положения? Может ли он непрерывно вращаться на 360 градусов?

    Так же, огорчу - сервоприводы действительно на это неспособны. Можно узнать лишь приблизительно, где находится сервопривод. Здесь уже помогут моторчики как в жёстких дисках или 3д принтерах. Они называются "шаговые двигатели". Их положение можно определить со 100% точностью, поэтому для этого они идеально подходят. Но это не совсем обычные двигатели - им нужен специальный драйвер. Что опять же усложнит конструкцию и порог входа. 


  15. 25 минут назад, eu_tomat сказал:

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

    Надеюсь, ты не против, если я кину сразу видео?
    https://youtu.be/wOBoQ2WoAQw
    Можно заменить ультразвуковой датчик на дальномер, думаю принцип не будет сильно отличаться. 


  16. 16 минут назад, eu_tomat сказал:

    Как выбирать плату контроллера? Установлен ли на плату WiFi, или он устанавливается отдельным модулем?

    NodeMCU платы сделаны на основе esp12e, реже esp12f. Этот микроконтроллер по умолчанию имеет Wi-Fi, но он слабоват, если в квартире/доме больше 2 комнат. 

     

    16 минут назад, eu_tomat сказал:

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

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

     

    16 минут назад, eu_tomat сказал:

    Какие выбрать модули для управления двигателями? По каким критериям?

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

    https://ru.aliexpress.com/item/32856351192.html?spm=a2g0s.9042311.0.0.23cb33ed6qFjsr

    (Сам брал лично)

     

    16 минут назад, eu_tomat сказал:

    Какие существуют оптические датчики расстояния? Могут ли они выдавать аналоговый сигнал, и есть ли в аналоговом сигнале какой-либо смысл?

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

     

    16 минут назад, eu_tomat сказал:

    Для начала чем проще, тем лучше. 

     

    Как выбрать аккумулятор и контроллер заряда?

    Если цель действительно на простоту - то проще взять powerbank. Выйдет дешевле и проще.

     

    16 минут назад, eu_tomat сказал:

    Как подключаются сервомашинки к контроллеру? Нужны ли им дополнительные модули драйверов?

    В принципе, сервопривод можно подключить напрямую к плате - но у них потребление слишком большое и фонить будет сильно(wi-fi сигналу мешать будет), так же - есть шанс спалить плату. Поэтому сервоприводам нужно отдельное питание от микроконтроллера.

     

    16 минут назад, eu_tomat сказал:

    Какая периферия требуется для воспроизведения звуков с флешки?

    Вообще, писать всё это на Lua слишком сложно. Если очень хочется - можно заказать отдельный модуль, который воспроизводит музыку отдельно. А флеш-накопитель к "слабым" esp-шкам подключить нельзя, разве что к ESP32 можно. Но там уже и камеру приделать можно =)
     

    Скрытый текст

     

     

    UPD: По поводу драйверов для двигателей - в том модуле, что я сбросил - есть ШИМ, то есть плавное управление возможно. В некоторых модулях же ШИМ нет. 

    • Спасибо 1

  17. учитывая фичу с render=true можно сделать вообще всё.

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

    Хоть такую штуку: 
     

    Скрытый текст

     

    P.S При желании, можно даже майн пройти. Тот же проект "цитадель", если я ничего не забываю.


  18. Всем привет. Есть такая функция: 

    https://pastebin.com/raw/f6vfTZCQ

     

    В ней, если не понятно, идёт отрисовка цветного текста. 

    Пример:

    image.png.9d422b302a10505d93d00efe320151f9.png

     

    Только вот реализация хромает. Слишком уж долгая отрисовка выходит. Есть идеи как можно сделать это побыстрее?(А то этот код мне вообще не нравится, если честно)


  19. 10 минут назад, NEO сказал:

    Код закоммичен в феврале 18 года, почему он за два года только сейчас начал проявляться?

    на дримфинити этот баг уже года полтора-два, скорее всего проблема во взаимосвязи каких-то модов

×
×
  • Создать...