Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Своими руками

Своими руками Завершенные и текущие проекты, хард & софт

Ответ
 
Опции темы Опции просмотра
Старый 14.04.2009, 22:28   #51
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,785
Вес репутации: 3611/100
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Ээээ... Выскажу тривиальные вещи.

Цитата:
Сообщение от IgorV Посмотреть сообщение
Разная площадь датчиков - разная начальная емкость. Проще уж иметь равномерную. Все равно получаем "длину струны"
на октаве разница набегает по площади датчика если делать по ладам в 2 раза.
Аналоговый ввод. Выявление точки (точек) прикосновения
к некому проводящему обьекту(супер заковыристой формы) - это
конечно здорово.
Только непрактично и нереально.
1) Присоединенная емкость зависит не только и не столько
от места и силы прикосновения а от: влажности воздуха,
температуры, типа кожи человека. Разберем по пунктам.
Влажность, понятно, меняется - калибровка
Температура - опять калибровка.
На самом деле это 2 стороны одной медали.
Тип кожи - это очень важно.
У одного моего знакомого очень толстая кожа на пальцах.
И сухая. Это какая то индивидуальная особенность.
Он может брать в руки провода под напряжением
220В, крепко их сжимать и ничего при этом не чувствует.
Я измерял ток при этом - сотни микроампер максимум.
Такая кожа - не редкость.
2) Помехи. Они непредсказуемы.
Попробуйте включить рядом с девайсом любой рекламный неон.
Будете удивлены. Там 1000В. И по мере износа катодов зажигание
смещается к максимуму. На излете жизни трубки имеем
импульсы размахом все 1000В, и не только при зажигании.
Уровень шума - неимоверный. 50Гц 1/10000 от него.
3) Всякая мелочь. Типа окисление поверхности от пота
(он очень ядовит в этом плане) Рекордные уровни статики
(защита не выдержит) и т.п.
Все эти факторы сведут на нет все хитрые подсчеты.

Лично я считаю, что этот принцип вытягивает только
информацию нажато/нет и не более.
И на грани возможностей.
Сенсоры хороши для кнопок ЖКИ монитора.
Там их немного, можно влепить свой контроллер,
добавляет некую "прикольность" девайсу.
Но не более.

Что касается "струны" - на мой взгляд нет лучше
аналогового сигнала, чем цифровой сигнал.
Можно расположить в линейку несколько сотен
сенсоров и регистрировать прикосновение к каждому.
Конечно придется оставить емкостной принцип.
Допустим по своему контроллеру на каждую "струну"
Тогда можно выявить и рисунок нажатий и силу
(по числу смежных срабатываний) и т.п.

А хитрость лучше проявить в синтезе звука "струны"
Это будет реально интересно.
Petr вне форума   Ответить с цитированием
Старый 14.04.2009, 22:45   #52
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 58
Сообщений: 2,832
Вес репутации: 3992/109
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию Re: ИМХО самая трезвая мысль...

Цитата:
Сообщение от Petr Посмотреть сообщение
.
А хитрость лучше проявить в синтезе звука "струны"
Это будет реально интересно.
+100...
HHIMERA вне форума   Ответить с цитированием
Старый 15.04.2009, 20:14   #53
michipic
Senior Member
 
Аватар для michipic
 
Регистрация: 26.02.2007
Адрес: Москва
Сообщений: 182
Вес репутации: 151/49
michipic has a spectacular aura aboutmichipic has a spectacular aura about
По умолчанию Re: Пианино

Как и упоминалось выше, для генерации плавноизменяющегося тона всё сильно усложняется. Значит нужно изменить начальные условия. Генерация звука с плавным изменением тона проще получится, если на входе будет плавно изменяющийся аналоговый сигнал. Если забыть про ёмкость, то это может быть резистивная дорожка, источник света со шторкой, и т.д.
Например, две параллельных дорожки, одна резистивная, другая - общий провод. В зависимости от места замыкания пальцем будет изменяться падение напряжения на резистивной дорожке. Для многоканального звука дорожки чередуются - "струна", общий, "струна", общий... и т.д. Среди пиков 16 серии есть чипы с 13 аналоговыми входами. Можно представить себе такой инструмент с 13ю струнами... Это скорее арфа получается...
И математика и программа сильно упрощаются. Только надо продумать, как увязать строй "струн" с разметкой ладов на таком "грифе"...
__________________
ну и что?
michipic вне форума   Ответить с цитированием
Старый 16.04.2009, 19:31   #54
michipic
Senior Member
 
