Arduino small computer - ASC

Arduino small computer - ASC 10

Сразу начну с хорошего, теперь у каждого процессора только одна прошивка, одна и мультиязычная)))

Добавлено:
- Мультиязычность

У нас есть пару разделов:
  • Пароль
  • Дизайн
  • Язык

Начнём с раздела пароль:
1. Создать пароль - создаёт пароль на устройстве, устройство будет его требовать при каждом запуске
2. Сменить пароль - сменяет старый пароль на новый
3. Удалить пароль - удаляет пароль с устройства

Далее раздел дизайн:
1. Показ FPS - если включить то в правом верхнем углу будет показываться количество FPS
2. Показ <- - если включить то в левом верхнем углу будет показываться иконка <-, которая говорит что можно вернуться назат

И последний раздел идёт язык:
После открытия раздела будет показываться текущий язык, если нажать энкодер то язык системы немедленно смениться на другой который показывается на экране

Думаю добавить в следующую версию модуль
CH376S U Disk и грузить прошивку с него, модуль пока в доставке с алика, а что получиться ни знаю. Также скоро выйдут исходники проекта
Данная версия принесла переработку движка EEPROM и программы для работы с ней
  • Добавлена подпись для файлов EEPROM
  • Добавлено подтверждение операции с EEPROM
  • Добавлена возможность войти в Recovery через меню питания
  • Добавлен стандартный файл EEPROM под названием "standart.eeprom"
Как теперь можно входить в Recovery?
Можно после запуска устройства зайти в Recovery через систему, старый способ входа в Recovery через загрузчик и ядро остался.
Что бы перейти в Recovery через систему, нужно сделать эти действия:
1. Перейти на пункт "Питание" или "Power"
2. Открыть пункт "Питание" или "Power"
3. Перейти на пункт "Перезагрузка" или "Reboot"
4. Зажать энкодер на пункте "Перезагрузка" или "Reboot"

Систему сделает следующие действия:
  • Сбросит все системные переменные
  • Заново инициализирует оперативную память
  • Завершит все процессы оболочки
  • Завершит процесс "UI"
  • Завершит процесс "Draw and Map"
  • Запустит процесс "Loader"
  • Выполнит отрисовку Recovery
  • Завершит процесс "Loader"
  • Завершит процесс "Kernel and System"
  • Запустит процесс "Tick out encoder"

Важно!!! Старые файлы EEPROM не будут работать с новой версией программы, так как изменена концепция файла!
В данной версии было полностью переписано ядро. Теперь есть возможность экспортировать или импортировать EEPROM через FlashBoot и программы ASC Control GUI.

Добавлено:
  • FlashBoot
  • Программа ASC Control GUI
Обновлено:
  • Recovery
  • Ядро
Есть видео на канале, ссылка
Скачиваем архив и открываем его.
Далее распаковываем папку "Software" в удобное для нас место.
Запускаем файл "Flash.bat" и водим номер порта без надписи "COM"!
Далее из папки firmware распаковываем из папки с вашей конфигурацией желаемую прошивку, вот обозначения:
"asc.russian.only.hex" - Прошивка только на русском
"asc.english.only.hex" - Прошивка только на английском
Закидываем файл прошивки в папку с AirFlashTools
Выбираем действие 1 (Прошить прошивкой)
Настраиваем утилиту под себя (Например настрою под Arduino nano с старым загрузчиком: m328p, 57600baud )
Вводим имя файла прошивки с расширением!
Выбираем начать прошивку.
Ждём окончания.
Далее просто выбираем действие выход из утилиты
В обновлении была проведена полная переработка ядра. Добавлены новые фичи и функции.

Вот список, чего было проведено:
Добавлено:
  • Пароль
  • Функция для Recovery
  • Новая инициализация ядра
Изменено:
- Порядок запуска устройство
- Работа устройства


Есть видео на канале, ссылка
Скачиваем архив и открываем его.
Далее распаковываем папку "Software" в удобное для нас место.
Запускаем файл "Flash.bat" и водим номер порта без надписи "COM"!
Далее из папки firmware распаковываем из папки с вашей конфигурацией желаемую прошивку, вот обозначения:
"asc.russian.only.hex" - Прошивка только на русском
"asc.english.only.hex" - Прошивка только на английском
Закидываем файл прошивки в папку с AirFlashTools
Выбираем действие 1 (Прошить прошивкой)
Настраиваем утилиту под себя (Например настрою под Arduino nano с старым загрузчиком: m328p, 57600baud )
Вводим имя файла прошивки с расширением!
Выбираем начать прошивку.
Ждём окончания.
Далее просто выбираем действие выход из утилиты
Обновление принесло изменение в плане загрузки прошивки. Теперь для загрузки прошивки используется AirFlashTools.

Схема подключения:
Снимок экрана 2024-02-03 170852.png


