Това е малко нетрадиционна статия за този сайт, тъй като сме в него сме се ориентирали предимно към софтуера, но въпреки това реших да я пусна, защото все пак ще стане въпрос и за софтуер, и то свободен…
За да не се чудите за какво става въпрос, ще кажа от сега – крайният резултат ще представлява едно „устройство“ с матрица от 5×8 светодиода, върху които ще можете да покажете произволен скролиращ се текст. Ето как горе-долу ще изглежда:
Ето и снимки (на които се вижда цялостния вид на устройството):
В общи линии, цялата джаджа се състои от една матрица от светодиоди, свързани в 5 колони по 8 реда, и един микроконтролер PIC16F84A, към чиито изходи матрицата е свързана директно. За незапознатите ще обясня че PIC16F84A представлява една „интегрална схема“ с 18 крака, която всъщност е миниатюрен процесор, в който може да бъде заредена проста програма. Програмата от своя страна, управлява изходите му, към които са свързани самите светодиоди.
Кръстил съм устройството K-PICXIE.
Какво ви е необходимо за да го направите? Нужни са следните компоненти/материали:
- малко парче едностранно фолиран текстолит за платки
- пак толкова голямо парче универсална платка (на нея ще монтирате светодиодите, ако не ви се разправя да правите двустранна платка за тях)
- един микроконтролер PIC16F84A с PDIP (DIP) корпус (можете да си поръчате до 4 броя АБСОЛЮТНО БЕЗПЛАТНО) от http://sample.microchip.com/, и ще пристигне за 2-3 седмици.
- две батерийки тип AA (може и AAA или какъвто и да е източник на 3V до 5V напрежение).
- един кварцов резонатор 4 MHz
- един 18-пинов DIP цокъл
- държач за батерии (опционално)
- малко кабели – аз разфасовах един стар 40-жилен IDE кабел, но става всякакъв по-мек многожилен кабел.
- 40 светодиода – колкото по-маломощни са – толкова по-дълго време ще може да работи устройството с едни батерии. Не се изсилвайте да използвате мощни светодиоди с повишено излъчване, тъй като микроконтролера най-вероятно няма да може да ги захрани с достатъчно ток. В текущия си вариант, моето консумира от 1 до 5 mA, в зависимост от конкретния брой сведотиоди които светят едновременно. Може да пресметнем че с такава консумация, и едни акумулаторни батерии 700 mA/h може да работи горе-долу 140 часа (че дори и повече)…
- два кондезатора по 10 pF
- МНОГО ТЪРПЕНИЕ (особено при запояването на светодиодите)
- известно количество мозък
- хубава музика (за да не издивеете тотално по време на запояването на 40-те светодиода)
Няма да се спирам на процеса на правене на печатната платка, тъй като ако нямате възможност да си направите, може да използвате и универсална платка.
Също така, трябва да отбележа, че е необходим и програматор за PIC16F84A – за да можете да запишете крайната програмка върху микроконтролера. И на направата на програматор няма да се спирам (засега) – в мрежата има доста схеми на прости програматори за PIC16F84A, а може и да се възползвате от услугите на някой ваш познат който се занимава с такива неща… (ако някой проявява интерес, ще пусна тук и схемата на моят програматор, която е доста проста между другото…).
И така, ето схемата за управление на светодиодите:
Както (може би) виждате от нея, изходите на микроконтролера RA0 до RA4 определят колоната, а RB0 до RB7 – реда.
Можете да свалите схемата и в Eagle формат (ако искате да я променяте): k-picxie.sch
Сорс-кодът на програмата която управлява устройството е достъпен от тук: k-picxie.c
Компилираният (готов за записване в микроконтролера) .hex-файл, можете да свалите от тук: k-picxie.hex (настроен е да изписва надписа „използвайте свободен софтуер“).
А сега малко иструкции, относно показването на собствен текст. За целта е необходимо да редактирате (примерно с Notepad) файлът k-picxie.c и да го компилирате.
Редакцията става на ред 29 от сорса, там където пише
const unsigned char* text = "използвайте свободен софтуер!";
Заменете текстът в кавичките с вашият текст (на кирилица, с малки букви).
За да компилирате файла, е нужно да си инсталирате HI-TECH PICC-Lite компилатор. Той е безплатен и е достъпен за сваляне от тук. След като сте го инсталирали, стартирайте един Command Prompt от Start->Programs->Accessories->Command Prompt, и в него напишете:
D: cd download\k-picxie picl.exe --chip=16F84A -G k-picxie.c
където D: е устройството върху което сте свалили сорс-кода (т.е. файла k-picxie.c), а download\k-picxie е директорията в която сте го свалили.
Ако сте направили всичко както трябва, файлът ще се компилира без грешки, и в същата директория ще се появи файл с име k-picxie.hex (заедно с още няколко други, които не ви интересуват). Той всъщност е файлът който ще трябва да бъде записан в микроконтролера. Имайте предвид че текстът който можете да изпишете не е безкраен, и ако по време на компилацията излезе надпис подобен на
(593) can't find 0x6 words (0x6 withtotal) for psect "text4" in segment "CODE" то значи текстът е по-дълъг, отколкото може да побере свободната памет на процесорчето. В настоящия вид на програмата, максималната дължина на текста е около 373 символа.
При желание, можете да редактирате и таблицата със символи, така че да може да покажете собствени символи (например – текст на латиница), или дори кратка анимацийка от 30-40 кадъра… (за анимацийката е нужно съвсем още малко да промените кода, но това оставям на ентусиастите).
За създаване на символи съм направил специална програмка с помоща на AutoIt, с която можете лесно да генерирате необходимият ви код, който след това само трябва да копирате.
Свалете я от тук: kpicxie-charedit.exe
Ако искате, може да свалите и AutoIt кода на програмката: kpicxie-charedit.au3
Работата с нея е пределно проста, ето как изглежда:
В лявата част на прозореца задавате символа който искате да се генерира, а в дясната се вижда генерираният код. След като сте направили символа, трябва там където пише
case '':
да вмъкнете вашият символ. Примерно, ако сте направили символа за буквата R, трябва да напишете там
case 'R':
След това, маркирате целия генериран код копирате го, и го поставяте в основния код (в k-picxie.c), след мястото където пише
// поставяйте вашите нови символи след този текст
В общи линии, това е. Естествено, по темата за PIC микроконтролерите може да се изпише и изговори много, но не това е целта ми. Идеята за този проект се роди съвсем спонтанно, тъй като преди него не се бях занимавал с микроконтролери, или с програмиране за микроконтролери (въпреки че имах желание).
Държа да отбележа, че схемата и софтуера са изцяло разработени от мен (от нулата, за около две седмици), въпреки че в мрежата има доста подобни проекти. Смея да твърдя обаче, че не успях да попадна на проект с LED матрица с PIC16F84A, който да е с толкова много светодиоди и същевременно с толкова малко допълнителни компоненти. На практика светодиодите се свързват директно към изходите на микроконтролера.
Още, искам да отбележа, че кодът ми може и да не е най-опитимизиран… Всъщност, не е оптимизиран изобщо. Но така или иначе, работи безпроблемно. Ако сред вас има желаещи да го променят и оптимизират, така че да заема по-малко памет в процесора (и по този начин да се освободи място за по-дълъг текст), нека го направят (и да ме уведомят).
Успех на всички желащи да опитат късмета си с този сравнително прост PIC проект!















lokster занимаваш ли се активно с програмиране на пикове и ако да дай един меил скаип или тел. моя маил е alek0630@abv.bg
Не, от доста време не се занимавам – просто не остава време и за това.
Този проект беше просто заигравка в свободното ми време, и в интерес на истината беше първият ми опит с PIC…
Ако все пак те интересува нещо – пусни една тема във форума ни http://forum.learnfree.eu/
Every body knows that humen’s life seems to be very expensive, but we need cash for different things and not every man gets enough cash. So to get quick credit loans or just car loan would be a right way out.