Помогите новичку

Kim
Offline
Зарегистрирован: 28.08.2020

Всем привет. Не так давно я решил заняться программированием на ардуино с целью реализовать один проект. Проблема в том, что не хватает памяти на прошивку, нужно управлять большой (от 650 до 1400 диодов) адресной матрицей. Проект планирую делать на arduino Uno. В интернете нашел только как создавать и читать файлы с sd, но ни слова о прошивке. Как сделать так, чтобы ардуино запустила программу с SD/micro SD карты? Я думал разбить программу на программы поменьше, т.е. верх "пирамиды" - это программа которая приветствует пользователя и открывает "программу-меню", из "программы-меню" доступно еще несколько программ-режимов, при закрытии которых снова открывается основная, а если закрыть основную, устройство выключится, при включении начав круг заново. Насколько эффективен такой подход?

P.S. вопрос может показаться максимально тупым, но это первы

rkit
Offline
Зарегистрирован: 23.11.2016

Не получится. Купи плату с больше памяти.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Kim пишет:

Не так давно я решил заняться программированием на ардуино

и прям сразу

Kim пишет:

нужно управлять большой (от 650 до 1400 диодов) адресной матрицей. 

Может, на чём попроще поучиться?

Kim пишет:

Проект планирую делать на arduino Uno. 

Из каких соображений сделан такой выбор? Вроде ж Вам памяти не хватает, так почему не взять Arduino Mega - у ней памяти в разы больше.

Kim пишет:

Как сделать так, чтобы ардуино запустила программу с SD/micro SD карты? 

Если Вы не хотите писать интерпретатор и запускать программу на интерпретируемом языке, то никак. Совсем никак-никак.

Kim пишет:

Насколько эффективен такой подход?

Без интерпретации он невозможен, а с интерпретацией - крайне неэффективен.

Kim пишет:

вопрос может показаться максимально тупым

Не без этого.

Kim
Offline
Зарегистрирован: 28.08.2020

[quote=ЕвгенийП]

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

Kim
Offline
Зарегистрирован: 28.08.2020

может тогда взять не ардуино а что-нибудь другое? 

b707
Offline
Зарегистрирован: 26.05.2017

Kim пишет:

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

Давайте посчитаем: на работу с адресными диодами нужно 3 байта на каждый LED, соответвенно на 650 диодов нужно 2Кб памяти, а на 1400 - 4.2К

На работу с Sd карточкой потребуется еще примерно 1 К

Ну и на все остальное по вашей задумке - всякие там меню и приветсвия - еще пусть 1К

Итого требуется от 4 до 6.2 Кб ОЗУ

у Ардуино Уно этой памяти всего 2К. Выводы сами сделаете или вам пояснить? :)

b707
Offline
Зарегистрирован: 26.05.2017

Kim пишет:

может тогда взять не ардуино а что-нибудь другое? 

возьмите СТМ32.

А скажите мне как художник художнику, вы рисовать... то бишь программировать умеете?

Kim
Offline
Зарегистрирован: 28.08.2020

Я говорил про запуск программы с карты памяти

Kim
Offline
Зарегистрирован: 28.08.2020

b707 пишет:

Kim пишет:

может тогда взять не ардуино а что-нибудь другое? 

возьмите СТМ32.

А скажите мне как художник художнику, вы рисовать... то бишь программировать умеете?

знаю C на среднем уровне

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Kim пишет:

Я говорил про запуск программы с карты памяти

Тебе сразу же два человека ответили - это невозможно (посты #1 и #2). У тебя ещё остались вопросы?

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

b707 пишет:
программировать умеете?
А ты что, стартовый пост не читал? Или что-то непонятым осталось?

b707
Offline
Зарегистрирован: 26.05.2017

Kim пишет:

Я говорил про запуск программы с карты памяти

все ясно, про программирование уже можете не отвечать :)

Пояснение для новичка:

- запуск программ с карты памяти в ардуино стандартным образом не поддерживается. Для простоты можете считать что это невозможно.

- подключение карты памяти не увеличивает оперативную память...

b707
Offline
Зарегистрирован: 26.05.2017

Kim пишет:

знаю C на среднем уровне

очень среднем? :) судя по вопросам

b707
Offline
Зарегистрирован: 26.05.2017

Ворота пишет:

b707 пишет:
программировать умеете?
А ты что, стартовый пост не читал?

не, не читал

Kim
Offline
Зарегистрирован: 28.08.2020

b707 пишет:

Kim пишет:

Я говорил про запуск программы с карты памяти

все ясно, про программирование уже можете не отвечать :)

Пояснение для новичка:

- запуск программ с карты памяти в ардуино стандартным образом не поддерживается. Для простоты можете считать что это невозможно.

- подключение карты памяти не увеличивает оперативную память...

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

 

Kim
Offline
Зарегистрирован: 28.08.2020

b707 пишет:

Kim пишет:

знаю C на среднем уровне

очень среднем? :) судя по вопросам

это первый опыт в электронике в целом, опыт в программировании был с игровыми движками

 

b707
Offline
Зарегистрирован: 26.05.2017

Kim пишет:

при открытии одной программы подразумевалось закрытие другой

Даже если бы это (оверлей с СД) было бы возможно - оно бы вам не помогло. У Уно не хватит памяти даже на одно только управление вашей матрицей...

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Kim пишет:

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

Вот тут и памяти достаточно и кард ридер уже есть и меньше уно - https://www.adafruit.com/product/2885

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Kim пишет:

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

https://aliexpress.ru/item/32802310906.html

По размерам сопоставимо с arduino uno

Logik
Offline
Зарегистрирован: 05.08.2014

Вообще на счет расхода ОЗУ - не все так однозначно и зависит от того, что нужно выводить на светодиоды. Ежели все в один цвет - и пару байт хватит, если рисунок повторяющийся - см. размер повторяющегося фрагмента. Для буквоцифр тоже реально влезть. И т.д.

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

ТС, прочитай пока за "гарвардскую архитектуру" микроконтроллеров.  Потом расскажешь, сможешь ли ты со своим "средним Си", осилить оверлеи.