Аватар для michipic
 
Регистрация: 26.02.2007
Адрес: Москва
Сообщений: 182
Вес репутации: 151/49
michipic has a spectacular aura aboutmichipic has a spectacular aura about
По умолчанию Re: Пианино

Цитата:
Сообщение от tester Посмотреть сообщение
Если у тебя другой контроллер и что-то не заработает, - пиши, постараюсь помочь.
Ага, другой. PIC16F877. Набросал схему по аналогии с показанными в статье.


Стал разбираться, как ввести в программу конфигурацию этого МК... Оказалось, что параметры конфигурации - в самых разных местах, и уверенности что всё обнаружил, нет. Попробовал найти HI-TECH PICC STD, по самым популярным местам - казус, сахара, - облом. Короче, нужна помощь автора. Прошу хекс, пригодный для прошивки в PIC16F877.
Ещё есть по схеме вопросы - в программе действительно, есть выбор инструмента, но связать с конкретным пином непонятно как... Прошу пояснить.
Попытался эмулировать пианино в Протеусе, чтобы понять, что к чему...
Из доступных там только PIC16F88. Загрузил в него прошивку и прицепил 12 цепей raw - col с ёмкостью 10 пф, и подключаемой параллельно с помощью кнопки емкостью 200 пф. Короче - на осциллограмме ШИМ независимо от нажатия кнопки, в динамике - треск, щелчки... А перебор raw идёт...
__________________
ну и что?
michipic вне форума   Ответить с цитированием
Старый 16.04.2009, 19:53   #55
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Пианино

Цитата:
Сообщение от michipic Посмотреть сообщение
Ага, другой. PIC16F877. Набросал схему по аналогии с показанными в статье.


Стал разбираться, как ввести в программу конфигурацию этого МК...
Оказалось, что параметры конфигурации - в самых разных местах, и уверенности что всё обнаружил, нет. Попробовал найти HI-TECH PICC STD, по самым популярным местам - казус, сахара, - облом. Короче, нужна помощь автора. Прошу хекс, пригодный для прошивки в PIC16F877.
Конфигурация:
Код:
    __CONFIG (UNPROTECT & BORDIS & WDTDIS & LVPDIS & HS & DEBUGDIS);
Готовую прошивку сейчас не сделаю: самой жлезки нет под рукой, да и ни одной готовой макетки под 40-ногий ПИК нет.

Что нужно изменить:
В Init():
- настройку ADC-модуля;
- отключение компаратора (если используется 877A)

В const.h:
добавить секцию:
Код:
#ifdef _16F877
    __CONFIG (UNPROTECT & BORDIS & WDTDIS & LVPDIS & HS & DEBUGDIS);
 
 #define PORTA_CONST     0x...
 #define TRISA_CONST     0x...
 
 #define PORTB_CONST     0x...
 #define TRISB_CONST     0x...
 
 #define PORTC_CONST     0x...
 #define TRISC_CONST     0x...
 
 #define PORTD_CONST     0x...
 #define TRISD_CONST     0x...
 
 #define PORTE_CONST     0x...
 #define TRISE_CONST     0x...
 
 #define pin_BUTTON      RB0        // Сюда цепляется кнопка
 
 #define CCP_bit1        CCP1X
 #define CCP_bit0        CCP1Y
 
 const TColumn  COLUMNS[KBD_COLUMNS] = 
 {
      /* определение аналоговых входов */
 };
 const TRow     ROWS[KBD_ROWS] = 
 {
      /* определение управляющих выходов */
 };
#endif
(Кажись, ничего не забыл)


Цитата:
Ещё есть по схеме вопросы - в программе действительно, есть выбор инструмента, но связать с конкретным пином непонятно как... Прошу пояснить.
Нужно переопределить константу pin_BUTTON в файле const.h. Посмотри, как она определена для других ПИКов.

