(098) 067-12-26 Киевстар (098) 067-12-26   Киевстар
(066) 142-24-48 Vodafone (066) 142-24-48   Vodafone
(098) 067-12-26 Lifecell (063) 642-36-59   Lifecell

График работы магазина:

Пн-Пт: 10.00 - 19.00

Сб-Вс: выходные

г. Киев, ул. Васильковская, 30
ст.м. "Васильковская"

Каталог

Школа робототехники intRobots

Академия профессий будущего

Академия Профессий Будущего в Киеве создана как школа дополнительного образования в сфере высоких технологий для нестандартно мыслящих и мотивированных детей. По окончании Академии полученные знания помогут ребятам в выборе специальности. Ученики школы

Обзор pi-TOP - ноутбук на базе Raspberry

Недавно мне в руки попался эдакий конструктор - ноутбук на базе Raspberry - pi-TOP, который нужно собрать своими самому. Обзор процесса сборки и того, что получилось можно прочитать в этой статье.

Школа РОБОТОТЕХНИКИ intRobots

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

Измерение силы тока датчиком SCT-013-030

Давно хотел приобрести датчик тока SCT-013 и сделать небольшой контрольный прибор в своем домашнем электрощитке. Больших токов у меня не бывает, больше 30А точно нет, посему выбор пал на SCT-013-030, с максимальным током измерения 30А.

Блочное шифрование в IoT

Исторически сложилось, что для IoT (Internet of Things) на базе ZigBee сетей в первую очередь стояла цель минимизировать энергопотребление, потому вопрос безопасности остался без внимания. В данной статье предлагается пример безопасной IoT системы с
Напиши статью и получи скидку!

Портативный анализатор спектра на Pololu Wixel c OLED SPI дисплеем

2016-07-05

Все статьи →

Vladimir Sokolov

В предыдущей статье рассматривался вариант анализатора спектра ISM диапазона (ссылка на https://arduino-ua.com/art44-analizator-spektra-2-4-ggc-na-pololu-wixel). Для сбора данных использовался модуль Pololu Wixel, но собирались данные в операционной системе ведущего устройства. Для визуализации данных можно использовать OLED дисплеи малого размера. В данной случае выбраны дисплеи 128 на 64 писк. Но такой размер вдвое меньше максимального количества точек, получаемого от устройства. Потому производится усреднение по двум соседним точкам.

Подсоедините экраны, как показано на рисунке.

 

 

Для корректной работы дисплея установите библиотеку adafruit (ссылка на https://github.com/adafruit/Adafruit_Python_SSD1306) и добавьте обработчик (полностью код на Python см. в файле spectrum_spi_i2c.py):

 

result = re.findall(r'-\d{2,3}',response)

j = 0

result_odd = []

for rssi in result:

    result[j] = 105 + int(rssi)

    if result[j] > 64:

        result[j] = 64

    if j % 2 == 1:

        result_odd.insert(j // 2, (result[j] + result[j-1]) // 2)

    j += 1

width = dispSPI.width

height = dispSPI.height

image = Image.new('1', (width, height))

draw = ImageDraw.Draw(image)

draw.rectangle((0,0,width,height), outline=0, fill=0)

padding = 0

top = padding

bottom = height - padding

x = 1

while x < 128:

    draw.line((x, top, x, result_odd[x]), fill=255)

    x += 1

dispI2C.image(image)

dispSPI.image(image)

dispI2C.display()

dispSPI.display()

 

В результате на обоих экранах будет отображаться один и тот же спектр (в данном случае спектр отображается задом на перед).

 

 

Но для отображения спектра на экране не обязательно использовать RPi, так как Wixel имеет на борту два UART (ссылка на https://pololu.github.io/wixel-sdk/spi0__master_8h.html#a2be23377a8be742444a8fd2b9644b9e5), которые успешно работают с SPI устройствами (ограничение лишь по максимальной частоте в 3 МГц). [Также реализован программный I2C интерфейс, потому потенциально можно подключить и I2C дисплей.]

 

В прошивке сначала инициализируется аппаратный порт (частота, параметров синхроимпульса, порядка бит), затем дисплей и после этого модуль анализатора спектра (полный исходный код на C прошивки см. во вложении). Вывод данных на экран:

 

checkRadioChannels();

j = 0;

for(block=0; block<8; block++)

{

                for(channel=128; channel>0; --channel)

                {

                               if (rssiHalfValue[channel] > 8) {

                                               txData[j] = 0xFF;

                                               rssiHalfValue[channel] -= 8;

                                               j++;

                               }

                               else

                               {

                                               txData[j] = power(2,(rssiHalfValue[channel])) - 1;

                                               rssiHalfValue[channel] = 0;

                                               j++;

                               }

                }

}

 

DChigh;

CSlow;

LED_YELLOW(1);

spi0MasterTransfer(txData,rxData,1024);

delayMs(15);

CShigh;

DClow;

 

Схема подключения SPI дисплея к модулю Wixel показана на рисунке. Устройство может быть запитано от внешнего источника или от аккумуляторной батареи с напряжением от 2,7 до 6,5 В (ссылка на https://www.pololu.com/docs/0J46/all#5.a), но в данному случае опускать напряжение ниже 3,6 В не рекомендуется, так как экран начинает работать нестабильно. Использован четырех жильный тип подключения (4-wire), хотя реально используется пять жил (также сброс RES), для которого отдельно программируется выход, так как выход с напряжением 3,3 В лишь один. Также используется дополнительная кнопка паузы, при нажатии которой процесс измерений останавливается, а на экране отображается последнее измерение. Дополнительно используется светодиодная индикация (зеленый, оранжевый и красный).

 

 

Отображение на экран реализовано напрямую, без использования дополнительных графических библиотек. С методами адресации и прочими настройками можно подробно ознакомиться в официальном даташите (ссылка на https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf). На рисунках показан вид спереди и сзади установки на макетной плате (прибор слева — анализатор логики).

 

 

 

 

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

 

 

 

 

Ваша оценка статьи:

Отлично
Хорошо
Удовлетворительно
Плохо
Очень плохо

Благодарим Вас за обращение! Ваш отзыв появится после модерации администратором.
Пока нет отзывов на эту статью.
оплата картами Visa и MasterCard