Подарочный сертификат RobotClass — Симплекс маяк

Что можно подарить дорогому человеку, увлекающемуся электроникой на день рождения или Новый год? И чтоб не просто игрушку, а что-нибудь интересное и развивающее. Обычно в голову приходят различные наборы и конструкторы, которых у RobotClass тоже хватает (набор продвинутый, робот-манипулятор, виброид, электрофонарь и пр.). Но все эти наборы обычно рассчитаны на новичков, а как быть с продвинутым энтузиастом хайтек-DIY?

Специально для любителей роботов и электроники мы разработали особый подарочный сертификат. И это не просто бесполезная карточка — это целое устройство, которое будет радовать глаз и после использования сертификата!

Печатная плата

Во-первых, подарочный сертификат RobotClass — это настоящая печатная плата, которая выглядит здорово сама по себе. Существует четыре номинала сертификата, каждый из которых имеет свой цвет. Вот так выглядят 3 номинала на 1024, 2048 и 4096 рублей. А есть ещё номинал 8192 рубля, он имеет чёрный цвет.

Подарочный сертификат

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

Плата имеет размер обычной банковской карты и толщину 1,6 мм. К каждому сертификату прилагается уникальный код, с помощью которого сертификат активируется в нашем интернет-магазине.

Cимплекс маяк

Во-вторых, на плате сертификата версии 2.0 можно собрать любопытное устройство — Симплекс маяк. Этот маяк представляет собой светодиодную матрицу с разрешением 5×5, которая управляется микроконтроллером CH552G. С помощью популярной среды разработки Arduino IDE можно использовать эту матрицу для разных целей, например:

  • изобразить какой-нибудь статичный символ или демосцену; использовать маяк в качестве кулона на кибервечеринке;
  • запрограммировать игру Змейка или Тетрис; играть в неё при помощи дополнительных кнопок;
  • использовать маяк как учебный стенд для изучения основ программирования.

Сборка

Симплекс маяк состоит исключительно из SMD деталей, так что для их пайки необходимо иметь хотя бы начальный уровень навыка в этой области. Особую сложность может вызвать монтаж микросхем. Потренироваться паять SMD детали лучше на более простых наборах, например, на наборе Гексалайт.

Для сборки устройства понадобится паяльник, немного припоя и флюс, жидкий или гелевый. Если чего-то не хватает, это можно легко приобрести это у нас в магазине RobotClass:

В корзину
В корзину
В корзину
В корзину
В корзину

Что такое SMD?

В переводе с английского, SMD — это surface mounted device, то есть «устройство, монтируемое на поверхность». В отличие от технологий недавнего прошлого, SMD элементы занимают гораздо меньше места. SMD позволяет нам сделать устройство очень компактным. Достаточно посмотреть на материнскую плату любого смартфона, чтобы понять о чем идет речь.

SMD бывают разных размеров. Элементы прямоугольной формы такие как светодиоды или резисторы измеряются по длинам сторон. Например, на популярной плате Arduino Uno установлены светодиоды 0805. В переводе с дюймовой системы в метрическую это соответствует размеру 2 x 1,25 мм. А большинство керамических конденсаторов на той же плате имеют уже размер 0603 = 1,6 x 0,8 мм.

В данном наборе мы будем учиться работать с достаточно крупными элементами типоразмера 1206.

Монтажная схема

Для сборки Симплекс маяка понадобится монтажная схема, на которой все посадочные места отмечены специальным метками и надписями. По факту, вся схема уже нанесена на обратную сторону сертификата, там, куда устанавливаются детали устройства.

Сертификат RobotClass. Симплекс маяк

Примечание для версии 2.0.1: резистор R5 находится над микросхемой U3.

Припаиваем элементы согласно монтажной схеме и таблице элементов.

КомпонентМаркерКоличество
Резистор 1 кОмR6,R7,R8,R9,R105
Резистор 10 кОмR1,R2,R3,R114
Конденсатор керамический 0,1 мкФC2,C3,C4,C5,C65
Держатель CR2032B11
Тактовая кнопкаSW2,SW3,SW4,SW5,SW65
ПереключательSW11
СветодиодLED1-LED2525
Микроконтроллер CH552GU11
Микросхема 74HC595U2,U32

Полезные советы и справка:

  • катод на посадочном месте светодиода на плате обозначен полоской; катод у самого светодиода обозначается небольшой зеленой меткой; таким образом, все светодиоды должны смотреть зеленой меткой в сторону полоски;
  • у резисторов и керамических конденсаторов нет полярности, можно припаивать их какой угодно стороной;
  • чтобы правильно припаять микросхему, следует разместить её так, чтобы метка на ней совпала с меткой на её посадочном месте; обычно метка — это небольшой кружочек на верхней поверхности корпуса или выемка на одной стороне микросхемы.

Программирование

Как уже говорилось, программировать маяк будем в среде Arduino IDE. Для начала, следует разобраться с тем, как настроить среду для работы с микроконтроллером CH552G. Об этом у нас есть отдельная инструкция — программирование CH552G.

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

Первые 5 бит первого регистра отвечают за аноды матрицы, первые же 5 бит второго регистра — за катоды. Полную схему маяка можно найти в конце инструкции.

Итак, что куда подключено:

Arduino IDEСимплекс маяк
32Data — регистр: данные
14Latch — регистр: защёлка
15Clock — регистр: синхроимпульс
16Reset — регистр: сброс
34ШИМ сигнал для управления яркостью матрицы
17SW2 — кнопка
31SW3 — кнопка
30SW4 — кнопка

Первая программа будет мигать верхним левым светодиодом.

#define R_DATA 32
#define R_LATCH 14
#define R_CLOCK 15
#define R_RESET 16
#define R_PWM 34

