Светодиодная змейка

Обсуждаем контроллеры компании Atmel.
Ответить
DONit
Родился
Сообщения: 2
Зарегистрирован: Ср июл 18, 2018 20:20:49

Светодиодная змейка

Сообщение DONit »

Доброго времени суток! Требуется помощь в реализации змейки, не знаю в каком направлении двигаться. Есть матрица из светодиодов 4х8 нужно чтоб по её периметру зажигались светодиоды. Как бы бегающая змейка по периметру. Надеюсь на помощь! :roll: :?
Вложения
8R6Haw2FkUc.jpg
(66.35 КБ) 592 скачивания
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Светодиодная змейка

Сообщение Аlex »

Какой конкретно помощи ожидаете от форумчан ?
Реклама
Demiurg
Это не хвост, это антенна
Сообщения: 1480
Зарегистрирован: Ср июн 25, 2008 15:19:44
Контактная информация:

Re: Светодиодная змейка

Сообщение Demiurg »

В лоб: составляете таблицу из "кадров" и по таймеру выводите.
Не в лоб: конечный автомат, массив состояния всех светодиодов, задаёте начальное состояние, сдвиг, пока не дойдёт, задаёте следующее состояние, опять сдвиг.
На каком языке пишете программы?
DONit
Родился
Сообщения: 2
Зарегистрирован: Ср июл 18, 2018 20:20:49

Re: Светодиодная змейка

Сообщение DONit »

Пишу на AVR Си. Немножко не понял про конечный автомат. Вот допустим пошла змейка по первому порту 0х00000111, 0х000001110, 0х00011100 ... 0х11100000 вот она дошла до низу дальше должна по сути повернуть вправо, как видно по таблице требуется задействовать сразу несколько портов а не один. В дальнейшем нужно будет ещё кнопки приделать , одна кнопка ускоряет другая замедляет третья меняет направление.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18637
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Светодиодная змейка

Сообщение ARV »

абстрагируйтесь от байтов, представьте себе ваш "экранчик", как двумерный массив точек.
напишите функцию, которая этот двумерный массив выведет на реальные порты/светодиоды (вот в ней надо будет мозговать с битами и портами).
также создайте функцию, которая рисует точку в этом массиве (в ней тоже придется с битами и байтами мудрить, для 32 точек можно и без битов, только байтами обойтись).
а потом работайте только с массивом при помощи этой функции: нарисовали в массиве змейку по точкам в массиве - вызвали функцию вывода - проанализировали кнопки - рассчитали новое положение змейки - нарисовали змейку по точкам в массиве... и так все время

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

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Светодиодная змейка

Сообщение VladislavS »

Делаете класс ТОЧКА с координатами X,Y и методом Зажечь/Потушить.

Делаете связный список из объектов класса ТОЧКА.

При добавлении элемента в список вызываете метод Зажечь.

Движение заключается в том, что последний элемент списка переносится из хвоста в голову. При этом сначала вызывается метод потушить, а потом задаются новые координаты и метод Зажечь. Новые координаты при перемещении вычисляются из координат первого элемента списка и нажатой кнопки.

Всё :)
Реклама
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Светодиодная змейка

Сообщение Reflector »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3422144#p3422144"]Делаете связный список из объектов класса ТОЧКА.[/uquote]
Зачем там связный список, достаточно кольцевого буфера, а для змейки бегающей по периметру хватит и обычного массива во флеше.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18637
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Светодиодная змейка

Сообщение ARV »

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

Мой уютный бложик... заходите!
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Светодиодная змейка

Сообщение VladislavS »

Это сегодня змейка по периметру бегает, а завтра начнутся зигзаги и изменения длины. Лучше изначально сделать "на вырост". Каждый начинающий программист просто обязан написать свой связный список с шашками и стюардессами. Что, уже и постебаться нельзя? :)
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Светодиодная змейка

Сообщение BOB51 »

Методы, классы...
Буфер матрицы точек и добавляем алгоритм перемещения.
Хоть "покадрово".
(правда то на ассемблере :wink: )
8)
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18637
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Светодиодная змейка

Сообщение ARV »

VladislavS писал(а):Каждый начинающий программист просто обязан написать свой связный список с шашками и стюардессами.
если взять какой-нибудь AVR или PIC, то со связным списком будут проблемы: там и простой массив не всякий влезает.
кстати, змейку я так и не сделал ни разу в своей жизни... тряхнуть, что ли, стариной? :tea:
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Ответить

Вернуться в «AVR»