roboforum.ru

Технический форум по робототехнике.


Первое подключение экрана и другие вопросы

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

Первое подключение экрана и другие вопросы

Сообщение Mc Doc » 01 сен 2015, 00:47

Друзья,

Для проекта мечты, начал осваивать Arduino. О проекте чуть позже. В наличии:
- Arduino UNO
- 3.95 inches TFT LCD ili9488

Для начала скачал IDE с офф сайта - https://www.arduino.cc/en/Main/Software
Библиотеки от сюда - https://forum.arduino.cc/index.php?topic=337952.0 - второе сообщение

Распаковав библиотеки и примеры поместил их в папку с библиотеками:

Изображение

Открываем, первый тест -

Изображение

Самое первое, что хочу убедиться что эран работает.
Дальше буду и дургие вопросы задавать.

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

graphicstest.ino: In function 'void loop()':
graphicstest:33: error: 'A15' was not declared in this scope
graphicstest.ino:224:42: note: in expansion of macro 'SensorPin'
Multiple libraries were found for "Adafruit_GFX.h"
Used: C:\Users\Mc Doc\Documents\Arduino\libraries\Adafruit_GFX
Not used: C:\Program Files (x86)\Arduino\libraries\Adafruit_GFX
Multiple libraries were found for "Adafruit_TFTLCD.h"
Used: C:\Users\Mc Doc\Documents\Arduino\libraries\Adafruit_TFTLCD
Not used: C:\Program Files (x86)\Arduino\libraries\Adafruit_TFTLCD
'A15' was not declared in this scope

Впервые сталкиваюсь с этим языком. Не пойму в чем дело.

Подскажите, пожалуйсто.
Mc Doc
 
Сообщения: 3
Зарегистрирован: 31 авг 2015, 20:32

Re: Первое подключение экрана и другие вопросы

Сообщение RootAdmin » 01 сен 2015, 20:56

На ардуино Уно НЕТ А15. Скетч под Мегу?
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: Первое подключение экрана и другие вопросы

Сообщение Mc Doc » 01 сен 2015, 22:42

RootAdmin писал(а):На ардуино Уно НЕТ А15. Скетч под Мегу?


Скорее всего Ваша правда.
Я впервые взял в руки и нашел примеры - вроде как подходивший.

нашел решение уже поздно ночью.
Вот тут -
http://youtu.be/9RIKzXANbOY

Подгрузил примеры, все разаботало.

Но встала другая проблема, Тачскрин "плохо" реагирует на прикосновения.
Пытаюсь провести линию (написовать) как автор делает в видео. У меня получаются точки, и в другом месте.

Что думаете, тачскрин убитый или может драйвера не совсем те?
Mc Doc
 
Сообщения: 3
Зарегистрирован: 31 авг 2015, 20:32

Re: Первое подключение экрана и другие вопросы

Сообщение RootAdmin » 02 сен 2015, 01:30

Могу предположить что требуется калибровка. Тач-то резистивный. Или, если зеркально смещены точки, подключен наоборот. Рекомендую вывести на экран значения с АЦП и проверить, нажимая в углах.
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: Первое подключение экрана и другие вопросы

Сообщение Mc Doc » 03 сен 2015, 00:33

RootAdmin писал(а):Могу предположить что требуется калибровка. Тач-то резистивный.


Сегодня пытался найти что либо (понимаю нужен скетч для калибровки) для UNO, но ничего не могу найти. Везде стандартные програмки рисовалки, которые у меня не работают (кроме примера выше (ссылка выше))

RootAdmin писал(а): Или, если зеркально смещены точки, подключен наоборот. Рекомендую вывести на экран значения с АЦП и проверить, нажимая в углах.


Вот тут еще больше "тумана"...

Есть у вас готовые примеры или ссылки, для моей UNO?

Добавлено спустя 1 час 52 минуты 49 секунд:
Мучию ардвинку.
Калибровка 100% требуется.
Так как сдела простой скетч - Hello World!

В библиотеке прописал размеры экрана

Код: Выделить всёРазвернуть
#include "pins_arduino.h"
#include "wiring_private.h"
#include "Adafruit_TFTLCD.h"
#include "pin_magic.h"

// my big screen 480 x 320

#define TFTWIDTH   320
#define TFTHEIGHT  480
//#define TFTWIDTH   240
//#define TFTHEIGHT  400


Если что, так же менял местами значения 480 и 320. Видимая часть стала чуть меньше. Если задать размер 100 на 100 пикселей, то сразу видно что часть 100 пиксельного экрана "съедена" (смещена) в лево. Как раз на две буквы

развернул экран, что бы он был в Альбомном формате

Код: Выделить всёРазвернуть
//.................... Rotate screen 1=90. 2=180. 3=270 ...............................
  tft.setRotation(3);
//.....................................................................................


Ну и конечно поставил сообщение в 0, 0

Код: Выделить всёРазвернуть
unsigned long testText() {
  tft.fillScreen(BLACK);
  unsigned long start = micros();
  tft.setCursor(0, 0);
  tft.setTextColor(GREEN); 
  tft.setTextSize(3);
  tft.println("Hello World!");

  return micros() - start;
}


как видно две буквы вне экрана.

Изображение

Как сделать калибровку???

Полный код под спойлером
Код: Выделить всёРазвернуть
#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_TFTLCD.h> // Hardware-specific library

#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0

#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin

#define   BLACK   0x0000
#define   BLUE    0x001F
#define   RED     0xF800
#define   GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF

Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
// If using the shield, all control and data lines are fixed, and
// a simpler declaration can optionally be used:
// Adafruit_TFTLCD tft;

void setup(void) {
  Serial.begin(9600);
  Serial.println(F("TFT LCD test"));

#ifdef USE_ADAFRUIT_SHIELD_PINOUT
  Serial.println(F("Using Adafruit 2.8\" TFT Arduino Shield Pinout"));
#else
  Serial.println(F("Using Adafruit 2.8\" TFT Breakout Board Pinout"));
#endif

  Serial.print("TFT size is "); Serial.print(tft.width()); Serial.print("x"); Serial.println(tft.height());

  tft.reset();

  uint16_t identifier = tft.readID();


  tft.begin(identifier);

//.................... Rotate screen 1=90. 2=180. 3=270 ...............................
  tft.setRotation(3);
//.....................................................................................
  Serial.print(F("Text"));
  Serial.println(testText());
  delay(3000);
}


void loop(void) {
}

unsigned long testText() {
  tft.fillScreen(BLACK);
  unsigned long start = micros();
  tft.setCursor(0, 0);
  tft.setTextColor(GREEN); 
  tft.setTextSize(3);
  tft.println("Hello World!");

  return micros() - start;
}
Mc Doc
 
Сообщения: 3
Зарегистрирован: 31 авг 2015, 20:32


Вернуться в Arduino и другие Xduino

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron
Mail.ru counter