GyverOLED. Вопросы по библиотеке

AndrySmart

✩✩✩✩✩✩✩
12 Дек 2018
38
2
Киев
нашел эту библиотеку в одном из проектов.
к сожалению описания нет а в примерах тоже нет нужной функции.

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

Старик Похабыч

★★★★★★★
14 Авг 2019
4,159
1,267
Москва
Я не пробовал, я встречал 2 вида записей в разных библиотеках, оба тут присутствуют, горизонтальный и вертикальный. OLED-I2С использует вертикальное отображение, а UTFT горизонтальное. Так что мне помогло. У Гайвера основа как у OLED-I2 и получить картинки букв из встроенного шрифта получается
 

AndrySmart

✩✩✩✩✩✩✩
12 Дек 2018
38
2
Киев
да похоже получается но почему то сьедает несколько последних байт.

картинка 12x15 обычно на выходе 30 байт а тут 24. и она не дорисовывается
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,159
1,267
Москва
12 ширина, выводить по вертикали по 15 точек. 15 это 2 байта. 2*12 будет 24 байта. все сходится, я математику еще помню, почти все цифры :D
Размерность не забыл указать верно ?
 
  • Лойс +1
Реакции: AndrySmart

AndrySmart

✩✩✩✩✩✩✩
12 Дек 2018
38
2
Киев
@Старик Похабыч, похоже конвертирует правильно но в моем случае не выводит два последних байта. какая то проблема с библиотеком.
может сырая еще и Алекс ее не добавляет на сайт.
 

AndrySmart

✩✩✩✩✩✩✩
12 Дек 2018
38
2
Киев
выводит все, кроме двух последних.

другой размер попрообую вечером. а то на работе некогда.
 

AndrySmart

✩✩✩✩✩✩✩
12 Дек 2018
38
2
Киев
оставил размер как и было но в выводе указал
oled.drawBitmap(2,25, pict1, 12,16)
хотя картинка реально 12 х 15
и о чудо выводит ее полностью
 

AndrySmart

✩✩✩✩✩✩✩
12 Дек 2018
38
2
Киев
радостная новость. Алекс выложил библиотеку и программу для конвертации.

мне понравилось все удобно .посмотрел пример подключения кастомного шрифта но не понял как переключаться на лету между кастомным и стандартным 5на8.

библиотека ледит на джитхабе бета версия.
 

AndrySmart

✩✩✩✩✩✩✩
12 Дек 2018
38
2
Киев
АУУУУУ помогитееее.
не работает в библиотеке выбор кастомного шрифта. работает только первый из примера.

есл кто разобрался то плииииз поделитесь примером мспользования двух кастомных шрифтов .
 

AndrySmart

✩✩✩✩✩✩✩
12 Дек 2018
38
2
Киев
Так никто не смог помочь. разобрался сам. все оказалось очень просто. надо было просто обновить среду ардуино.


теперь может кто подскажет как самому шрифты сделать. точнее какой программой?
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,159
1,267
Москва
Отображения корректного не было. Как будто мимо нужного участка памяти писало. А.. тьфу! я темпы попутал ) тут все работало с 1306
 

AndrySmart

✩✩✩✩✩✩✩
12 Дек 2018
38
2
Киев
Помогите !!!
кто может разобраться? я уже с ума схожу.

подключил кастомные шрифты две штуки и пробую на лету их переключать. но вот беда. если просто оператор print использую то все нормально но только println и опа не работает как надо

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

из демо но с println:
#define OLED_SOFT_BUFFER_32 // использовать буфер на стороне микроконтроллера
#define OLED_EXTFONTS  // указываем, что используются расширенные шрифты
#include <GyverOLED.h>
GyverOLED oled;
extern uint8_t ExtFont8x12[]; // подключаем шрифт
extern uint8_t ExtFont8x14[];   
/*
  на выбор:
  ExtFont8x12   
  ExtFont8x13   
  ExtFont8x13OnlyRus
  ExtFont8x14   
  ExtFont8x14B   
*/

void setup() {
  oled.init(OLED128x32);
  oled.clear();
  oled.home();
  // устанавливаем шрифт в качестве текущего
  // можно подключить (выше где extern) несколько и переключаться между ними
  oled.setFont(ExtFont8x12);
  oled.println("Миру мир!");
  oled.setFont(ExtFont8x14);
  oled.println("Миру мир!");
  oled.update();
}
void loop() {
}
 

AndrySmart

✩✩✩✩✩✩✩
12 Дек 2018
38
2
Киев
похоже при использовании кастомного шрифта установка курсора не учитывает высоту шрифта. если указывать попиксельно то работает.
Сейчас задумался, может автором так и задумано.

ладно думаю и так справлюсь но вопрос "Какой программой возможно делать шрифты кастомные, точнее конвертить их в формат текста?" до сих пор актуальный и открытый
 

SashaPetrov

✩✩✩✩✩✩✩
22 Май 2019
54
5
Выводит белиберду.
А если использовать microWire то даже не компилируется.
 

Kelll31

★✩✩✩✩✩✩
29 Дек 2018
25
24
Где то
Лови код под дисплей подключённый по SPI

C++:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

//Если тебе надо подключить по i2c просто замени код ниже
//Этот
#define OLED_MOSI   9 //SDA
#define OLED_CLK   10 // SCK
#define OLED_DC    11
#define OLED_CS    12
#define OLED_RESET 13
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

//на вот этот

/*
#define OLED_RESET     4 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(&Wire, OLED_RESET);
*/

void setup() {
  display.begin(SSD1306_SWITCHCAPVCC);
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.clearDisplay();
  display.setCursor(10, 10);
  display.println("kek");
  display.setCursor(10, 25);
  display.println("lol...");
  display.display();
  delay(2000);
}

void loop() {
  display.clearDisplay();
  display.setCursor(10, 10);
  display.println("Hello");
  display.setCursor(10, 25);
  display.println("World!");
  display.display();
}

[ /CODE]
 
Изменено:

Старик Похабыч

★★★★★★★
14 Авг 2019
4,159
1,267
Москва
Конфликт ? не правильное подключение ?
Запусти сканер i2c и посмотри сколько устройств он найдет. Запусти отдельно для дисплея , отдельно для гироскопа, и для совместного их подключения
 
  • Лойс +1
Реакции: Kelll31