Цитата:
Попытался эмулировать пианино в Протеусе, чтобы понять, что к чему...
Из доступных там только PIC16F88. Загрузил в него прошивку и прицепил 12 цепей raw - col с ёмкостью 10 пф, и подключаемой параллельно с помощью кнопки емкостью 200 пф. Короче - на осциллограмме ШИМ независимо от нажатия кнопки, в динамике - треск, щелчки... А перебор raw идёт...
Если ничего не напутано в схеме, то не знаю, как помочь: с протеусом никогда не работал.
tester вне форума   Ответить с цитированием
Старый 16.04.2009, 21:13   #56
michipic
Senior Member
 
Аватар для michipic
 
Регистрация: 26.02.2007
Адрес: Москва
Сообщений: 182
Вес репутации: 151/49
michipic has a spectacular aura aboutmichipic has a spectacular aura about
Wink Re: Пианино

Цитата:
Готовую прошивку сейчас не сделаю: самой жлезки нет под рукой, да и ни одной готовой макетки под 40-ногий ПИК нет.
Обычно делаю проекты на ПИКах на асме, вполне хватает для моих задач. Для пианино нужно ставить С-компилятор HI-TECH PICC STD, стыковать его с MPLAB. Ради одного проекта не хочется заморачиваться.
Не сочтите за бестактность (просто такты сбоят...:-) ), но м.б возможно сделать скомпилированный проект в MPLAB (содержащий файл прошивки piano_f877.hex) без отладки на PicKit2? В настройках MPLAB легко можно выбрать такой режим.
__________________
ну и что?
michipic вне форума   Ответить с цитированием
Старый 16.04.2009, 21:48   #57
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Пианино

Цитата:
Сообщение от michipic Посмотреть сообщение
Не сочтите за бестактность (просто такты сбоят...:-) ), но м.б возможно сделать скомпилированный проект в MPLAB (содержащий файл прошивки piano_f877.hex) без отладки на PicKit2?
Вот файл. Но я за него не уверен. (Заодно и ошибку в МПЛаб 8.20 обнаружил: он для 877-го не учитывает адреса RАМ: 110..11F, 190..19F)

У тебя на схеме ошибка: col4 подключен к RA4, которая не является аналоговым входом. Я переделал: col4->RA5, col5->RE0. Кнопку смены инструмента повесил на RB0.

А вообще, поставить Си стоит: сейчас один проект, потом другой понадобится. Переходить на него полностью не обязательно, но иметь под рукой - желательно.
Вложения
Тип файла: pdf pk2_piano_f877.hex.pdf (8.6 Кб, 11 просмотров)
tester вне форума   Ответить с цитированием
Старый 16.04.2009, 22:54   #58
michipic
Senior Member
 
Аватар для michipic
 
Регистрация: 26.02.2007
Адрес: Москва
Сообщений: 182
Вес репутации: 151/49
michipic has a spectacular aura aboutmichipic has a spectacular aura about
По умолчанию Re: Пианино

Спасибо! Завтра в Протеусе посмотрю, и буду шить!
Насчёт Си согласен, сам себя ругаю за консерватизм и отсталость, но не хватает духа...
Ошибка дурацкая и непростительная, ведь проверял именно выбор аналоговых входов, но просмотрел... Кусаю локти...
Да и вот вечер просидел в поисках на сонсиври версии STD. 45 дневную ставить не хочется, а везде только ПРО лежит...
__________________
ну и что?

Последний раз редактировалось michipic; 16.04.2009 в 23:00. Причина: дополнение
michipic вне форума   Ответить с цитированием
Старый 16.04.2009, 23:23   #59
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 58
Сообщений: 2,832
Вес репутации: 3992/109
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию Re: Пианино

Цитата:
Сообщение от michipic Посмотреть сообщение
Спасибо! Завтра в Протеусе посмотрю, и буду шить!
Насчёт Си согласен, сам себя ругаю за консерватизм и отсталость, но не хватает духа...
Ошибка дурацкая и непростительная, ведь проверял именно выбор аналоговых входов, но просмотрел... Кусаю локти...
Да и вот вечер просидел в поисках на сонсиври версии STD. 45 дневную ставить не хочется, а везде только ПРО лежит...
У Лорда посмотри... Или если что, черкани в личку...
HHIMERA вне форума   Ответить с цитированием
Старый 17.04.2009, 19:06   #60
michipic
Senior Member
 
Аватар для michipic
 
Регистрация: 26.02.2007
Адрес: Москва
Сообщений: 182
Вес репутации: 151/49
michipic has a spectacular aura aboutmichipic has a spectacular aura about
По умолчанию Re: Пианино

