Комментарии 37
Спасибо за статью!
А где брали такой корпус? Судя по всему у него еще есть отсек под два АА аккумулятора?
А где брали такой корпус? Судя по всему у него еще есть отсек под два АА аккумулятора?
Я бы предположил что для двух 18650 аккумуляторов.
Следующим шагом должна быть интеграция этой штуковины с CI-сервером для генерации ацкой сирены при поломанном билде
Под windows 7 есть очень простой способ писать в любой COM-порт из командной строки:
powershell "$port= new-Object System.IO.Ports.SerialPort COM10,9600,None,8,one; $port.open(); $port.WriteLine(«1»); $port.Close()"
Но я все равно не понял, почему бы вам просто не подключить колонки к серверу?
powershell "$port= new-Object System.IO.Ports.SerialPort COM10,9600,None,8,one; $port.open(); $port.WriteLine(«1»); $port.Close()"
Но я все равно не понял, почему бы вам просто не подключить колонки к серверу?
Спасибо за способ, про PowerShell не подумал. Хотя это всё равно был бы велосипед из под PHP.
почему бы вам просто не подключить колонки к серверу?Интересно было поковыряться с MPS430, а так, конечно можно и на Си написать, чтоб висело сервисом, и проигрывало звук в колонки. Безо всяких коробочек на столе.
то есть теперь можно не только мигать и но бибикать на все тона?)
в принципе можно было и встроенной пищалкой проиграть…
в принципе можно было и встроенной пищалкой проиграть…
Вот всегда, когда напрямую цепляют любой элемент (зуммер в данном случае) к порту контроллера, у меня возникает вопрос: а вы уверены, что ток потребления не привысит максимально допустимый? И что на двадцатом коммите вместо мелодии вы не услушите «пук» и ножка контроллера отвалится?
Те же мысли. Автор, учи матчасть (:
Зуммер и вообще всё, что может потреблять ток выше, чем указано в даташите на МК для его ножек, должно подключаться через транзистор или специальную микросхему-драйвер типа L293. Также можно ограничить ток, отдаваемый ножкой, при помощи резистора: вспоминаем закон Ома (упрощённый вариант): I = U/R; этот способ обычно применяют при подключеннии светодиодов: стандартный светодиод потребляет около 5 мА, что при напряжении 5 В даёт нам сопротивление ограничивающего резистора в 1 КОм.
Зуммер и вообще всё, что может потреблять ток выше, чем указано в даташите на МК для его ножек, должно подключаться через транзистор или специальную микросхему-драйвер типа L293. Также можно ограничить ток, отдаваемый ножкой, при помощи резистора: вспоминаем закон Ома (упрощённый вариант): I = U/R; этот способ обычно применяют при подключеннии светодиодов: стандартный светодиод потребляет около 5 мА, что при напряжении 5 В даёт нам сопротивление ограничивающего резистора в 1 КОм.
Спасибо, будем учиться (:
Не могли бы вы, для новичков, набросать схему подключения через резистор, транзистор и драйвер.
Очень любопытно, а то встречал сборку где и сервопривод напрямую к МК подключён. Что видимо совсем не правильно.
Очень любопытно, а то встречал сборку где и сервопривод напрямую к МК подключён. Что видимо совсем не правильно.
сигнальный провод без проблем подключается с выводу мк
Сервомашинки высоокомным сигнальным входом почти не потребляют тока. А схемы подключения легко нагугливаются. Я бы даже постеснялся назвать изображение подключение светодиода через резистор «схемой» — подключения возможно только два и оба равноправны.
при 5мА он будет еле светить. вешайте от 150 Ом совершенно спокойно. Ведь на диоде еще падение напряжения происходит.
Приведенная автором ниже «пищалка» (HC0905F) потребляет до 70(!)mA. Никакого «буфера» по защите предусмотрено в схеме, как я понимаю, не было. Да и схемы нет, зачем тут всё ежу понятно :(
У вас же для начинающих статья? Тогда не хватает некоторых вещей.
1. Питание: почему его не сделать автономным? Сколько потребляет в среднем ваш дивайс?
2. Чем пищит ваше устройство? Почему не приведены характеристики (помимо этого и стоимость) пищалки. Схема её подключения.
3. Energia. Понятно, что это шаг TI привлечь пионеров с Ардуино. Новичков же лучше приучать сразу к правильным инструментам: Code Composer Studio с той же Grace не отнимет сильно больше времени у начинающего разработчика, а понимания как все работает (а чаще не работает) сильно прибавится.
1. Питание: почему его не сделать автономным? Сколько потребляет в среднем ваш дивайс?
2. Чем пищит ваше устройство? Почему не приведены характеристики (помимо этого и стоимость) пищалки. Схема её подключения.
3. Energia. Понятно, что это шаг TI привлечь пионеров с Ардуино. Новичков же лучше приучать сразу к правильным инструментам: Code Composer Studio с той же Grace не отнимет сильно больше времени у начинающего разработчика, а понимания как все работает (а чаще не работает) сильно прибавится.
1. Питание как раз от USB, по которому и передаются данные. Конечно, можно запитать от аккумуляторов / батареек и интерфейс приёма/передачи реализовать на хардовом COM-порте, но это как-то совсем бессмысленно, если в компьютер всё равно тянется провод. Хотя сделать девайс автономным было бы на самом деле классно. Например с WiFi. Жаль, что у меня сейчас нет подходящих деталей.
2. Пищалка — отдельная история. Первую пищалку я нашёл в куче хлама, который я коллекционирую. Сзади было написано 8Ω 0.5W. Но учитывая её параметры, она довольно тихо пищала. Порылся ещё и нашёл мелкую пищалку типа HC0905F.
3. Я сознательно решил воспользоваться Energia, т.к. сам для себя хотел провести аналогию с уже знакомой Arduino IDE и просто сравнить, насколько сложнее будет разобраться с Energia, учитывая все её недоделки и грабли.
CCS 5, кстати говоря занимает около 1 Гб и чтобы получить прямую ссылку на скачивание необходимо правильно заполнить форму на сайте. В противовес, дистрибутив Energia весит примерно 80 Мб, и скачивается напрямую.
Кроме того, Energia «из коробки» работает субъективно проще для новичков.
2. Пищалка — отдельная история. Первую пищалку я нашёл в куче хлама, который я коллекционирую. Сзади было написано 8Ω 0.5W. Но учитывая её параметры, она довольно тихо пищала. Порылся ещё и нашёл мелкую пищалку типа HC0905F.
3. Я сознательно решил воспользоваться Energia, т.к. сам для себя хотел провести аналогию с уже знакомой Arduino IDE и просто сравнить, насколько сложнее будет разобраться с Energia, учитывая все её недоделки и грабли.
CCS 5, кстати говоря занимает около 1 Гб и чтобы получить прямую ссылку на скачивание необходимо правильно заполнить форму на сайте. В противовес, дистрибутив Energia весит примерно 80 Мб, и скачивается напрямую.
Кроме того, Energia «из коробки» работает субъективно проще для новичков.
А зачем тут микроконтроллер? Он как ни крути подключен к компьютеру, почему не воспроизводить компьютером?
Вы почти ответили на свой же вопрос: затем, чтобы выпендриться с MSP. Я и сам, когда познакомился с Arduino, тоже подобной фигнёй страдал. Теперь вот осваиваю STM32, чтобы страдать более крутой фигнёй.
А вообще, меня позабавило то, что автор в начале статьи пишет, что многие ограничиваются миганием светодиодом — и тут же сам использует МК для того, чтобы пищать, что мало отличается от вышеупомянутого мигания :D
А вообще, меня позабавило то, что автор в начале статьи пишет, что многие ограничиваются миганием светодиодом — и тут же сам использует МК для того, чтобы пищать, что мало отличается от вышеупомянутого мигания :D
Поначалу я пошёл по пути, пройденному с Arduino, но знакомые библиотеки не подключились «из коробки», и пришлось читать .h файлы, гуглить, и городить свои реализации того же Tone. Никто и не говорит, что пример сильно сложнее мигалки.
Я буду рад, если это окажется кому-то полезным. Кроме того в статье описана связь МК в качестве управляемого компьютером девайса. С радостью почитаю ваши статьи по STM32.
Я буду рад, если это окажется кому-то полезным. Кроме того в статье описана связь МК в качестве управляемого компьютером девайса. С радостью почитаю ваши статьи по STM32.
О том же подумал :).
Даже если компьютер без звуковой карты, то с пищалкой уж точно.
Даже если компьютер без звуковой карты, то с пищалкой уж точно.
Сделайте опрос из серверного «кронджоба» + готовящего данные в каком-то простом текстовом варианте.
Используйте дешевый езернет контролер, они стоит 4-5 уе, самые простые, и будет
интересная тема получается.
Используйте дешевый езернет контролер, они стоит 4-5 уе, самые простые, и будет
интересная тема получается.
Специально поставил перемычки как у автора на первой фотке и залил код «Пример работы с терминалом» и не работает.
Выкидываю это:
меняю mySerial на Serial, перетыкиваю пееремычки RXD и TXD и все работает.
Вот для меня загадка такого поведения ланчпада.
У кого то работает, а кому то нужно перемычки менять.
Кто нибудь может рассказать новичку почему так?
Выкидываю это:
//#include <TimerSerial.h>
//TimerSerial mySerial;
меняю mySerial на Serial, перетыкиваю пееремычки RXD и TXD и все работает.
Вот для меня загадка такого поведения ланчпада.
У кого то работает, а кому то нужно перемычки менять.
Кто нибудь может рассказать новичку почему так?
Сам себе отвечу.
На первой фотке воткнута M430G2553, а судя по принт скрину Energia, код автор заливает в M430G2452.
Для этой МК перетыкивать перемычки для общения с COM не нужно.
Вот и разгадка.
На первой фотке воткнута M430G2553, а судя по принт скрину Energia, код автор заливает в M430G2452.
Для этой МК перетыкивать перемычки для общения с COM не нужно.
Вот и разгадка.
Думаю, нужно нутро TimeSerial.h просматривать.
Ланчпад поддерживает софтовый и хардварный UART (выбирается как раз положением перемычек).
В хардовом — вы просто задаёте режим работы внутреннего юарт и пихаете целый байт для передачи ему в регистр. А он уже сам с нужным битрейтом занимается низкоуровневой пересылкой/проверкой. По завершению отправки юарт выдаёт прерывание — и вы суёте ему следующий байт, и т.д. При этом пины для приёма/передачи жёстко заданы. Из комплектных МК хардовый юарт поддерживает чип 2553.
В софтовом варианте вы настраиваете таймер на нужный битрейт и самостоятельно дрыгаете пинами по прерыванию таймера согласно протоколу юарт (поштучно пересылаете нужные биты и контрольные/стоповые сигналы). При этом вы сами определяете, через какие пины передаёте и принимаете сообщения (и потому можно использовать любые пины, которые способны вызывать прерывания, а если умудриться обойтись без прерываний — то вообще любые).
В поставляемых примерах принято (не знаю, почему) софтовый юарт делать на пинах, противоположных хардовому. Т.е. перемычки на плате просто меняют коммутацию rx/tx. В случае с хардовым сработает только «поперечное» положение перемычек; а в софтовом варианте вы можете подправить программу под любое из положений.
Это я к чему? Пока не заглянете в TimeSerial.h — не узнаете, как оно там сделано внутри. Если там софтовый юарт (а что-то мне подсказывает, что скорее всего именно он) — то назначение выводов может стоять какое угодно, и простейший способ выяснить просто запуская тестовый пример — «метод тыка».
Ланчпад поддерживает софтовый и хардварный UART (выбирается как раз положением перемычек).
В хардовом — вы просто задаёте режим работы внутреннего юарт и пихаете целый байт для передачи ему в регистр. А он уже сам с нужным битрейтом занимается низкоуровневой пересылкой/проверкой. По завершению отправки юарт выдаёт прерывание — и вы суёте ему следующий байт, и т.д. При этом пины для приёма/передачи жёстко заданы. Из комплектных МК хардовый юарт поддерживает чип 2553.
В софтовом варианте вы настраиваете таймер на нужный битрейт и самостоятельно дрыгаете пинами по прерыванию таймера согласно протоколу юарт (поштучно пересылаете нужные биты и контрольные/стоповые сигналы). При этом вы сами определяете, через какие пины передаёте и принимаете сообщения (и потому можно использовать любые пины, которые способны вызывать прерывания, а если умудриться обойтись без прерываний — то вообще любые).
В поставляемых примерах принято (не знаю, почему) софтовый юарт делать на пинах, противоположных хардовому. Т.е. перемычки на плате просто меняют коммутацию rx/tx. В случае с хардовым сработает только «поперечное» положение перемычек; а в софтовом варианте вы можете подправить программу под любое из положений.
Это я к чему? Пока не заглянете в TimeSerial.h — не узнаете, как оно там сделано внутри. Если там софтовый юарт (а что-то мне подсказывает, что скорее всего именно он) — то назначение выводов может стоять какое угодно, и простейший способ выяснить просто запуская тестовый пример — «метод тыка».
Правильно подметили. Тем более у автора один МК на картинке, другой в проекте использован.
Разница важна, так как M430G2553 имеет на борту полноценный UART, 52-ой же только софтовый.
Разница важна, так как M430G2553 имеет на борту полноценный UART, 52-ой же только софтовый.
у меня этот код
#include
TimerSerial mySerial;
// Начальные установки
void setup() {
mySerial.begin();
mySerial.println(«Welcome to CommitBeep 1.0»);
}
// Главный цикл
void loop() {
while (mySerial.available()) {
char inChar = (char)mySerial.read();
mySerial.write(inChar);
delay(100);
}
}
не компилится:
core.a(TimerSerial.cpp.o): In function `TimerSerial::begin(unsigned long)':
/media/heap/data/soft/energia/energia-0101E0008/hardware/msp430/cores/msp430/TimerSerial.cpp:104: undefined reference to `__udivmodsi4'
collect2: выполнение ld завершилось с кодом возврата 1
Это все на ubuntu, launchpad v1.5, M430G2553, перемычки Rx Tx повернуты на 90 градусов.
Куда копать полному новичку в этих вопросах?
#include
TimerSerial mySerial;
// Начальные установки
void setup() {
mySerial.begin();
mySerial.println(«Welcome to CommitBeep 1.0»);
}
// Главный цикл
void loop() {
while (mySerial.available()) {
char inChar = (char)mySerial.read();
mySerial.write(inChar);
delay(100);
}
}
не компилится:
core.a(TimerSerial.cpp.o): In function `TimerSerial::begin(unsigned long)':
/media/heap/data/soft/energia/energia-0101E0008/hardware/msp430/cores/msp430/TimerSerial.cpp:104: undefined reference to `__udivmodsi4'
collect2: выполнение ld завершилось с кодом возврата 1
Это все на ubuntu, launchpad v1.5, M430G2553, перемычки Rx Tx повернуты на 90 градусов.
Куда копать полному новичку в этих вопросах?
Скажите пожалуйста, вы специально обошли стороной стандартный механизм хуков svn для получения данных о коммитах? Как-то громоздко выглядит curl и парсинг раз в минуту веб-морды для svn, когда можно в post-commit записать одну-единственную строчку с вызовом бикалки. Получится практически real-time информирование.
Более того, при использовании проверок в pre-commit, фейлы можно обозначать какой-нибудь сиреной и выводить на светодиодное табло логин провинившегося :)
Еще можно подумать в сторону использования BlueTooth, ZigBee или других беспроводных технологий, чтобы отвязать устройство от компьютера.
Более того, при использовании проверок в pre-commit, фейлы можно обозначать какой-нибудь сиреной и выводить на светодиодное табло логин провинившегося :)
Еще можно подумать в сторону использования BlueTooth, ZigBee или других беспроводных технологий, чтобы отвязать устройство от компьютера.
Вероятно я всё пропустил. У клиента SVN есть возможность держать соединение с сервером и быть в курсе всех событий?
Я имел ввиду хуки на сервере, подразумевая, что сервер и устройство находятся в непосредственной близости. Если вам нужно получать информацию не на сервере — можно складывать события в базу, в очередь, в отдельный файл и т.п., чтобы на заниматься парсингом лишний раз.
Что касается клиента — можно было бы помимо парсинга использовать, например, модуль svn и дёргать svn_log с лимитом.
Что касается клиента — можно было бы помимо парсинга использовать, например, модуль svn и дёргать svn_log с лимитом.
Да, вы правы, так тоже можно, но сервер у нас хоть и близко, но не достаточно. Приходится вызывать всё с клиента.
А раз у нас уже поднята веб-морда, то решили не выдумывать и просто парсить её. Парсинг HTML ничем не хуже парсинга логов, например.
Первоначально вообще была завязка на RSS от Redmine, но от неё отказались, т.к. у Redmine есть кэш, который обновляется при обращении к списку хранилища.
А раз у нас уже поднята веб-морда, то решили не выдумывать и просто парсить её. Парсинг HTML ничем не хуже парсинга логов, например.
Первоначально вообще была завязка на RSS от Redmine, но от неё отказались, т.к. у Redmine есть кэш, который обновляется при обращении к списку хранилища.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Практическое применение MSP430 для web-разработчика