Комментарии 67
Я думал, что после упоминания белки это очевидно :) Исправил текст, чтобы стало понятнее.
Только прочитал заголовок — сразу подумал про компьютерную мышь. И еще мысли в голове закрутились: это что программа для компьютера, чтобы мерить расстояние пройденное мышью? Но открыв пост был приятно удивлен. :-)
Пинки есть, а где Брейн? )
Можно эксперименты проводить. Кофе мышке предложить.
Значит вы работаете с 8 до 5 и живете один? :)
Надо подключать генератор и например заряжать мобильный :)
Фтопку мобильный! :) А вот обеспечить само устройство резервным питанием как раз возможно.
Тяжеловато будет мышкам бегать с генератором.
Ничуть, мышь даже не заметит нагрузки от подобного микроэлектродвигателя:


Он замечает даже нагрузку от маленького магнитика, пришлось балансировать. Хотя если делать колесо с нуля, сделав подвижную ось, то может быть что-то и получилось бы.
Как замечает? Перестает бегать?
Начинает бегать медленнее, с трудом.
Ничо ничо, пусть мышцу качает.
У меня братан когда катался в ходунках (такая каталка на колесика куда лялку ставят и она вися в спец трусах бегает по полу) так он стал гонять как ракета, стало сыкотно, что перевернется нахрен. Ну взяли ему балласту повесили 10кг. Поначалу у него был баттхерт, потом придрочился и стал гонять как прежде.
У меня братан когда катался в ходунках (такая каталка на колесика куда лялку ставят и она вися в спец трусах бегает по полу) так он стал гонять как ракета, стало сыкотно, что перевернется нахрен. Ну взяли ему балласту повесили 10кг. Поначалу у него был баттхерт, потом придрочился и стал гонять как прежде.
Для передачи данных я за основу взял самый распространённый протокол пультов ДУ — RC-5, для которого у меня уже был код как для приёмника, так и для передатчика (командую телевизором/ресивером с компа), он передаёт по четыре байта данных.
А можно на код взглянуть? (на чём пишете, кстати?) Интересует передатчик — тоже хотел ИК передатчик спаять, но еще не определился с контроллером: TINY25 или MEGA48. Для чего передатчик, говорить не буду — вдруг не получится. ;)
Можно :) Пишу на Си. Передатчик — обычный ИК-светодиод.
Вот код для передачи обычного RC-5:
Вот код для передачи обычного RC-5:
// Макросы для включения/выключения светодиода
#define IR_ON set_bit(PORTD, 4)
#define IR_OFF unset_bit(PORTD, 4)
// Макрос для мигания светодиода с несущей частотой примерно в 36кГц
#define SEND_36KHz { IR_ON; _delay_us(14); IR_OFF; _delay_us(14); }
void send_rc5(uint32_t data)
{
int pos;
// Включение таймера для отсчёта времени. TCNT1 - регистр таймера.
set_bit(TCCR1B, CS12);
// Инициализация
TCNT1 = 0;
while (TCNT1 < 0x125)
SEND_36KHz;
TCNT1 = 0;
while (TCNT1 < 0x8D);
TCNT1 = 0;
while (TCNT1 < 0x15)
SEND_36KHz;
for (pos = 0; pos < 32; pos++) // Последовательно передаём 32 бита
{
TCNT1 = 0;
if (data & (1UL << pos))
{
while (TCNT1 < 0x33);
} else {
while (TCNT1 < 0x0F);
}
TCNT1 = 0;
while (TCNT1 < 0x15)
SEND_36KHz;
}
}
Спасибо! :-]
Тоже на C пишу.
Тоже на C пишу.
Я тут как раз хочу освоить микроконтроллер (MSP430), до этого дел с ними не имел. И задумался вот над чем: везде особая фишка — писать на Ц (и даже иногда на Ц++). Однако глядя на примеры кода, я никак не могу отделаться от мысли, что ассемблер здесь ничем не хуже. В том смысле что удобству привычного Ц-синтаксиса просто негде развернуться: так или иначе приходится возиться с битовыми операциями, простейшими циклами и сравнениями. Разве что ветвления немного нагляднее… Как вы считаете?
Для железа завсегда начинать лучше с нижнего уровня. Когда архитектурой проникнитесь, для скорости можно хоть на си, хоть на бейсике писать с высокой эффективностью.
Я считаю, что Си — это «мультиплатформенный ассемблер»: очень низкий уровень и возможность портируемости. И Си-синтаксис там очень даже к месту.
Предчувствую холивар…
Предчувствую холивар…
Я не оспариваю достоинства Ц, которые мне прекрасно известны. Я оспариваю их применимость в данном случае.
Чего такого особо переносимого дает С в коменте чуть выше? Там кругом узкоспециальные константы. Будет другой процессор — будут другие не только константы, но и способ выполнения тех же операций. Если попытаться перенести логику на другой микроконтроллер — от вышеприведенного Ц-кода останутся только отдаленные воспоминания в названиях некоторых функций. А вводить более высокий уровень абстракции — означает иметь существенный оверхед по количеству кода, что весьма критично в микроконтроллерах.
Единственное, что всякие while и if писаться будут одинаково, без всяких JNZ, JNC и т.п. мнемоник… Но использование всего этого никак не отменяет подробного изучения архитектуры микроконтроллера, с использованием специфичных констант. Выигрыш есть, но на мой взгляд — ничтожный, потому и задал вопрос.
Чего такого особо переносимого дает С в коменте чуть выше? Там кругом узкоспециальные константы. Будет другой процессор — будут другие не только константы, но и способ выполнения тех же операций. Если попытаться перенести логику на другой микроконтроллер — от вышеприведенного Ц-кода останутся только отдаленные воспоминания в названиях некоторых функций. А вводить более высокий уровень абстракции — означает иметь существенный оверхед по количеству кода, что весьма критично в микроконтроллерах.
Единственное, что всякие while и if писаться будут одинаково, без всяких JNZ, JNC и т.п. мнемоник… Но использование всего этого никак не отменяет подробного изучения архитектуры микроконтроллера, с использованием специфичных констант. Выигрыш есть, но на мой взгляд — ничтожный, потому и задал вопрос.
На счёт оверхеда не соглашусь. Если грамотно писать код и настраивать компилятор, то итоговая прошивка мало будет отличаться от ассемблерной. Читаемость же кода повышается в разы.
Всё это так, пряморукость подразумевается по умолчанию. Но высокий уровень абстракции неизбежно увеличивает количество кода по сравнению с прямой работой. А в случае прямой работы с оборудованием преимущество Ц перед АСМ уменьшается (но не обнуляется).
Другое дело, если девайс реализован одинаково на разных микроконтроллерах — тут читаемость (как результат — легкость поддержки и развития) однозначно перевешивает все недостатки. Но мне что-то в голову не приходит случай, когда один и тот же по логике работы девайс зачем-то реализуется на двух разных микроконтроллерах. Это ведь не андроид и айос, пользователь разницы не заметит.
В общем, я делаю вывод такой: если устройство довольно простое — преимущества Ц малозначительны. Если логика довольно развитая — то важность читаемость резко возрастает, но тут легко упереться в ограничение по размеру кода. Короче, на мой взгляд, диапазон применения Ц — довольно узкий, и выбор неоднозначный.
Кажется, наш холивар закончился.
Другое дело, если девайс реализован одинаково на разных микроконтроллерах — тут читаемость (как результат — легкость поддержки и развития) однозначно перевешивает все недостатки. Но мне что-то в голову не приходит случай, когда один и тот же по логике работы девайс зачем-то реализуется на двух разных микроконтроллерах. Это ведь не андроид и айос, пользователь разницы не заметит.
В общем, я делаю вывод такой: если устройство довольно простое — преимущества Ц малозначительны. Если логика довольно развитая — то важность читаемость резко возрастает, но тут легко упереться в ограничение по размеру кода. Короче, на мой взгляд, диапазон применения Ц — довольно узкий, и выбор неоднозначный.
Кажется, наш холивар закончился.
У нас в офисе живут 2 дэгу.
ru.wikipedia.org/wiki/Дегу
А в новогодние праздники еще пополнение в виде 3 штук родилось, может их параметры еще измерите? :)
Готовы отдать одного для экспериментов :)
ru.wikipedia.org/wiki/Дегу
А в новогодние праздники еще пополнение в виде 3 штук родилось, может их параметры еще измерите? :)
Готовы отдать одного для экспериментов :)
И у нас в офисе живут 2 дэгу о_О
Новый тренд?
Новый тренд?
А может у Вас живет наше потомство? :)
Где брали?
Где брали?
а у нас 2 песчанки жили (Вайма и Ксюша), но офис-менеджер сказала, что их надо убрать… (
раньше трансляция из клетки была, но сейчас нет возможности ее поддерживать(
если кому интересно, вся история тут — peschanok.net/
раньше трансляция из клетки была, но сейчас нет возможности ее поддерживать(
если кому интересно, вся история тут — peschanok.net/
У меня дома 4 дегу. Было 2, думали 2 девочки, оказалось, что один мальчик :D Теперь мама с дочкой живут, а папа с сыном. Остальных отдали в хорошие руки. У дегу есть в жизни цель. Он хочет все сгрызть. Так что он скорее всего сгрызет спидометр, как грызет полки, гамак, колесо, прутья, миски и тд.
Ужасаюсь, как им не лень 100 км в день бегать?
Живой генератор энтропии, случайность значений зависит от движения мышки
А что, может получиться неплохой заменитель random.org. Только там изначально использовался радиоприемник как источник энтропии, а здесь — мышки. Предлагаю зарегить домен randomouse.org и взять слоган: «Случайные числа еще никогда не были такими теплыми и живыми!»
Но вообще интересно — вы можете увидеть какие то корреляции того, как мышь бегает с какими то событиями в ее жизни? Что дает ей бег?
По поводу авторского P.P.S.: почитав комменты я понял что вы здесь далеко не самый сумасшедший. (Это я в хорошем смысле слова).
Хмм… появилось коварное желание узнать: а сколько пробегает Ролик компьютерной мышки за месяц?
Практического применения 0,00001, но интерес негодует в отсутствии таких данных.
Практического применения 0,00001, но интерес негодует в отсутствии таких данных.
Солнечную баратею + ионистор не думали использовать для питания?
Эм, тут нет прямых солнечных лучей. Да и смысла в этом не вижу. Хотя глупо после всего этого говорить о смысле :)
Мне кажется прямые солнечные лучи и не нужны для такой нагрузки. Должно хватить и обычного света. Калькуляторам и клавиатурам же хватает. Хотя могу и ошибаться.
Как провода от посягательств грызунов защитили? У меня была крыса так она грызла все до чего могла дотянуться )))
Как провода от посягательств грызунов защитили? У меня была крыса так она грызла все до чего могла дотянуться )))
Зачем батарею? К колесу генератор, генератор к ионистору. Мышь бегает и обеспечивает питание для схемы.
Я где-то читал, что делать на плате замкнутое кольцо из общей или «питалищной» дорожки — большое зло (типа начинает работать как антенна). У вас как, не глючит девайс?
Всегда так делаю, никаких проблем не было, но я в этом деле чайник. Надо поспрашивать у шарящих людей.
Зло зло. При хорошем скачке поля в этой петле может навестить иголка которая переклинит МК. Земля вообще в идеале должна быть полигоном сплошным, без петель, а лучше прошитая насквозь с внешним слоем.
Как всё это сложно для мозга обычного программиста :) Спасибо, учту.
Ты когда землю разводишь не допускай, что ее сопротивление равно нулю. Не ноль оно, хотя близко. А раз не ноль, то может быть падение напряжения при протекании тока.
А броски тока могут быть колоссальными, причем даже там где, казалось бы, нет нифига. Ну стоит кондер на пол микрофарады, но его заряд на бесконечно малом промежутке времени = кз, а значит ток уходит в космос. Раз ток бешеный, то будет бросок земли (перекосы напряжения) все это произойдет мгновенно, в виде иголки в питании, но она может быть столь резкой, что будет быстрей чем такт МК и мк может переклинить.
То же касается и разводок реле, разрыва ее индуктивностей.
А еще прикол — реле размыкает нагрузку. На контактах проскакивает искра, помехи с искры ловит катушка реле и отправляет прямиком по мозгам контроллеру. Получается прикольный глюк. Когда схема без нагрузки радостно щелкает релешками, а когда реле что то переключает нагруженное, то все виснет нафиг. Хотя, казалось бы, связи электрической нет.
А броски тока могут быть колоссальными, причем даже там где, казалось бы, нет нифига. Ну стоит кондер на пол микрофарады, но его заряд на бесконечно малом промежутке времени = кз, а значит ток уходит в космос. Раз ток бешеный, то будет бросок земли (перекосы напряжения) все это произойдет мгновенно, в виде иголки в питании, но она может быть столь резкой, что будет быстрей чем такт МК и мк может переклинить.
То же касается и разводок реле, разрыва ее индуктивностей.
А еще прикол — реле размыкает нагрузку. На контактах проскакивает искра, помехи с искры ловит катушка реле и отправляет прямиком по мозгам контроллеру. Получается прикольный глюк. Когда схема без нагрузки радостно щелкает релешками, а когда реле что то переключает нагруженное, то все виснет нафиг. Хотя, казалось бы, связи электрической нет.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Счётчик оборотов мышиного колеса