Загнал прошивку в Протеус. Понятно, что скорость эмуляции низкая, и на выходе звука не будет, но посмотреть кое-что можно.
Например, работу узла клавиатуры.
Вот скрин осциллограммы - жёлтый это выход ССР1;
следующая - col0 - аналоговый вход АЦП;
две нижние - row0 и row1 цифровые выходы МК, подключенные через развязывающие диоды к col0.
На row0 и row1 последовательно устанавливается лог 1 опроса монеток, а вот на принимающем аналоговом входе АЦП col0 почему-то при этом от каждого из них короткий импульс. Хотя должен быть такой же длительности , как и row0 и row1...

__________________
ну и что?
michipic вне форума   Ответить с цитированием
Старый 17.04.2009, 19:31   #61
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,785
Вес репутации: 3611/100
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Пианино

Цитата:
Сообщение от michipic Посмотреть сообщение
Загнал прошивку в Протеус. Понятно, что скорость эмуляции низкая, и на выходе звука не будет, но посмотреть кое-что можно.
Например, работу узла клавиатуры.
Вот скрин осциллограммы - жёлтый это выход ССР1;
следующая - col0 - аналоговый вход АЦП;
две нижние - row0 и row1 цифровые выходы МК, подключенные через развязывающие диоды к col0.
На row0 и row1 последовательно устанавливается лог 1 опроса монеток, а вот на принимающем аналоговом входе АЦП col0 почему-то при этом от каждого из них короткий импульс. Хотя должен быть такой же длительности , как и row0 и row1...
А, если не секрет конечно, а зачем все это ??
Petr вне форума   Ответить с цитированием
Старый 17.04.2009, 19:55   #62
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Пианино

Цитата:
Сообщение от michipic Посмотреть сообщение
На row0 и row1 последовательно устанавливается лог 1 опроса монеток, а вот на принимающем аналоговом входе АЦП col0 почему-то при этом от каждого из них короткий импульс. Хотя должен быть такой же длительности , как и row0 и row1...
За один row-импульс опрашивается 6 аналоговых входов (col ). Попробуй вывести col0, col1, row0, и все станет понятно.

(За то время, которое было потрачено на рисование схемы, наверное, все спаять можно было...)
tester вне форума   Ответить с цитированием
Старый 17.04.2009, 20:01   #63
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,785
Вес репутации: 3611/100
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Пианино

Цитата:
Сообщение от tester Посмотреть сообщение
За один row-импульс опрашивается 6 аналоговых входов (col ). Попробуй вывести col0, col1, row0, и все станет понятно.

(За то время, которое было потрачено на рисование схемы, наверное, все спаять можно было...)
Прикинь:
В следующей версии схемы новый модуль.
Квадратный, с ручками, которые тянуться к ряду кнопочек внизу.
И надписью - "tester"

Явно не хватает на схеме.....
Матрица наступает.
Petr вне форума   Ответить с цитированием
Старый 17.04.2009, 20:21   #64
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Пианино

Цитата:
Сообщение от Petr Посмотреть сообщение
Прикинь:
В следующей версии схемы новый модуль.
Квадратный, с ручками, которые тянуться к ряду кнопочек внизу.
И надписью - "tester"

Явно не хватает на схеме.....
Матрица наступает.
tester вне форума   Ответить с цитированием
Старый 17.04.2009, 21:04   #65
urry
Senior Member
 
Аватар для urry
 
Регистрация: 11.10.2007
Возраст: 57
Сообщений: 462
Вес репутации: 228/51
urry has a spectacular aura abouturry has a spectacular aura abouturry has a spectacular aura about
По умолчанию Re: Пианино

Хм... Я сдуру показал видео жене (она - учитель в музшколе) - и она пристала - надо ей 6 штук.. каждый пик баксов 5...
Такая востребованность... Может, есть смысл в серию ?

Последний раз редактировалось urry; 17.04.2009 в 21:08. Причина: ну вот...
urry вне форума   Ответить с цитированием
Старый 17.04.2009, 21:17   #66
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Пианино

Цитата:
Сообщение от urry Посмотреть сообщение
Хм... Я сдуру показал видео жене (она - учитель в музшколе) - и она пристала - надо ей 6 штук.. каждый пик баксов 5...
+28руб 50 коп (почти доллар) на клавишах лежит

