FPGA chips

Изучаем САПР Altera Quartus II / Intel Quartus Prime, язык описания аппаратуры Verilog HDL и кое-что про VHDL. Программируем FPGA Altera / Intel Cyclone III, Cyclone IV, MAX II, MAX10. Экспериментируем с платами разработчика  FPGA серии Марсоход, Марсоход2, Марсоход3. А еще разбираемся с FPGA Gowin.


gige ethernet shield angle view

Разработали новую плату расширения - это гигабитный Ethernet.

Её можно использовать совместно с нашими платами с FPGA Gowin Марсоход3GW2, с FPGA MAX10 Альтеры Марсоход3 / Марсоход3бис и Марсоход2 (Cyclone III) / Марсоход2бис (Cyclone IV), 

На плате установлена микросхема Realtek 8211E. Это так называемый трансивер, то есть одновременно и передатчик и приёмник (transciever, transmitter + receiver). Микросхема обеспечивает совместимость со стандартами 10Base-T, 100Base-TX, 1000Base-T IEEE 802.3. Чип Realtek обеспечивает физический уровень приема (PHY) и передачи Ethernet пакетов через кабель CAT5 UTP. При этом, микросхема достаточно умна, чтобы обнаруживать и исправлять ошибки приёмопередачи связанные с перекрестными помехами и эхо сигналами в кабеле. Так же эта микросхема автоматически обнаруживает прямой и перекрестный кабель.

Передача данных между PHY Realtek 8211E и FPGA осуществляется через интерфейс RGMII, Reduced Gigabit Media Independent Interface.

Файлы дизайна нашей платы в KiCad 6 выложены на гитхаб. Тут есть и схема и PCB платы и в папке doc есть документация на саму микросхему Realtek.

android bot

Это ещё один проект - ревизия ранее созданного. Я когда-то уже делал управление машинкой из браузера, теперь хочу его повторить. Идея проекта очень простая, но интересная:

  1. на машинку устанавливаем смартфон с ОС Андроид;
  2. на смартфоне запускаем Web Server, который напишем на питоне;
  3. клиент подключается с ноутбука к серверу на смартфоне и получает HTML страницу с двумя окнами: окно видео с камеры смартфона и окно с кнопками управления;
  4. кнопки управления это Старт, Стоп, Назад, Налево, Направо, кликая мышкой в браузере на эти кнопки клиент посылает запрос на Web сервер;
  5.  Web сервер принимает запросы от клиента и воспроизводит короткий аудио файл с синусоидой, все звуки разной частоты;
  6. смартфон подключим к АЦП FPGA платы, и плата сможет оцифровывать сигнал и распознавать частоту звука;
  7. каждой частоте звука сопоставлена команда на шаговые двигатели Марсохода: соответственно ехать вперёд или назад, остановиться или поворачивать налево или неправо.
  8. таким образом, оператор ноутбука в браузере может и видеть картинку с камеры смартфона и управлять куда Марсоходу ехать.

Есть несколько причин, почему я взялся повторить те старые проекты. Во-первых, теперь я буду делать Марсоход на универсальном шасси, напечатанном на 3D принтере. Во-вторых, теперь я сделаю проект на другой плате, на Марсоход3GW2 с микросхемой FPGA Gowin и тут у меня есть АЦП, я смогу надежно распознавать звуковые команды со смартфона. И в-третьих, к сожалению, тот мой давнишний проект сегодня уже невозможно точно воспроизвести. Тогда я использовал на смартфоне приложение SL4A - Scripting Layer For Android. Эта программа позволяла мне запускать питоновский скрипт на смартфоне. А сейчас SL4A нет в Android Google Play. Да и вообще, этот проект SL4A давно заморожен и врядли вы сможете им воспользоваться.. Ну не погибать же хорошей идее! Сегодня придётся запускать питоновскую программу как-то иначе, дальше расскажу как.

keyboards

Идея 1: Механическая

        На настоящий момент хорошо развита технология изготовления печатных плат. Существует множество сапров в которых вы можете изобразить нужную вам плату. Существует много фирм в которых по вашей документации эту плату могут изготовить. Причем в приемлимые сроки и незадорого. Есть даже технологии изготовления плат в домашних условиях. Раз с платами все так хорошо, возникает идея - нельзя ли использовать плату не только для размещения компонентов и проводников, но и как конструктивный элемент. Для одного нашего проекта (линейная видеокамера FLEXOCAM для контроля качества типографской печати на рулонах) понадобилась 6-ти кнопочная выносная клавиатура и мы решили эту идею попробовать.

beam bot

Этот проект - современная реализация нашего давнишнего проекта "Двигаться по полосе".

Основная цель этой работы - использовать новое шасси Марсохода, которое можно напечатать на 3D принтере, и использовать более распространённые шаговые двигатели 28BYJ-48. Мне кажется, что таким образом, этот простой проект будет легче повторить.

MarsohodBot2

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

Попробуем реализовать его на новом уровне. Для этого, напечатаем разработанное нами шасси нового Марсохода на 3D принтере и соберём его, как написано вот здесь. Получится вот такая машинка, как на рисунке выше. 3D модели всех деталей есть на нашем гитхабе.

В качестве платы управления возьмем нашу плату MA3128. Я думаю, что этот же проект можно будет так же легко запустить и на других наших платах, например, используя плату Марсоход3GW2 или другие.

Проект для микросхемы Altera CPLD платы МА3128 в среде Altera Quartus II v13.0 я разместил на гитхабе https://github.com/marsohod4you/MA3128/tree/main/IR-ctrl-bot

Ну а дальше я расскажу чуть подробнее об этом проекте и в конце статьи будет его видео демонстрация.