Есть видео на канале, ссылка
Скачиваем архив и открываем его.
Далее распаковываем папку "Software" в удобное для нас место.
Запускаем файл "Flash.bat" и водим номер порта без надписи "COM"!
Далее из папки firmware распаковываем файл прошивки который хочим, вот обозначения:
"asc.english.only" - Прошивка полностью на английском
"asc.russian.only" - Прошивка полностью на русском
"asc.russian.with.english.recovery" - Прошивка на русском с английским Recovery.
Закидываем файл прошивки в папку с AirFlashTools
Выбираем действие 1 (Прошить прошивкой)
Настраиваем утилиту под себя (Например настрою под Arduino nano с старым загрузчиком: m328p, 57600baud )
Вводим имя файла прошивки с расширением!
Выбираем начать прошивку.
Ждём окончания.
Далее просто выбираем действие выход из утилиты

Задумывается сделать поддержку запуска скриптов ROM из памяти EEPROM. Раз зашили и потом читать.
Спустя долгое время проект был доработан и выпустина новая версия

Что было сделано?

Изменено:
  • Ядро
  • Структура кода
  • Работа приложения "Таймер"

Добавлено:
  • Новая единица отчёта "Час" в приложении "Таймер"
  • Recovery

Основное упорство было сделано на производительность и быстродействие, более подробно об этом можно почитать на главной странице проекта
Как и говорил, это обновление принесло новые возможности. Было сделано:
Изменено:
1. Дисплей

Добавлено:
1.Игра Dino


Данная версия находится на alpha тестировании. И многие функции переносится. Поддержка SD нет. Из-за нехватки памяти. В коде есть возможность запустить искусственный интеллект. Он будет играть в игру Dino за вас! Найди эту возможность в коде (возможность закомментирована ).
Что добавлено?
1. RFID модуль
2. Безопасная загрузка (при включении просит поднести ключ)
3. Кнопка сброса

После включения нас попросит зарегистрировать карту, на дисплее должна появится надпись "Register card". Если её нет, зажимаем кнопку и перезагружаем Arduino. После включения появится надпись "Complect! Loading... Wait!". После должна появится надпись "Register card". Подносим карту к RFID модулю и ждём надписи "Complect! Loading... Wait!". После пойдёт загрузка. ВСЁ! Карта зарегистрирована. Теперь после это при каждом включении появляется надпись "Auth card", авторизация карты. Принцип тот же, подносим карту и ждём. Если на дисплее появилась надпись "Wrong!", то карта не та. Случаи если эти надпись "Wrong!" не появилась, значит карта подошла и устройство загружается! Конец)
Первая настройка:
C++:
#define enabledRfidLock true
Настройка отвечает за включения безопасная загрузка (при включении просит поднести ключ) .

Вторая настройка:
C++:
#define enabledSoundStart true
Настройка отвечает за включения звук запуска. ВНИМАНИЕ! Если выключить настройку, то загрузка станет проходить быстрее!

Информация! в следующей версии появится LCD2004 и поддержка SD (иметь SD нужно всегда). Будет добавлен новый функционал для LCD2004 и SD
В данной версии особо ничего не изменилось! Просто доработка ПО. Также было изменено древо(папки) проекта:
firmware - проект и его файлы
libraries - библиотеки проекта.

Откройте папку: Мои документы/Arduino/libraries
Далее скопируйте все библиотеки с папки libraries(папка проекта) в Мои документы/Arduino/libraries
Откройте файл прошивки из папки firmware/asc и нажмите вверху кнопку "Загрузить".

Готово!
Начнём, что было сделано?
Изменено:
1. дисплей OLED на lcd1602
2. поддержка Serial
Добавлено:
1. программа "Distance"
2. программа "Guess the number"
3. повторная инициализация дисплей

Схема:
схема.png


Как работать с программой "Distance"?
В меню надо выбрать данную программу и открыть её. После на дисплей выводится расстояние от датчика до перед ним препятствия. Количество измерений за раз настраивается в прошивке, в поле с настройкой distanceReadCol:
#define distanceReadCol 15
Чем больше укажите число тем больше будет сделано измерений за раз и тем больше будет точность показаний, однако чем больше число тем больше будет запаздывать измерения и тем больше будет тратится времени на один вывод!

Как работать с программой "Guess the number"?
В меню надо выбрать данную программу и открыть её. После надо выставить энкодером нужное число и нажать. После на дисплее отобразится либо надпись "Correctly", либо "Incorrectly", соответственно отгадали ли вы число, либо не отгадали число.

Как сделать повторную инициализацию дисплея?
Надо выйти из программы, зажав энкодер. Если вы уже в меню это делать не нужно! После дождаться блокировки или надписи "Hello!" и удерживать энкодер. После этих действий у вас произойдёт повторная инициализация дисплея.

#define periodLock 3000
Настройка отвечает через какое количество миллисекунд произойдёт блокировка если у вас не открыта ни какая программа.

#define timerStartup 5
Настройка отвечает сколько секунд будет показываться начальная заставка и произойдёт загрузка уже в систему.

#define distanceReadCol 15
Настройка отвечает сколько будет сделано измерений за раз с датчика расстояния в программе "Distance"

Теперь ответим на вопрос, почему мы отказались от OLED дисплея толком не сделав для него готового ядра поддержки?
Ответ простой:
Нам просто не хватило памяти для работы с ним! Использовать Arduino Mega мы не хотели в пользу доступности и количество повторения. И за данной проблемы пришлось отказаться от OLED дисплей в пользу LCD1602 дисплей.

Новость:
Скоро появится ядро для поддержки экрана LCD2004 с подключением по I2C