?

Log in

No account? Create an account
Какие бы сделать демо для базового использования микроконтроллера Microchip PIC32 (с ядром MIPS M4K) - Юрий Панчул [entries|archive|friends|userinfo]
Money can buy bandwidth. Latency requires bribing God.

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Какие бы сделать демо для базового использования микроконтроллера Microchip PIC32 (с ядром MIPS M4K) [Sep. 3rd, 2012|08:10 am]
Yuri Panchul
Господа! Я планирую сделать несколько демо, чтобы показывать студентам и школьникам, как программировать микроконтроллеры и соединять их с разным хардвером - сенсорами, экранчиками, другими компьютерами и FPGA. Под эту тему я вчера собрал конструкцию из нескольких плат - платы с микроконтроллером Microchip PIC32 на основе микропроцессорного ядра MIPS M4K; платы с простыми устройствами ввода-вывода; платы c FPGA Altera Cyclone IV, макетной платы и программатора. Как вы думаете, чего в комплект стоить добавить и какие демо сделать?

IMAG1127


Подробнее о платах:

http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,892,893&Prod=CHIPKIT-UNO32



Microchip® PIC32MX320F128 processor
80 Mhz 32-bit MIPS
128K Flash, 16K SRAM
Compatible with many existing Arduino™ code examples, reference materials and other resources
Can also be programmed using Microchip's MPLAB® IDE (along with a PICkit 3 and our PICkit3 Programming Cable Kit, seen below)
Arduino™ "Uno" form factor
Compatible with many Arduino™ shields
42 available I/O
User LED
Connects to a PC using a USB A -> mini B cable (not included)

http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,892,936&Prod=CHIPKIT-BASIC-IO-SHIELD



256Kbit I2C EEPROM
128x32 pixel OLED graphic display
I2C temperature sensor
I2C daisy chain connector
4 open drain FET drivers
Analog potentiometer
4 push buttons & 4 slide switches
8 discrete LEDs

http://www.altera.com/education/univ/materials/boards/de0-nano/unv-de0-nano-board.html



Cyclone IV EP4CE22F17C6N with EPCS16 16-Mbit serial configuration device
Built-in USB-Blaster cable for FPGA configuration
3-axis accelerometer with 13-bit resolution
A/D converter, 8 channels, 12-bit resolution
Expansion headers (two 40-pin headers and one 26-pin headers)
2-pin external power header
32 MB SDRAM
2 Kb EEPROM
8 green LEDs
4 dip switches
Two debounced pushbutton switches
50 MHz clock

Вот еще полезные устройства для соединения с этими платами:

http://www.digilentinc.com/Products/Catalog.cfm?NavPath=2,401&Cat=9
http://www.microchipdirect.com/
http://www.terasic.com.tw/en/


Какие по-вашему демо были бы интересны?

Базовые - кнопочки, лампочки, таймеры, прерывания
3(3.8%)
Микроконтроллер использует FPGA как арифметический сопроцессор через непосредственные сигналы
7(8.9%)
Микроконтроллер обменивается с FPGA данными через serial protocol - SPI, I2C или UART. FPGA имплементирует slave.
4(5.1%)
Микроконтроллер общается с большим компьютером через UART / RS232C / перемычку с USB / PuTTY, превращая PC в свой терминал
7(8.9%)
Аналоговый ввод с потенциометра или другого устройства (предложить устройство в комментарии)
3(3.8%)
Ввод данных с температурного сенсора используя I2C
5(6.3%)
Вывод на OLED графический дисплейчик через serial протокол SPI
3(3.8%)
Управление мотором с помощью Pulse Width Modulation
6(7.6%)
Использование на микроконтроллере Read-time operating system (RTOS)
6(7.6%)
Использование на микроконтроллере RetroBSD - минималистическая версия Unix-а без TLB
5(6.3%)
Вывод на графический дисплей VGA, используя FPGA в качестве контроллера графического дисплея
10(12.7%)
Вывод  на графический дисплей TFT без использования контроллера - через DMA
6(7.6%)
Подсоединить к микроконтроллеру GPS, джойстик, SD-card, датчик атмосферного давления или другое прикольное устройство (пояснить)
3(3.8%)
А Панчула с такими похожими на бомбу устройствами бдительные американские полицейские в аэропорту не арестуют?
6(7.6%)
Из-за бугра плюете?
5(6.3%)
LinkReply

Comments:
Page 1 of 2
<<[1] [2] >>
(Deleted comment)
[User Picture]From: zibot
2012-09-03 03:19 pm (UTC)
это, если вдуматься, "Микроконтроллер общается с большим компьютером через UART / RS232C / перемычку с USB / PuTTY, превращая PC в свой терминал"
(Reply) (Parent) (Thread)
(Deleted comment)
[User Picture]From: oksana_slk
2012-09-03 03:30 pm (UTC)
Иной мир =)

(Reply) (Thread)
[User Picture]From: panchul
2012-09-03 03:36 pm (UTC)
Вы знаете, сколько таких микроконтроллеров стоит у вас дома - в электросчетчике, в холодильнике, в дворниках на машине и т.д. и т.п. По статистике 2010 года дома у среднего американца стоит 150 микроконтроллеров, и еще 50 стоит в каждом среднем новом автомобиле.
(Reply) (Parent) (Thread)
[User Picture]From: telegamochka
2012-09-03 03:33 pm (UTC)
Очень просто (на двух резисторах) реализуется вывод ч/б композитного сигнала. Не знаю, какие характеристики у Microchip PIC32 (не электронщица я, да и на ардуине последний раз что-то программила больше года назад), но ардуина Diecimila у меня ТВ-выход вполне нормально "тянула". А c Seeduino Mega даже вполне приличное разрешение получалось.

Вот еще пара несложных проектов, которыми я развлекалась пару лет назад:
Композитный терминал для линукса: http : // habrahabr.ru /post/96595/
2-кнопочная клавиатура для печати с помощью азбуки Морзе: http : // habrahabr.ru /post/85530/
(Reply) (Thread)
[User Picture]From: panchul
2012-09-03 03:40 pm (UTC)
Это хорошая идея, спасибо. PIC32 существенно превышает контроллер AVR внутри Diecimila по производительности, т.е. такой выход должен потянуть.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: msh
2012-09-03 03:37 pm (UTC)
Взять 2 3-axis accelerometers, прибить к палкам - выдать группе школьников чтобы сделали аналог первой игровой консоли - тенниса.

Тут и игра, и UI, и физика на уровне школьной, и немного real-time, и результат интересный
(Reply) (Thread)
[User Picture]From: panchul
2012-09-03 03:41 pm (UTC)
Там один акселерометр стоит прямо на плате с FPGA. Да, это ценная идея, спасибо.
(Reply) (Parent) (Thread) (Expand)
(Deleted comment)
[User Picture]From: panchul
2012-09-03 04:25 pm (UTC)
Есть, но если вам будет нужна для этого рабочая виза, то уламывать нанимающих менеджеров будет непросто. Впрочем вы можете попробовать:

http://tbe.taleo.net/NA3/ats/careers/searchResults.jsp;jsessionid=81B1DD4CB2E5E4FE25C564F6C6EE405D.NA3_primary_jvm?org=MIPS&cws=1
(Reply) (Parent) (Thread)
From: rubir_ru
2012-09-03 04:14 pm (UTC)
проблема всех ардуин в том, что на них ничего массово полезного сделать нельзя. Только конкретные единичные изделия для специфических нужд. Неинтересно ничего из вышенаписанного, увы.
(Reply) (Thread)
[User Picture]From: panchul
2012-09-03 04:37 pm (UTC)

Дык я же делаю демо не в ардуинной моде

Действительно chipKit32 совместим по пинам с ардуино и даже имеет внешне неотличимую от ардуино среду программирования MPIDE.

Но все мои демо я делаю с помощью "взрослой" системы MPLAB, а не ардуиновщины. И использую все возможности контроллера и интерфейсинга, которые используются и во всех массовых промышленных изделиях на основе микроконтроллера PIC32.

Выбор chipKit32 продиктован тем, что он дешевле других плат и имет удобный набор устройств ввода-вывода. Сравните например с PIC32 Starter Kit который стоит дороже, и дочерние платы для которого - гораздо дороже, чем I/O Shield.

Но демо все "взрослые" на MPLAB. При этом, если вокруг технических студентов использующих MPLAB будут пробегать гуманитарии или другие люди, которым лень читать сотни страниц документации, то они могут использовать и ардуинное MPIDE.

Понимаете? В данной установке и лабах нет ничего, мешающего обучать создавать массово полезные продукты. На ней можно учить и так и сяк (MPLAB для взрослых, MPIDE для Радуловой).
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: _iga
2012-09-03 06:33 pm (UTC)
А сделайте протонный магнитометр :)
Это как раз "нестандартный" в терминах rubir_ru девайс.
Заодно школьники физику подучат.

Edited at 2012-09-03 06:33 pm (UTC)
(Reply) (Thread)
[User Picture]From: vit_r
2012-09-03 08:35 pm (UTC)
Молодёжи нужны или роботы, или игры.
(Reply) (Thread)
[User Picture]From: panchul
2012-09-03 09:04 pm (UTC)
Чтобы молодеж делала роботов или игры легко, не роясь судорожно каждую минуту в документации и не обнаруживая через полгода труда что им не нужно было имплементировать какой-нибудь протокол на уровне сигналов ибо он уже имплементирован в контроллере - желательно потратить небольшое количество времени на нудные упражнения, которые просто используют каждую существенную опцию из тысячестраничной документации.

Ведь изучение скажем японского языка не ограничивается чтением манги и разбором со словарем отрывков из Хейке Моногатари? Надо иметь словарный запас хотя бы из нескольких сот слов и знать грамматические схемы, что достигается зубрежкой и простыми упражнениями. Это фундамент последующей беглости и мышления более высокоуровневыми образами.

При этом нужно осознавать, что владение этой хренью (интерфейсами микроконроллеров) не является самоцелью - это просто инструмент, с помощью которого можно будет делать R&D в чем-нибудь существенном - например быстро делать прототип какого-нибудь устройства или делать исследования о методологии проектирования систем из хардвера и софтвера.

Также это иллюстрация к курсу компьютерной архитектуры ("вот вы дети прошлый семестр проектировали простой MIPS-образный процессор на FPGA, а теперь поиграйтесь с индустриальной версией этого же дела").
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: valery_mukhin
2012-09-03 09:03 pm (UTC)
Давайте сделаем из этого электронный ребризер :-)
(Reply) (Thread)
[User Picture]From: sir66
2012-09-03 11:37 pm (UTC)
Честно говоря, пусть тупо сделают каого нибудь ездящего или ходячего робота или мультикоптер. Возможно за нескоько занятий или даже за весь курс. Мультикоптер интереснее ибо сложнее в базовой плстановке, там сразу возникет реал тайм на уровне стабилизации в поете. Обе задачи допускают неограниченное развитие. И могут иметь вполне коммерческий выхлоп, хотя бы на уровне игрушеу, а модет и чего то большего.

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

Я сам этим в последние полгода серьезно увлекся ;)
(Reply) (Thread)
[User Picture]From: sir66
2012-09-04 09:39 am (UTC)
Еще было бы интересно добавить в комплект видеокамеру и как то использовать FPGA для обработки видеопотока. Или просто для его сжатия или для выделения каких нибудь красных и зеленых меток на пальцах дабы сделать что то подобное тому на что ссылался uzhas_sovka.
(Reply) (Parent) (Thread)
[User Picture]From: ramlamyammambam
2012-09-04 04:31 am (UTC)
Интересное местечко в Киеве объявилось:
http://www.hackerspace.com.ua
http://wasp.kiev.ua

Микроконтроллеры, Андроид. Надо бы народу еще идею FPGA подкинуть.
(Reply) (Thread)
[User Picture]From: sir66
2012-09-04 09:47 am (UTC)
У тебя перемешаны совершенно несравнимые задачи. У меня на лабу "управление мотором посредством PWM" ушло примерно 5 минут (правда с использованием стандартной библиотеки servo). А вот на "Вывод на графический дисплей VGA, используя FPGA" пожалуй и нескольких занятий может не хватить, если конечно не давать студентам просто готовые программы.
(Reply) (Thread)
[User Picture]From: Helena Vishnev
2012-09-04 10:48 am (UTC)
www.exler.ru/expromt/images/04-09-2012/5.jpg
(Reply) (Thread)
[User Picture]From: 1i7
2012-09-04 03:43 pm (UTC)
Реализовать какое-нибудь устройство на FPGA, подключить его к контроллеру, на котором запущен RTOS или RetroBSD, написать для него драйвер для RTOS или RetroBSD и пообщаться с этим устройством из юзер-спейса.
(Reply) (Thread)
From: realurix
2012-09-05 04:08 pm (UTC)
Студенты - будущие инженеры - организаторы производства. Производство - это коллективный труд. И не важно чей - людей или роботов. Поэтому очень важно не только написать программу для самого робота, но ещё и заставить его работать в команде. Т.е., нужно уделить половину материала системам связи. Лучше всего, если Ethernet и Zigbee будет поровну. Беспроводная связь - как бы её не продвигали и не рекламировали, всё же уступает по защищённости проводной.

Я закончил разводку платы в формфакторе Arduino-Uno под PIC32MX795L с Ethernet, mini-USB OTG и 8МБ SPI flash на борту. Поубирал нафиг все перемычки. Хреново, что Microchip не выпускает микросхем питания для PoE. Завтра отдам в производство. Сейчас сижу ещё раз проверяю всё ли правильно сделал, а то на первых экземплярах как ни выискивай баги, а всё равно одну-две насекомые пропустишь. Постарался по максимуму совместить с Digilent-Max32 чтобы софт сразу же шёл без всяких переделок. Делать двухрядный разъём цифровых сигналов не стал - для Uno32 в этом нет необходимости. Зато на этой плате спокойно работают монтажно-макетные платы без всяких Breadbord-ов.

Panchul! А какоие SoC-и есть на MIPS M4K? С тактовой под 300-400 МГц но с flash и sram на борту и чтобы не в BGA, а в QFN корпусах чтобы не делать 4-6-слойку? Или хотя бы в BGA, но чтобы выводы были в 2 ряда, не больше, чтобы опять-таки в 2-х слоях уместиться можно было бы. 2-х слойка гораздо дешевле многслойки будет.

Edited at 2012-09-05 04:23 pm (UTC)
(Reply) (Thread)
[User Picture]From: sir66
2012-09-10 11:55 am (UTC)
Я высказал некоторые свои соображения тут:

http://ramlamyammambam.livejournal.com/198962.html?thread=1723442#t1723442

Собственно вопрос, не было мысли сделать что то ардуино-совместимое по формфактору и пинам на процессоре помощнее и с внешней памятью? Ну например на том же Atheros AR9331. Там usb, ethernet и даже Wifi прямо в чипе, насколько я понимаю, так что заморочка с внешней памятью вполне оправдана. Цифровые выводы тоже вроде есть. Зато можно работать и с RetroBsd и даже с OpenWrt.

http://wiki.openwrt.org/toh/tp-link/tl-wr703n/ar9331_pinout
(Reply) (Parent) (Thread) (Expand)
Page 1 of 2
<<[1] [2] >>