Получение координат с сенсорной панели по I2C
Привет, мир (это мое первое сообщение на этом форуме).
Я совсем недавно женился на Arduino, я очень увлечен этой платформой, которую я давно люблю, но никогда не было времени посвятить ей.
Теперь я сделал несколько домашних проектов, которые заставили меня чувствовать себя счастливым и оооочень новичком... Но эй, здесь я пробую все более и более сложные вещи.
Я пытаюсь сделать то, о чем не нашел информации: у меня есть 10-дюймовая сенсорная панель (я не говорю об экране, просто сенсорная поверхность), которая представляет собой емкостную 10-контактную панель, которая взаимодействует с протоколом I2C. (есть контакты SCL и SDK). Мне удалось отсканировать адрес и оказалось, что он находится в #40.
Однако кроме этого у меня нет знаний, чтобы получить координаты из этой панели. Мой вопрос: есть ли какая-нибудь библиотека, которая может помочь мне с этим, или мне нужно будет все кодировать?
Я прилагаю несколько изображений панели и распиновки, чтобы иметь более четкое представление о том, о чем я говорю.
Я благодарю всех вас за то, что уделили время чтению моего поста. Надеюсь, когда-нибудь я смогу дать ответы, а не задавать вопросы!
Джоан.
@Joan Porquer, 👍0
Обсуждение1 ответ
Лучший ответ:
Существует простая библиотека, которая работает с панелью дисплея FT5xx6.
Другая доступная информация:
Узел приложения — https://cdn-shop.adafruit.com/datasheets/FT6x06_AN_public_ver0.1.3. pdf
Технические данные — https://www.newhavendisplay.com/appnotes/datasheets/touchpanel/FT5x26.pdf
В случае, если эти ссылки могут быть недоступны в будущем, быстрый поиск по FocalTech FT5xx6 должен дать вам соответствующую информацию.
Привет! Большое вам спасибо за вашу помощь! Я начал с библиотеки и столкнулся с проблемой при попытке скомпилировать. Боюсь, я очень новичок, если не знаю, в чем проблема, но ошибка в этой строке: FT5xx6 cmt = FT5xx6(CTP_INT);, @Joan Porquer
Кажется, вы пытаетесь создать экземпляр класса FT5xx6, строка FT5xx6 cmt = FT500x(CTP_INT);
просто неверна. Если вы хотите создать экземпляр с именем cmd
, он должен быть FT5xx6 cmd(CTP_INT);
., @hcheung
Привет, еще раз спасибо за ваш комментарий. Я попробовал ваше предложение, и оно показывает ту же самую ошибку. Может в библиотеках что-то не так? Пришлось самому делать файл библиотеки, скопировав текст из репозитория Github, может я что-то не так сделал..., @Joan Porquer
Ах, я только что понял, что github не структурирован как правильная библиотека Arduino, которую вы могли бы скачать и использовать. Вам нужно сделать это вручную. 1) Перейдите в каталог Libraries, где находится ваша Arduino IDE, создайте каталог с именем FT5xx6; 2) скопируйте FT5006.cpp с гитхаба и сохраните его внутри только что созданного каталога, сделайте то же самое для FT5xx6.h; 3) создайте новый проект из Arduino IDE и скопируйте код примера из capacitive_7in_panel.ino на github. Теперь это должно работать. Я только что попробовал (только компиляция, не запускал, так как у меня нет модуля FT5xx6). Удачи., @hcheung
Привет еще раз. Я считаю, что это то, что я сделал, однако я не мог скопировать файл, но скопировал текст и сгенерировал обычный текстовый файл, поскольку его нельзя загрузить. Я сделал это с компьютера MAC, я попробую сделать это с ПК ... Это как вы это сделали? Или должен быть способ скачать файлы?, @Joan Porquer
Яху! Оно работает. MAC или что-то по какой-то причине приводило к тому, что эти файлы работали неправильно. Я сделал весь процесс на ПК и получается, что я получаю данные. Теперь самое сложное будет понять это. Я хотел бы, чтобы он просто давал мне набор координат одного касания, похоже, этот скрипт предоставляет гораздо больше информации, чем это. Меня интересует только одноточечное касание, теперь мне нужно понять все данные в последовательном мониторе и выяснить, что мне подходит. Я опубликую изображение того, что я получаю. Спасибо за вашу помощь! Это очень ценится., @Joan Porquer
Привет, hcheung, я боролся с кодом и панелью, но что-то не так... монитор показывает странные данные, например, я касаюсь 15 точек или даже касаюсь одного и того же места, каждый раз выдает разные данные. Пока не похоже что-то "насыщает" и не начинает давать координаты 4095х 4095у. Я действительно потерялся сейчас. У вас есть идеи, почему это происходит? Я думаю, что я начну новую тему с точной проблемой. Спасибо за вашу помощь!, @Joan Porquer
- Как разделить входящую строку?
- Как использовать SPI на Arduino?
- Как сбросить или отформатировать Arduino?
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Arduino Due vs Mega 2560
- Как получить уникальный идентификатор для всех плат Arduino?
- Почему я получаю avrdude: stk500v2_ReceiveMessage(): timeout error when uploading to Arduino Mega?
- Тайм-аут связи Arduino Mega с ошибкой программатора
Вы гуглили для таблицы данных этого чипа?, @chrisl
Где ты взял эту панель? Разве они не предоставляют никакой идентификации или информации? Даташит нужен, чтобы что-то делать с панелью (по крайней мере, когда с ней нельзя нюхать работающую связь, когда она подключена к работающему мастер-устройству), @chrisl
Привет Крис, спасибо за ваш комментарий. Я погуглил и не нашел ничего действительно интересного. Пользователь hcheung нашел интересную библиотеку, но я попал в беду с частью кода, с которой не могу разобраться (см. ниже). Панель попала ко мне от кого-то, кто купил ее на ebay, так что не очень легко получить источник... Хотя я нашел производителя чипа: FocalTech, @Joan Porquer