// настраиваем контакты регистров
void initReg(){
    pinMode( R_DATA, OUTPUT );
    pinMode( R_LATCH, OUTPUT );
    pinMode( R_CLOCK, OUTPUT );
    pinMode( R_RESET, OUTPUT );
    pinMode( R_PWM, OUTPUT );

    digitalWrite( R_RESET, HIGH );
    digitalWrite( R_PWM, LOW );
}

// открываем защёлку и передаем данные регистров на его выход
void latch(){
    digitalWrite(R_LATCH, HIGH); 
    digitalWrite(R_LATCH, LOW);
}

// записываем восемь бит в регистры
void setByte( byte b ){
    for(int i=0; i<8; i++){
        digitalWrite(R_CLOCK, LOW);
        digitalWrite(R_DATA, b & (1 << i ));
        digitalWrite(R_CLOCK, HIGH);
    }
}

// очистка матрицы
void clear(){
    setByte( 0x00 );
    setByte( 0xFF );
    latch();
}

// вывод точки с координатами x, y
void setPoint(byte x, byte y){
    setByte( 1<<(7-x) );
    setByte( ~(1<<(7-y)) );
    latch();
}

void setup() {
    initReg();
}

void loop() {
    setPoint( 0, 0 );
    delay(500);
    clear();
    delay(500);
}

В этом примере описаны три полезные функции для работы с регистрами: initReg, setByte и latch. А также две функции для работы с графикой: clear и setPoint. Эти функции пригодятся и в других программах для маяка.

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

Загружаем программу на устройство и проверяем результат. Левый верхний светодиод должен мигать раз в секунду.

В следующей программе по матрице будет пробегаться сначала горизонтальная линия, потом вертикальная. Своего рода сканер.

#define R_DATA 32
#define R_LATCH 14
#define R_CLOCK 15
#define R_RESET 16
#define R_PWM 34

void initReg(){
    pinMode( R_DATA, OUTPUT );
    pinMode( R_LATCH, OUTPUT );
    pinMode( R_CLOCK, OUTPUT );
    pinMode( R_RESET, OUTPUT );
    pinMode( R_PWM, OUTPUT );

    digitalWrite( R_RESET, HIGH );
    digitalWrite( R_PWM, LOW );
}

void latch(){
    digitalWrite(R_LATCH, HIGH); 
    digitalWrite(R_LATCH, LOW);
}

void setByte( byte b ){
    for(int i=0; i<8; i++){
        digitalWrite(R_CLOCK, LOW);
        digitalWrite(R_DATA, b & (1 << i ));
        digitalWrite(R_CLOCK, HIGH);
    }
}

void setXLine(byte y){
    setByte( 0xFF ); // включаем все аноды
    setByte( ~(1<<(7-y)) ); // включаем катод y
    latch();
}

void setYLine(byte x){
    setByte( 1<<(7-x) ); // включаем анод x
    setByte( 0x0 ); // включаем все катоды
    latch();
}

void setup() {
    initReg();
}

void loop() {
    for( byte y=0; y<5; y++ ){
        setXLine(y);
        delay(100);
    }
    for( byte x=0; x<5; x++ ){
        setYLine(x);
        delay(100);
    }
}

Здесь мы описали две дополнительные функции setXLine и setYLine, которые как раз и реализуют вывод линии на матрицу. Загружаем программу на устройство и проверяем результат.

Напишем третью программу, которая будет отображать на матрице статичный рисунок — глиф. Чтобы это сделать, придётся реализовать динамическую индикацию.

#define R_DATA 32
#define R_LATCH 14
#define R_CLOCK 15
#define R_RESET 16
#define R_PWM 34

byte glyph[25] = {
    0,1,1,1,0,
    1,0,1,0,1,
    1,1,0,1,1,
    0,1,1,1,0,
    0,1,1,1,0
};

void initReg(){
    pinMode( R_DATA, OUTPUT );
    pinMode( R_LATCH, OUTPUT );
    pinMode( R_CLOCK, OUTPUT );
    pinMode( R_RESET, OUTPUT );
    pinMode( R_PWM, OUTPUT );

    digitalWrite( R_RESET, HIGH );
    digitalWrite( R_PWM, LOW );
}

void latch(){
    digitalWrite(R_LATCH, HIGH); 
    digitalWrite(R_LATCH, LOW);
}

void setByte( byte b ){
    for(int i=0; i<8; i++){
        digitalWrite(R_CLOCK, LOW);
        digitalWrite(R_DATA, b & (1 << i ));
        digitalWrite(R_CLOCK, HIGH);
    }
}

void setup() {
    initReg();
}

void loop() {
    for(byte y=0; y<5; y++){
        byte row = 0;
        for(byte x=0; x<5; x++){
            if( glyph[y*5+x] == 1 ){
                row |= 1<<(7-x);
            }
        }
        setByte( row );
        setByte( ~(1<<(7-y)) );
        latch();
    }
}

Готово! Загружаем программу на маяк и наблюдаем на матрице черепок.

Использование сертификата

Для активации подарочного сертификата следует:

  1. Зарегистрироваться на сайте магазина shop.robotclass.ru
  2. Зайти в личный кабинет с помощью ссылки «Мой профиль»
  3. Перейти в раздел «Баллы и сертификаты»
  4. В поле «применить сертификат» ввести уникальный код сертификата и нажать кнопку «применить»
Применение подарочного сертификата

5. после активации сертификата вам будут начислены баллы магазина, эквивалентные сумме сертификата! Например, после активации сертификата на 2048 рублей в личном кабинете появится 20480 баллов.

Принципиальная схема


Изменено:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.