Показ дописів із міткою електроніка. Показати всі дописи
Показ дописів із міткою електроніка. Показати всі дописи

пʼятниця, 9 квітня 2010 р.

Годинник-1.0

Нарешті стартовий годинник готовий. Досягнута головна мета — познайомитися з мікроконтролерною технікою, пригадати електроніку. Впаявши деталі на плату, виявив, що схематичних помилок немає, все запрацювало відразу. Але трохи схибив при монтажі, бо деякі деталі мають більший розмір, ніж їх підошва. Довелося “ретельно обробити терпугом”.

До цих пір я ще не пробував виготовити друковану плату самостійно, то дві третіх вартості приладу складає саме вона. Сподіваюся скоро виправити цей технологічний недолік.

Програмування — це найлегша частина проекту. Місця на кристалі багато, то крім обов’язкової частини додав бонус: при увімкненні на дисплеї показується біжучий рядок із надписом “Зелеста”, наскільки це можливо на семисегментному індикаторі. Правда, заставку можна вимкнути в режимі налаштування.

Технічні характеристики приладу:

Напруга живлення6 В
Споживаний струм~200 мА (точно не рахував)
Висота знаків38 мм (1,5")
Кількість знаків5
Точність годинника15 ppm (~1 с/добу)
Стартовий сигналЧерез кожні 30, 60, 120 секунд
Клавіші керуванняДві: “Режим” та “Старт/Вибір”

Корпусу поки немає (а моїми руками й не буде), то розміри рахувати не буду.

А поки прилад готується до можливого завтрашнього бойового хрещення на київському спринті, поділюся намірами. Закортіло зібрати портативну радіостанцію, бо є практична потреба. Але першим кроком стане простий FM передавач. Хочеться мати безпровідні аудіо колонки, щоб можна було повзати по квартирі з лаптопом, не тягаючи за собою дріт.

Наостанок порада для господарів (самого нещодавно осяяло). Якщо треба чекати на завершення тривалої операції, наприклад, компіляції чи збірки пакунку, можна поставити звукове сповіщення:

[~]$ make; canberra-gtk-play --id=complete

Дзенькне так, що не пропустиш (перевірено у Fedora 12). Очевидно, довге заклинання можна перетворити в коротку команду, призначивши alias чи створивши скрипт у ~/bin.

пʼятниця, 19 березня 2010 р.

З поверненням, Fedora

Років зо два тому почали на роботі використовувати Ubuntu, то весь цей час вона була основною оперційною системою на домашньому лаптопі. Зручна, надійна, з багатою бібліотекою прикладних програм. Але тільки побачив Fedora, мене здолала заздрість: пакунки поновлюються частіше, і всі ходові програми на один випуск новіші.

Поставив, і вже два тижні користуюся Fedora 12. Для порівняння ось два зображення одного шматка схеми USBasp в Ubuntu та новій системі:

Нарешті, надійшла пора випускати у світ спроектований стартовий годинник. Вже тиждень потію над схемою та друкованою платою. Це вже четверта плата на моєму рахунку, і цього разу вдалося щось нове: жодного перехідного отвору! Ще треба дещо додати, двічі перевірити, прогнати через DRC (перевірку правил проектування), і можна буде замовляти.

субота, 12 грудня 2009 р.

Програматор USBasp

Цього разу плата приїхала рівно за тиждень. І раз чесалися руки, відразу ж взявся її розпаювати. Так виявилися перші ляпи: отвори для стабілітронів я призначив занадто малі. Тобто, я взяв стандартний елементи з бібліотеки (ACY300), а діоди раніше не бачив, тому й не помітив, що насправді ніжки в них товсті. По-друге, діоди чомусь вийшли намальовані в протилежній полярності, хоч на схемі все було гаразд. Видно, не догледів при запуску gsch2pcb.

Але це була дрібна біда: припаяв на поверхню й по тому. А от як під’єднав кабель, то відразу ж дізнався, що напруга від USB не подається, на VCC аж −0,8 В. Мав би вже тоді зробити висновок, що кабель підробний, але ні, подумав, що є ще якась біда зі схемою, і вона віджирає більше, ніж їй може дати мій лаптоп…

Прийшла пора запрограмувати мікроконтролер. Зі схемою Громова можна працювати тільки у Windows, а в мене такої недоробки немає, тому довелося циганити. Відверто, це було непросто: кремінець розпізнавався тільки in vitro, кириличні надписи у вікні програми відображалися ієрогліфами і це ще не все. З горем пополам записав-таки програму, виплавив потрібні перемички і поставив мікросхему назад на її місце.

Знову підключаю до комп’ютера (цього разу іншим кабелем), і знову нічого. Хіба що рівень живлення VCC тепер вже став 5 В. І в системному журналі з’явився запис, що знайдено якийсь прилад, але він, партизан, ні на що не відповідає. Та й діод не світиться, отже, не працює програма. Під’єдную осцилоскоп, і бачу, що ніяким меандром на генераторі тактових імпульсів не пахне, один шум та й годі. Довелося пригадати, з якої коробочки взяв конденсатори, з’ясувати, що ці занадто великої ємності, і перепаяти на потрібні.

Останнім штрихом стала модифікація кабеля. Придбаного за п’ять гривень на радіоринку зовсім не жаль було: розрізав, припаяв навпростець до плати. До речі, кабель просто фантастичний, тобто, його розпаяв справжній фантазер: живлення та земля, D+ та D− були попарно сплутані між собою… О диво, після операції мій лаптоп знайшов і визначив новий пристрій (на платі теж засвітився червоний світлодіод)! Ба, тепер енергії вистачає навіть на програмований мікроконтролер.

[~]$ lsusb | grep USBasp
Bus 004 Device 002: ID 16c0:05dc VOTI USBasp AVR Programmer

Працювати з USBavr виявилося досить просто: змінив програму, зібрав її командою make, і записав зміни у мікроконтролер командою make install. Makefile насправді виконує наступне заклинання:

avrdude -c usbasp -p atmega8 -U flash:w:led.hex

Словом, результати:

  • У мене з’явився власний програматор AVR десь за сто гривень.
  • Вперше вдалося провести цілеспрямоване налагодження схеми. Потикань було багато, але колись минеться.
  • Отримав купу задоволення, якого не було б, якби придбав готовий прилад.

середа, 11 листопада 2009 р.

Перший працюючий годинник

Прислужилося ще одне кругле число. 4 194 304 — це теж степінь двійки, і його можна представити як добуток 4×16×256×256. А на практиці це означає, що взявши кварцовий резонатор з такою власною частотою, мікроконтролер PIC буде виконувати 16×256×256 інструкцій за одну секунду. Налаштовуємо прескалер таймера на поділ частоти на 16, матимемо переповнення восьмирозрядного TMR0 256 разів за секунду. А добитися щосекундного переповнення ще якогось байта — це задача для першокурсника.

Словом, дуже вдалий набір фактів для побудови точного годинника: маємо генератор 1 Гц для відліку секунд, інший з частотою 256 Гц для динамічної індикації на дисплеї. Щось підказує, що це ще далеко не всі можливості…

Отже, вже є перша працююча реалізація годинника. Асемблер я не знаю і вчити не хочу, тому програма написана на C. І то треба було півдесятка років відпрацювати з C++, щоб нарешті оцінити міць і красу С--! Словом, за звичкою прогама виходить модульною з простими інтерфейсами, з прихованою від недружнього світу реалізацією тощо. Але про це вже іншим разом.

Раз візуальний ефект є, беремо далі курс на звуковий супровід. Треба буде десь придбати п’єзо-сирену, і причепити її до схеми.

субота, 7 листопада 2009 р.

Друкована плата для дисплею

Щоб не паяти павутину із проводів, вирішив для дисплею виготовити друковану плату. Крім того дуже хотілося розібратися, як вони проектуються. Та й паяю я препаршиво.

Отже, накидав я схему майбутнього стартового годинника у gschem. Оскільки у стандартній бібліотеці моїх “вісімок” не було, довелося їх намалювати самостійно. Десь у тенетах наткнувся на підказку, що можна деякі цифри поперевертати, щоб отримати двокрапковий роздільник годин, хвилин та секунд.

Потім перегнав схему у програму pcb, заздалегідь по опису деталі (datasheet) описавши слід індикатора. Дисплей — це хороший початок, бо зовсім не треба думати над розміщенням деталей, отже, на одну проблему менше. А от із мережею доріжок довелося покоптитися. Можливо, й можна було б провести всі з’єднання на одній стороні, впаявши кілька додаткових перемичок самостійно, але для мене це не очевидно.

А далі був експорт схеми плати у файли Ґербера, замовлення у Херсоні і два тижні очікування. До слова, виробник мав упоратися за тиждень, тому я незадоволений результатом. Крім того, місцями на платі наскрізні отвори зміщені десь майже на чверть-доріжки (0,25 мм). Прототип все-таки.

Несподівано для себе відкрив, що впаювати в таку плату деталі дуже легко. Звісно, довелося помучитися із першим десятком голок, а на решту пішло хвилин зо десять.

Тепер можна неквапно на макетній платі готувати мікроконтролер.