Отговори на тема  [ 15 мнения ] 
Midi клавиатура- тема с продължение 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Авг 18, 2009 7:10 pm
Мнения: 52
Мнение Midi клавиатура- тема с продължение
Намерил съм доста схемни решения за въпросното устройство но в конкретния случай си мисля че ще се появи проблем с който незнам как да се справя. Та ситуацията е следната- имам в наличност готова матрица със клавишите и всичките му салтанати НО за да заработи като отделна миди клавиатура иска известна доработка. на приложените схеми е показана матрицата от ENSONIQ след дълго обмисляне стигнах до решението да я доработя със един PIC16F84 на който също ще кача схемичка. Проблема който виждам аз е че ще се получи разминаване във "редове" и "колони" на матрицата- от всеки ред ще се вземат само първите 4 позиции и незнам дали да търся софтуерно решение на този проблем( пренаписването на кода) или напълно хардуерна преработка на наличната матрица


Последна промяна bashmaistora_1 на Пет Окт 02, 2009 10:30 am, променена общо 2 пъти



Нед Сеп 13, 2009 8:05 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Май 27, 2006 12:37 pm
Мнения: 647
Местоположение: с. Згалево
Мнение 
При всички случаи с преправка или пренаписване на софтуера ще стане по-лесно. Въпроса е, че може да излезе по-скъпо. :D


Нед Сеп 13, 2009 9:28 pm
Профил WWW
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Чет Ное 20, 2008 1:49 pm
Мнения: 276
Местоположение: Бургас
Мнение 
Има си схемни решения точно за ПИК-процесори, които обхващат и хардуер, и софтуер. Гугъл ще ти каже къде са. ;)
Мисля, не е проблем да си ги доработиш за твоята клавиатура.

_________________
Digitally yours: Optron


Нед Сеп 13, 2009 9:28 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Авг 18, 2009 7:10 pm
Мнения: 52
Мнение 
Ами аз поех по този път защото ако забелязваш това което го имам в наличност е на 50% от първата схема RA0-RA4 на PIC-a се използват от 74LS138 които ги имам и на матрицата но вместо да ползвам RB0- RB7 аз ще трябва да ползвам RB0- RB3 и от там настъпва цялото объркване. Мисля че при натискането на първи клавиш ще отговаря но при натискането на пети примерно ще отговаря девети....изместват се със 4 позиции


Нед Сеп 13, 2009 10:09 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Съб Юни 24, 2006 8:25 pm
Мнения: 2293
Мнение 
Щом знаеш, какво се получава какъв ти е проблема? Или се смущаваш, че няма готово решение, което да изкопираш?

_________________
Две плюс две е приблизително равно на четири. Факт!


Нед Сеп 13, 2009 10:16 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Авг 18, 2009 7:10 pm
Мнения: 52
Мнение 
:oops: съвсем начинаещ съм във битката със микроконтролерите... знам какво искам да се получи но незнам точно как да го постигна. Единствения ми опит е със един 16ф877 но там всичко беше направено както си го пишеше в сайта от който взех схемата и нямаше проблем а тук вече е малко на свободни съченения :roll:


Нед Сеп 13, 2009 10:37 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Съб Юни 24, 2006 8:25 pm
Мнения: 2293
Мнение 
:) :)
Все от някъде трябва да се почне. Помисли, избери вариант и давай смело. Най-много нещо да объркаш, но след това ще се оправиш щом са ти ясни нещата. Светът няма да се срути от това.

_________________
Две плюс две е приблизително равно на четири. Факт!


Пон Сеп 14, 2009 8:00 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Авг 18, 2009 7:10 pm
Мнения: 52
Мнение 
Така, значи колкото и да го мисля чрез промяна на програмата на РІС-а няма да стане. Решил съм да използвам една изпитана схема за която мисля да изрежа двата 74LS138 и да пръсна групите вместо наличните 4х16 да ги разделя на 8х8- което няма да е кой знае какъв проблем. Обаче така и така ще си стъжнявам живота ми се прииска да направя малко подобрения в целия проект като добавя втори микроконтролер който да изпълнява други функции. ето тука виждам следващия проблем- във сорса е описано че RC7 e предвиден за Rx но се чудя дали през този Rx мога да прекарам мидисигнала идващ от другия микроконтролер. ето го и сорса:


Последна промяна bashmaistora_1 на Пет Окт 02, 2009 10:31 am, променена общо 1 път



Нед Сеп 20, 2009 8:47 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Авг 18, 2009 7:10 pm
Мнения: 52
Мнение 
Решено е за клавишите ще използвам PIC16F877 а за "екстрите" като пичбенд състейн и т.н ATmega168.
Хубавото на ATmegata е че тази схема която открих има и MIDI-IN което олеснява свързването на двата проекта.
До сега съм нахвърлил схемите в ийгъла и печатните платки са почти готови за ецване но възникнаха още куп въпропси на които не можах да открия отговор-пък може и да не съм търсил качествено но при всички положения ще ми е по-лесно някой да ми го каже с 2-3 думи на български вместо да си го обяснявам с моя развален английски.
1- За какво служи това AREF при ATmega
2- При връзка на ATmega със РС през USB-RS232 адаптер, нужно ли е свързването и на FTDI към RESET на чипа
3-Надежно ли е програмирането на ATmega през BSD/LPT интерфейса
4-Възможно ли е използването на програматора от "млад конструктор" за PIC16C/F84 за програмирането на PIC16F877 след леки корекции
може да има и още питанки но се надявам поне на тези да открия отговор :oops:


Вто Сеп 29, 2009 7:30 pm
Профил
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Пон Яну 09, 2006 11:32 am
Мнения: 276
Местоположение: Kozloduy
Мнение 
1- За какво служи това AREF при ATmega
Ами reference на АЦПто.

2- При връзка на ATmega със РС през USB-RS232 адаптер, нужно ли е свързването и на FTDI към RESET на чипа
Какво имаш редвид и защо ти е?

3-Надежно ли е програмирането на ATmega през BSD/LPT интерфейса
Не знам как оценяваш надежноста, аз ползвам STK200(колкото да кача един bootloader), между другото всички 8-битови атмели идват по default с пуснат RC осцилатор.

4-Възможно ли е използването на програматора от "млад конструктор" за PIC16C/F84 за програмирането на PIC16F877 след леки корекции
Ако не ти се инвестира в едни PicKit, спретни си един ProPic


Вто Сеп 29, 2009 8:41 pm
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Авг 18, 2009 7:10 pm
Мнения: 52
Мнение 
Значи относно:
Последните 3 въпроса отпаднаха напълно. Ей тва AREF много ме измъчи, оставил съм си жакче както е по схема обаче така и не разбрах за какво мога да го ползвам :roll:

П.П. Поради намаленото дисково пространство съм премахнал прикачените файлове.


Вто Сеп 29, 2009 10:41 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Авг 18, 2009 7:10 pm
Мнения: 52
Мнение 
Здравейте отново.
Вече платките са налепени и от десеттина дни правя опити но май все в грешна посока, с две думи ще ми е нужна помощ.
Първата част на проекта както казах е изпълнена със PIC 16F877- тук срещам проблем със компилирането и програмирането на чипа. Имах оригинален хекс за това което правя но съм го запилял. В случая влизам в страницата от където съм взел схемата и там си има сорскод към самото изделие, след преработка със MPLAB получения хекс не иска да се програмира в чипа нито със понипрога нито със уинпик. Към същата схема има подобно устройство за което имам хексфайла, програмира се, но не работи читаво(често забива и вместо да изпрати съобщение Note ON/OFF изпраща Program change). Вече започвам да си мисля че самият сорс код е нещо поорязан( за да се купи самият кит от тези апаши).
Не поставям конкретни въпроси защото вече незнам какво да мисля, но ако някой има идея каква проба да направя, защото явно нещата продължават да се развиват в посока-проба- грешка, ще бъда благодарен.
Втората част на проекта е със ATMega 168- и там съм почти до никъде, но си мисля че грешката е изцяло в мен защото не правя точно това което пише ами разни свободни съчинения. Както и да е втората част остава на заден план за сега.
Ако някой се наеме да помисли по въпроса ще прикача сорса, схемата и хекса.