Представляю картину: лет через 10 приду в филармонию на концерт великого пианиста, а на сцене персонал судорожно приклеивает перед концертом монетки на клавиши рояля, т.к. маэстро играть иначе не могёт.
tester вне форума   Ответить с цитированием
Старый 18.04.2009, 14:15   #67
michipic
Senior Member
 
Аватар для michipic
 
Регистрация: 26.02.2007
Адрес: Москва
Сообщений: 182
Вес репутации: 151/49
michipic has a spectacular aura aboutmichipic has a spectacular aura about
По умолчанию Re: Пианино

tester:
Цитата:
Что нужно изменить:
В Init():
- настройку ADC-модуля;
- отключение компаратора (если используется 877A)
Упс... Оказался именно PIC16F877A...
Но прошивку для 877 зашил, собираю макетку на 1 октаву...
__________________
ну и что?
michipic вне форума   Ответить с цитированием
Старый 20.04.2009, 19:21   #68
michipic
Senior Member
 
Аватар для michipic
 
Регистрация: 26.02.2007
Адрес: Москва
Сообщений: 182
Вес репутации: 151/49
michipic has a spectacular aura aboutmichipic has a spectacular aura about
По умолчанию Re: Пианино

Интересно, как крепить монеты? Паять? Или сверлить и притягивать винтом? А может клеить токопроводящим клеем? Как-то все эти варианты не очень радуют...
И ещё - если не все выводы row задействованы (пины висят в воздухе) - тогда при подаче лог 1 на такой вывод на всех аналоговых входах будет 0. Соответственно, программа будет считать, что на этих входах есть касание...На выходе будет поли-како-фония... Похоже, что я её и слышу на своём макете с 1 октавой...
__________________
ну и что?
michipic вне форума   Ответить с цитированием
Старый 20.04.2009, 19:34   #69
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Пианино

Цитата:
Сообщение от michipic Посмотреть сообщение
Интересно, как крепить монеты? Паять? Или сверлить и притягивать винтом? А может клеить токопроводящим клеем? Как-то все эти варианты не очень радуют...
Я крепил на двустороннюю липучку (не знаю, как она называется, но часто ее называют двусторонним скотчем). Провода припаяны в торцы монеток.
Цитата:
И ещё - если не все выводы row задействованы (пины висят в воздухе) - тогда при подаче лог 1 на такой вывод на всех аналоговых входах будет 0. Соответственно, программа будет считать, что на этих входах есть касание...На выходе будет поли-како-фония... Похоже, что я её и слышу на своём макете с 1 октавой...
В описании сказано, что если меняем количество выводов (row или col), то, соответственно, меняем значение констант KBD_ROWS или KBD_COLUMNS и правим массивы ROWS или COLUMNS в файле const.h (см. http://wiki.pic24.ru/doku.php/osa/ar...ano#заключение)
Миниатюры
kkk.JPG  
tester вне форума   Ответить с цитированием
Старый 21.04.2009, 22:32   #70
michipic
Senior Member
 
Аватар для michipic
 
Регистрация: 26.02.2007
Адрес: Москва
Сообщений: 182
Вес репутации: 151/49
michipic has a spectacular aura aboutmichipic has a spectacular aura about
По умолчанию Re: Пианино

Несколько непонятная вещь получилась...При включении питания в наушниках непрерывный тон. При нажатиях на кнопку изменения инструмента тембр тона меняется. При нажатии на клавиатуру - тон не изменяется.
На выходах row импульсы есть, на входы col они приходят, но
емкости тела недостаточно для изменения высоты импульса.
При просмотре осциллографом на всех входах col импульсы полной высоты, значит клавиатура подключена правильно и имеющаяся ёмкость не приводит к срабатыванию входа. Если к входу col подключать емкость, то начиная с 33н амплитуда импульса на входе снижается на 50%. При 100н от импульса остается около 10%. Но звуковой тон при этом не изменяется.
Получается, что программа не воспринимает управляющий сигнал по входу col...
Чтобы высота импульса уменьшалась от ёмкости тела нужно увеличить сопротивление резисторов на выходах row - это понятно.
Но как заставить контроллер реагировать на нажатие?
__________________
ну и что?
michipic вне форума   Ответить с цитированием
Старый 21.04.2009, 22:54   #71
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,785
Вес репутации: 3611/100
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Пианино

Цитата:
Сообщение от michipic Посмотреть сообщение
Несколько непонятная вещь получилась...При включении питания в наушниках непрерывный тон. При нажатиях на кнопку изменения инструмента тембр тона меняется. При нажатии на клавиатуру - тон не изменяется.
На выходах row импульсы есть, на входы col они приходят, но
емкости тела недостаточно для изменения высоты импульса.
При просмотре осциллографом на всех входах col импульсы полной высоты, значит клавиатура подключена правильно и имеющаяся ёмкость не приводит к срабатыванию входа. Если к входу col подключать емкость, то начиная с 33н амплитуда импульса на входе снижается на 50%. При 100н от импульса остается около 10%. Но звуковой тон при этом не изменяется.
Получается, что программа не воспринимает управляющий сигнал по входу col...
Чтобы высота импульса уменьшалась от ёмкости тела нужно увеличить сопротивление резисторов на выходах row - это понятно.
Но как заставить контроллер реагировать на нажатие?
С конфигурацией аналоговых входов видимо что то не то.
Или канал АЦП выбирается неправильно.
tester же вслепую код смастерил.
Слепить прогу из того, что в его статье - 10 мин. делов

Кстати 877/877A как раз там вроде есть отличия.
Petr вне форума   Ответить с цитированием
Старый 21.04.2009, 22:58   #72
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Пианино

Цитата:
Сообщение от michipic Посмотреть сообщение
Несколько непонятная вещь получилась...При включении питания в наушниках непрерывный тон. При нажатиях на кнопку изменения инструмента тембр тона меняется. При нажатии на клавиатуру - тон не изменяется.
На выходах row импульсы есть, на входы col они приходят, но
емкости тела недостаточно для изменения высоты импульса.
При просмотре осциллографом на всех входах col импульсы полной высоты, значит клавиатура подключена правильно и имеющаяся ёмкость не приводит к срабатыванию входа. Если к входу col подключать емкость, то начиная с 33н амплитуда импульса на входе снижается на 50%. При 100н от импульса остается около 10%. Но звуковой тон при этом не изменяется.
Получается, что программа не воспринимает управляющий сигнал по входу col...
Чтобы высота импульса уменьшалась от ёмкости тела нужно увеличить сопротивление резисторов на выходах row - это понятно.
Но как заставить контроллер реагировать на нажатие?
Какие сейчас резисторы стоят? Емкость в 30н, не которую реагирует твоя схема, - это очень много. Человек в среднем вносит около 20п.

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

Насчет измерения осциллографом: сам осциллограф имеет свою емкость, которая будет скашивать фронты. Измерять можно только с включенным делителем 1:10.

Проверь еще раз: на аналоговых входан не должно ничего висеть, кроме самой матрицы.
tester вне форума   Ответить с цитированием
Старый 22.04.2009, 20:15   #73
michipic
Senior Member
 
Аватар для michipic
 
Регистрация: 26.02.2007
Адрес: Москва
Сообщений: 182
Вес репутации: 151/49
michipic has a spectacular aura aboutmichipic has a spectacular aura about
По умолчанию Re: Пианино

Поправьте, если я неправ. ИМХО, смысл касания пальцем клавиатуры состоит в уменьшении амплитуды импульса опроса на аналоговом входе. АЦП определяет это уменьщение, и формируется флаг касания клавиатуры.
Тогда можно отвлечься от сложных ёмкостных эффектов, установив обычную кнопку на замыкание аналогового входа на общий провод (через резистор, офкоз... ). Так вот, в моём случае изменение тона даже с такой кнопкой так и не происходит.
Вот бы на свободный вывод вывести какую-нибудь лог. 1 при установке флага нажатия кнопки.
Кстати, внесение в пианино нескольких светодиодов, управляемых в сответствии с музыкой, добавило бы привлекательности этому устройству. Для детей.
__________________
ну и что?
michipic вне форума   Ответить с цитированием
Старый 22.04.2009, 20:23   #74
IgorV
Senior Member
 
Аватар для IgorV
 
Регистрация: 25.02.2007
Адрес: всем пока
Возраст: 49
Сообщений: 4,100
Вес репутации: 1883/106
IgorV has a brilliant futureIgorV has a brilliant futureIgorV has a brilliant futureIgorV has a brilliant futureIgorV has a brilliant futureIgorV has a brilliant futureIgorV has a brilliant futureIgorV has a brilliant futureIgorV has a brilliant futureIgorV has a brilliant futureIgorV has a brilliant future
Отправить сообщение для IgorV с помощью Skype™
По умолчанию Re: Пианино

Цитата:
Сообщение от michipic Посмотреть сообщение
Поправьте, если я неправ. ИМХО, смысл касания пальцем клавиатуры состоит в уменьшении амплитуды импульса опроса на аналоговом входе. АЦП определяет это уменьщение, и формируется флаг касания клавиатуры.
Тогда можно отвлечься от сложных ёмкостных эффектов, установив обычную кнопку на замыкание аналогового входа на общий провод (через резистор, офкоз... ). Так вот, в моём случае изменение тона даже с такой кнопкой так и не происходит.
Вот бы на свободный вывод вывести какую-нибудь лог. 1 при установке флага нажатия кнопки.
Кстати, внесение в пианино нескольких светодиодов, управляемых в сответствии с музыкой, добавило бы привлекательности этому устройству. Для детей.
выбрось всю прогу и сделай только вывод значения АЦП при аналогичной работе. Т.е. зарядил-измерил. Посмотри какие значения получишь...
А то уже светодиоды какие то если даже 1 кнопка не пашет. Попорядку надо, от простого к сложному.
IgorV вне форума   Ответить с цитированием
Старый 22.04.2009, 21:06   #75
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Пианино

Цитата:
Сообщение от michipic Посмотреть сообщение
Поправьте, если я неправ. ИМХО, смысл касания пальцем клавиатуры состоит в уменьшении амплитуды импульса опроса на аналоговом входе.
Не амплитуды, а скорости нарастания напряжения. Что в свою очередь дает разный уровень напряжения через одно и то же время после начала заряда. Это принципиальная разница.
Цитата:
АЦП определяет это уменьщение, и формируется флаг касания клавиатуры.
Тогда можно отвлечься от сложных ёмкостных эффектов, установив обычную кнопку на замыкание аналогового входа на общий провод (через резистор, офкоз... ). Так вот, в моём случае изменение тона даже с такой кнопкой так и не происходит.
Вот бы на свободный вывод вывести какую-нибудь лог. 1 при установке флага нажатия кнопки.
Так-с... Погоди про АЦП и простые кнопки. Добейся того, чтобы схема работала.

1. Насколько я понял, в твою схему нужно внести 30н, чтобы кривая сигнала скосилась. Еще раз повторю, что это очень много. Сам посчитай, при 100К и 30н Тау будет равна 1*10^5 * 30*10^-9 = 30* 10^-4 = 3 мс (миллисекунды), а время определения угла наклона в программе порядка 6-7 мкс (микросекунд) (+50 мкс на АЦП измерение; в течение этого времени емкость будет продолжать заряжаться, но уже не повлияет на результат). Что-то не так. По симптомам похоже, что не те резисторы стоят. Какие номиналы ты поставил?

2. Еще раз проверь, что все аналоговые входы, участвующие в измерении подключены, а не болтаются в воздухе. То же самое проверь с управляющими выходами.

3. Перепроверь содержимое массивов COLS и ROWS с фактическими подключениями.

4. Когда все это будет проверено, переходи к настройки АЦП. По настройке АЦП воспользуйся советом IgorV: убери все лишнее, оставь только измерения. Измеренные данные через UART - в комп и смотри, как изменяются показания АЦП при прикосновении пальцем. Добейся, чтобы это работало.

Проще было бы достать F88, запустить на нем, а потом уже переносить программу на F877(a).

Цитата:
Кстати, внесение в пианино нескольких светодиодов, управляемых в сответствии с музыкой, добавило бы привлекательности этому устройству. Для детей.
Я для эффектности использовал малоногий ПИК, а там светодиоды уже не приткнуть было.

P.S. Я хоть искренне желаю, чтобы у всех, кто попытается повторить устройство, оно бы заработало, но я физически не смогу каждому переписать программу под ПИК, который у него имеется, и тем более не смогу помочь отладить ее на расстоянии. Результат даст кропотливая программистская работа и усидчивость.
tester вне форума   Ответить с цитированием
Ответ

Метки
osa, rtos, полифония, сенсорная кнопка


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +3, время: 03:27.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot