Автор Тема: Контролер на базата на MSP430 на Texas Instruments.  (Прочетена 20929 пъти)

bateAz

  • Зомбиран Роботостроител
  • *****
  • Публикации: 186
    • Профил
Луд умора няма.

Имам намерение да разработя и направя контролер за роботи на базата на микроконтролер от фамилията MSP430.
Какви са предимствата на тези контролери: Първо, много ниска консумация. Това позволява доста по-дълъг живот на батерията, когато роботът не се движи. Второ, уникална архитектура, която позволява много бърза реакция на прекъсвания. Това позволява лесно да се реализира програма, която следи и управлява едновременно няколко процеса - нещо, което за много "програмисти" е тежка задача. Трето, доста разнообразна и развита периферия, в частност прецизни 12-битови ADC и DAC ( Texas Instruments са лидерите в интегрирането на прецизна аналогова периферия в жифрови схеми ), компаратори, операционни усилватели, комуникационни портове и др. Четвърто, сравнително добра достъпност на чипове и инструменти за разработка.
Какви недостатъци се забелязват "на пръв поглед": Първо, няма удобна среда за разработка на "роботски" прилижения и ще трябва да се прави. Второ, MSP430 не е толкова полулярен, колкото например PIC или AVR на Atmel.
Идеята е контролерът да замени популярните Arduino ( и други ), като предложи повече функционалност и (дай Боже!) повече простота на използването.
Лично аз не очаквам проблеми нито с хардуера, нито с фърмуера на творението. Не ми е сефте да правя подобни изделия.
Та въпросът ми е да се захващам ли, или не. Ясно ми е, че това не може да е задача за един човек ( при това - хоби ) и ще трябва да се включат доста доброволци, най-вече с идеи и с писане на софтуера за PC. Ще трябват и доста консултации и обсъждания за това какво да се включва в тези контролери и как да се прави. И не на последно място ще трябват и "доброволци", които да опитат поведението на отрочетата при управление на реален обект (робот някакъв) и да дадат оценка и предложения.
Анкета няма да пускам, който има интерес, да пише в темата!
Не може да не може

Венцислав Караджов, 61 год.

viko

  • Бил знаел какво е Мехатроника!
  • *****
  • Публикации: 113
    • Профил
Контролер на базата на MSP430 на Texas Instruments.
« Отговор #1 -: Май 07, 2011, 07:59:26 pm »
Аз имам интерес и бих желал да помогна  :)

Моя опит с TI, макар и неголям, показва, че са страхотни контролери. Също така на Ардуиното не съм фен и всички негови заместители са добре дошли.

Конкретно с какво мога да помогна, в зависимост от времето, което е необходимо:
Реалните тестове - Контрол на робко 01, като тук имам доста идеи, за начини на управление. Робо-сумо, следене на линия, умален модел на робот "разносвач" за завод и още доста.
Софтуера за PC - не. Тук си нямам и най-малка представа, тъй като това ми е малко далечко от интересите. Евентуално мога, а ако има кой да помогне малко - сигурно, да направя сайт.
Фърмуера - да, но по-скоро съм готов да надраскам примерни програми. Тук трябва да се отбележи, че се занимавам само с Асемблер, което може да е проблемно, тъй като доста хора ползват C.
Идеи - да се дава акъл е най-лесно. Все пак имам някои виждания:
- целият контролер да е на отделни модули. Един "главен" - този с микроконтролера, захранването и т.н. и останалите - за управление на стъпкови двигатели, за обикновенни двигатели и прочие.
Виктор.

bateAz

  • Зомбиран Роботостроител
  • *****
  • Публикации: 186
    • Профил
Контролер на базата на MSP430 на Texas Instruments.
« Отговор #2 -: Май 07, 2011, 10:32:55 pm »
Малко по малко ще си нахвърлям идеите. Разделям целия проект на 3 основни части: хардуер ( т.е. платка с налепени части ), фърмуер ( т.е програмата за микроконтролера ), и софтуер ( т.е. поддържащият софтуер за персонален компютър ).
Тъй като е най-лесно, ще започна със хардуера:


                      ХАРДУЕР

1. Контролерът ще е едноплатков с възможност за евентуално разширение чрез
допълнителни платки / модули. Все пак базовата функционалност на контролера
ще се осигурява от основната платка. Всички споменати по-долу функционалности,
с изключение на изрично указаните като "външни", се намират на основната
платка.
2. Контролерът ще се захранва от една литиево-йонна акумулаторна батерия
(LiON), 4 броя никел-метал хидридни акумулаторни батерии (NiMH) или 3-4
алкални или въгленово-цинкови незареждаеми елемента. Захранващите елеметни
ще се монтират в гнездо, извън платката на контролера. Връзката между
батериите и контролера ще е с куплунг. Всички други необходими захранващи
напрежения ще се изработват на платката на контролера.
3. Контролерът ще има възможност да се захранва и от Mini USB куплунг от
PC или 5V DC адаптер с USB куплунг. Този режим на захранване ще се ползва
само за програмиране или тестове от PC или за зареждане на акумулаторите.
4. Контролерът ще може да зарежда акумулаторните батерии, с които се
захранва. Типът на акумулаторните батерии ще се задава програмно.

5. Контролерът ще има следните комуникационни интерфейси:
  - USB device port за връзка с PC.
  - един сериен интерфейс за връзка с външен модул със скорост до 115.2
kbps ( BlueTooth, GSM module, RF, wiFi )
  - един сериен интерфейс за връзка с външен модул със скорост до 19.2
kbps ( Bluetooth, GSM, GPS )
  - един SPI.

6. Контролерът ще има следните входове:
  - 4 аналогови входа с обхват 0 .. 2.5 волта
  - 8 цифрови входа с възможност за прекъсване при промяна на състоянието на
всеки вход и възможност за PullUp на всеки вход
  - вътрешни сензори за напрежението на батерията и околната температура
  - 3D акселерометър

7. Контролерът ще има следните изходи:
  - 2 броя канали за управление на 4 фазни стъпкови мотори с ток на фаза до
2А и честота на превключване на фазите до 500Hz (униполярни намотки, 4V)
  - 2 броя канали за управление на 4 фазни стъпково мотори с ток на фаза до
2А и честота ма превключване на фазите до 500Hz (биполяни намотки). Същите
могат да се ползват и като управление на 4 DC мотора.
  - 4 изхода "отворен колектор" за ток до 1А и напрежение до 30 волта
  - 2 аналогови изхода с напрежение 0 .. 2.5 волта
  - три светодиода за индикиране на "нещо"

8. Всички входове и изходи ще бъдат изведени на куплунзи.

9. Контролерът ще има 2 куплунга за разширение за свързване на външни модули.
На тях ще бъдат изведени захранващо напрежение, SPI шина и цифрови I/O.

10. Контролерът ще има RTC ( Real Time Clock )
11. Контролерът ще има енергонезависима памет за съхранение на потребителски
данни / програмни алгоритми.

По предварителни оценки контролерът ще има размери около 90 Х 70 mm.
По предварителни оценки цената на контролерите в началния етап ще излезе около
100 - 150 лева. По-късно може да спадне до 60 - 90 лева. При промяна в
заданието ще има промяна и в цената (логично !).
Не може да не може

Венцислав Караджов, 61 год.

viko

  • Бил знаел какво е Мехатроника!
  • *****
  • Публикации: 113
    • Профил
Контролер на базата на MSP430 на Texas Instruments.
« Отговор #3 -: Май 07, 2011, 11:06:07 pm »
Бих казал, че е страхотно и наистина е така! АЗ лично, бих го закупил, доста неща има и нищо излишно. Става за изключително прости, но и сложни проекти.

За кой конкретен микроконтролер става въпрос?

Аз лично ще следя темата с интерес и с удоволствие бих помогнал.

Поздрави!
Виктор.

bateAz

  • Зомбиран Роботостроител
  • *****
  • Публикации: 186
    • Профил
Контролер на базата на MSP430 на Texas Instruments.
« Отговор #4 -: Май 08, 2011, 08:49:03 am »
Там е въпросът, че засега все още ми е трудно да кажа с кой контролер ще бъде. Раздвоен съм между MSP430F2618TPNR ( 80 pin ) и MSP430F5529. Предимството на първия е, че е "изгладена" платформа и на него голями проблеми няма. Предимството на втория е, че има вграден USB порт и е малко по-бърз. Освен това е и малко по-евтин, въпреки, че има и USB. Недостатъкът му е, че е сравнително нова разработка и силицият му още н е изчистен от бъгове. Някои от тях са отвратителни! Освен това вграденият USB порт ще иска и USB стек, който не е много толерантен към управление на девайси в реално време. Така че, засега май върви към '2618 + FTDI.
Реално има и трети вариант MSP430F6638, ама той е толкова нов, че засега има само мостри. И е не по-малко бъгав от '5529. Тайната ми надежда е, че с течение на времето проблемите ще намалеят. Иначе то на днешно време контролер без бъгове ( упс, errata ), няма.
Сега все още съм на етап "събиране на мнения", че веднъж решиш ли, после по-трудно се прави завой.
И си мисля за фърмуера ... Като недраскам нещо по-завършено, ще се постна.
Не може да не може

Венцислав Караджов, 61 год.

viko

  • Бил знаел какво е Мехатроника!
  • *****
  • Публикации: 113
    • Профил
Контролер на базата на MSP430 на Texas Instruments.
« Отговор #5 -: Май 08, 2011, 11:14:30 am »
Добре, супер!  :)

Аз лично ще чакам с нетърпение. За комуникационните възможности, ми се струва, че е най-добре комбинацията от GPS + wifi/RF.
Виктор.

Аматьор

  • Бил знаел какво е Мехатроника!
  • *****
  • Публикации: 107
    • Профил
Re: Контролер на базата на MSP430 на Texas Instruments.
« Отговор #6 -: Май 10, 2011, 07:37:46 pm »
Цитат на: "bateAz"
Луд умора няма....

   
 :D
Бате, това което липсва според мене е индикацията.  Добре би било да има LCD дисплейче и повечко светодиодчета.  Много биха улеснили оживяването на софтуера впоследствие.
Впрочем подобна на твоята идея реализирах преди 2 години и една от задните ми мисли беше контролерчето да се продава.  Впоследствие прецених, че интересът ще е много слаб и все още съм на това мнение.
Използвах по-малко процесорче - MC9S08DZ60 - 32 пиново, но според мене напълно достатъчно за това приложение.   Заложих на SPI за комуникация с други модули - към 7-8 мисля, че са.  Програмира се по RS232.  Хубавото при програмирането е , че програмистът не се интерисува въобще от процесора. Езикът е на високо ниво - BASIC-oподобен.  До 8  процеса  (програми) могат да се изпълняват едновременно.  Слабите страни са липсата на USB и безжична комуникация.  Те за конкретната задача не ми трябваха, пък и не е толкова голям проблем да се добавят.
Немалки усилия положих тогава, но не съжалявам.  
http://www.robotics-bg.com/forum/viewtopic.php?t=782

Пожелавам ти успех в начинанието, пък дано някой използва контролера за друга луда идея.  
http://www.robotics-bg.com/forum/viewtopic.php?t=1413
Голямо шоу ще бъде за хлапетата - не само малките ами и за тия с побелелите коси.
Красимир Милев    51г

viko

  • Бил знаел какво е Мехатроника!
  • *****
  • Публикации: 113
    • Профил
Контролер на базата на MSP430 на Texas Instruments.
« Отговор #7 -: Май 10, 2011, 08:13:29 pm »
Аз мисля, че няма смисъл от дисплей, когато говорим за РОБОТИ, но това е мое мнение. Ето защо:

По-скъпо е. Цената ще нарасне, а това не е много хубаво.
Ще се ползва малко. За какво ти е дисплей на line tracer, сумо робот или робот, който избягва предмети?
Много от нещата, които можеш да изведеш на дисплея, могат да се обозначат и със светодиод.
Трябва ти добър проект, за да има смислени съобщения, но ако си направил такъв, надали е проблем да си добавиш един.

Като заключение:
По-скъпо, ненужно за начинаещи, ако ти е интересно да човъркаш - добави си сам.
Виктор.

Аматьор

  • Бил знаел какво е Мехатроника!
  • *****
  • Публикации: 107
    • Профил
Контролер на базата на MSP430 на Texas Instruments.
« Отговор #8 -: Май 10, 2011, 09:08:57 pm »
Цитат на: "viko"
За какво ти е дисплей на line tracer, сумо робот или робот, който избягва предмети?


За тези дисциплини са излишни и аналоговите входове и изходи, както и стъпковите мотори.  Но използват ли се тези възможности на контролера, дисплеят ще е желателен.

Контролерът и без това претендира да има много възможности.  Не виждам защо трябва да се отказва от дисплей с 4-5 бутонна клавиатура.  Виждам го като допълнителен модул, но той трябва да се монтира много лесно върху основния.
Красимир Милев    51г

viko

  • Бил знаел какво е Мехатроника!
  • *****
  • Публикации: 113
    • Профил
Контролер на базата на MSP430 на Texas Instruments.
« Отговор #9 -: Май 11, 2011, 09:46:22 am »
И аз съм съгласен, че е по-добре да е като допълнителен модул.  :)
Виктор.

bateAz

  • Зомбиран Роботостроител
  • *****
  • Публикации: 186
    • Профил
Контролер на базата на MSP430 на Texas Instruments.
« Отговор #10 -: Май 11, 2011, 11:34:52 am »
"Аматьоре", прегледах с интерес твоята реализация на сумо робот. По-специално контролера. Тъй като вече се замислям и за фърмуера, искам да те попитам за две неща:
1. Писал си, че контролерът ти може да движи до 8 процеса. Това с истински (preemptive) мултитрединг ли си го направил или със кооперативен? Или просто със стейт машини? Ако си си играл да пишеш и интерпретатор за някакъв скрипт от високо ниво, тогава "мултитредингът" може да го прави и интерпретаторът. Лично аз смятам при мен да заложа на последния вариант. Все пак много искам да чуя и твоето виждане по въпроса, защото в момента аз съм на етап, който ти отдавна си го преминал.
2. Имаш някакъв "език от високо ниво". Какъв е той? Някой от разпространените, или твой? Лично аз в момента си мосля за нещо мое ( съвместимо със себе си). Няма да прилича на BASIC (май...) По-скоро нещо като PYTON.

Ти предлагаш да има LCD + бутони. Аз не съм навит. По-скоро ще има някаква връзка с PC и ще се ползва някакво софтуерче за комуникация. RS232 няма да правя, за съжаление този интерфейс няма бъдеще. Доста промишлени и други устройства, които разработвам, на времето са имали RS232, сега остава само USB вместо RS232, появи се RS485. Те това последното ми изглежда по-смислено. Ама така изглежда от моята камбанария, отсрани как е - не знам. Ще се радвам да го чуя.
Не може да не може

Венцислав Караджов, 61 год.

spookyboy

  • Бил знаел какво е Мехатроника!
  • *****
  • Публикации: 103
    • Профил
Контролер на базата на MSP430 на Texas Instruments.
« Отговор #11 -: Май 11, 2011, 01:51:28 pm »
Аз нещо не разбрах: искаш да направиш контролер, т.е. нещо такова или нещо, което го използва (платка?)
Станьо - 20г. - извън чужбина

bateAz

  • Зомбиран Роботостроител
  • *****
  • Публикации: 186
    • Профил
Контролер на базата на MSP430 на Texas Instruments.
« Отговор #12 -: Май 11, 2011, 01:58:38 pm »
Цитат на: "spookyboy"
Аз нещо не разбрах: искаш да направиш контролер, ... или нещо, което го използва (платка?)


Второто. :lol:
"Направи си сам" все пак си има ограниченя.
Не може да не може

Венцислав Караджов, 61 год.

spookyboy

  • Бил знаел какво е Мехатроника!
  • *****
  • Публикации: 103
    • Профил
Контролер на базата на MSP430 на Texas Instruments.
« Отговор #13 -: Май 11, 2011, 02:10:02 pm »
А под програмиране, имаш предвид на програмиране на микроконтролера в твоя контролер? Т.е. ще напишеш firmware (примитивна OS), която да изпълнява външни програми?
Станьо - 20г. - извън чужбина

Аматьор

  • Бил знаел какво е Мехатроника!
  • *****
  • Публикации: 107
    • Профил
Контролер на базата на MSP430 на Texas Instruments.
« Отговор #14 -: Май 11, 2011, 06:41:55 pm »
Цитат на: "bateAz"

1. Писал си, че контролерът ти може да движи до 8 процеса. Това с истински (preemptive) мултитрединг ли си го направил или със кооперативен? Или просто със стейт машини? Ако си си играл да пишеш и интерпретатор за някакъв скрипт от високо ниво, тогава "мултитредингът" може да го прави и интерпретаторът. Лично аз смятам при мен да заложа на последния вариант. Все пак много искам да чуя и твоето виждане по въпроса, защото в момента аз съм на етап, който ти отдавна си го преминал.


 :D
Ами нали съм аматьор - не зная в каква класификация попада това, което съм направил.  Надявам се да ми помогнеш.
Програмата ми е със стъпкова организация.  Всяка стъпка се изпълнява за определено време.  Стъпките от различните програми се изпълняват последователно по ред на номерата на програмите. Броят на изпълнимите програми и техните номера се определят от програмиста на контролерчето.

Цитат на: "bateAz"

2. Имаш някакъв "език от високо ниво". Какъв е той? Някой от разпространените, или твой? Лично аз в момента си мосля за нещо мое ( съвместимо със себе си). Няма да прилича на BASIC (май...) По-скоро нещо като PYTON.


Езикът за програмиране на контролерчето е моя измишльотина.  Ето как може да изглежда една стъпка от програмата:

Step #120
set out:2 3 15
clr out: 8
if in5 then clr out:9
flg1=tim3 and in16 or flg13
if flg1 then jmp s125
flg1=flg1 and in7'
reg2=const15-reg4
if flg1' then stt tim:2 reg2

Mисля, че горе-долу е ясно,  какво се прави в стъпката.

Относно RS232. Aми той е естествено продължение на SCI. За RS485 в общия случай трябва още един пин за определяне посоката на данните.  За няколко метра продължавам да ползвам 232.  Използвам стари лаптопи.  Естествено за едно съвременно изделие за ширпотреба USB е задължително.
Красимир Милев    51г