П.п. Моля някой от модераторите да премести темата в съответния раздел понеже проблема вече клони повече към програмна част :wink:


Чет Дек 03, 2009 7:47 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Авг 18, 2009 7:10 pm
Мнения: 52
Мнение 
Ето го и продължението на темата :oops: Дойде ред и на втората част от проекта изпълнен със Атмега168. Междувременно някои неща са промениха-Първоначално втората част трябваше да е добавянето на FootPedals към мидиклавиатурата или по друг начин казано към Атмегата има 6 потенциометърчета и 6 превключватела всеки със своята функция. До тук "нихт проблем"- налични са ми и хекса и схемата Ооообаче въпросното творение в случая на изхода изкарва мидисигнала само и единствено със 31250bps.
Принципно това нямаше да е проблем ако на всички компютри със вградени звукови карти поставяха и геймпорт(във една друга тема обсъждахме варианта MIDI to RS232и от там USB). Някой от съфорумците подхвърли че лесно може да се доработи до вариант на изхода да подава или 31250 или 34800. Поразрових се още във сайта на господин Скраф от където взех схемата и се оказа че вече това нещо го е предвидил и е разработил сорс и схема със 5потенциометърчета и 5+1 превключвателя като този 1 е за избор на режима31250/34800. Свързах се със него със молба да ми предостави обновения сорс, но получих отказ- като варианта да се сдобия със него остава да си платя 6 евро за чип със налят код.Принципно не са нищо 12 лева за програмиран вече чип като се има предвид че тук трудно се намира за по-малко от 20 но транспортни разходи чакане онлайн плащане....не е за мене пък и това е друга бира.
Така сега конкретно на въпроса: Схемното решение за избор на режим се определя от от състоянието на 18краче (PB4/MISO), ако е към GND работи в режим 34800 а ако не е си работи на 31250- та проблема ми е програмното обезпечение или какво трябва да добавя или променя във сорса така че това да бъде възможно? Прилагам и сорса . Надявам се въпреки късния час да не съм написал много глупости и някой да помогне :oops:


Прикачени файлове:
New Text Document (2).txt [10.8 KiB]
166 пъти
Пет Яну 28, 2011 4:38 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение 
Не ти разбирам добре въпроса. И не съм сигурен дали това, което ти кажа, ще ти свърши работа. Освен това и не разбирам много от контролери.
Кода който си показал прилича да е за arduino. Ако е така, защо не си казал каква е платформата? Виж кода с инициализацията:

Код:
for (i = 2; i <=12; i++){ // include midi DIP switch, added arduino switch 12, pin 18
    pinMode(i, INPUT);
  }
  for (i = 2; i <=12; i++){  // turn on internal pullups
    digitalWrite(i, HIGH);
  }

  currentSwitch = digitalRead(12); //arduino switch 12, pin 18
  if( currentSwitch == LOW)
      Serial.begin(34800)   // set serial 34800 baud rate
  else
      Serial.begin(31250);   //  set MIDI 31250 baud rate
  Serial.flush();



Нямам постановката ти пред себе си. Но пробвай да сложиш на краче 18(arduino switch 12) джъмпер към маса и виж, какво става.

_________________
Warriors of the Night, ASSEMBLER!!!


Пет Яну 28, 2011 5:40 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Авг 18, 2009 7:10 pm
Мнения: 52
Мнение 
наистина е за Arduino. :( Грешката е моя, Пропуснал съм да кажа. Благодаря за отговора , ще пробвам и ще кажа какво става.


Пет Яну 28, 2011 4:26 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 15 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни