Pull to refresh

Comments 45

Видео будет! Но у меня проблема с перфекционизмом. Домашние камеры / телефоны не передают всей красоты.
UFO just landed and posted this here
Вот это я понимаю — инженерный подход!
А где заказывали платы?
Очень крутое место, рекомендую: http://dirtypcbs.com
10 плат 5х5 см за $14 или 30 плат 5x5 см за $28, т.е. около 25 центов за квадратный дюйм, с бесплатной доставкой.
Но есть несколько нюансов — они никак не помогают с платами, просто давай им gerber файлы и жди, пока придут, практически молча, не считая нескольких статусов (at board house, shipped)
Они утверждают, что делают платы только для прототипирования, чтобы не было придирок к качеству, но по факту они делают платы хорошо.
Еще один нюанс — влепляют на шелк свои номера, без возможности проконтроллировать, куда именно, но по опыту они стараются впихнуть его так, чтобы смотрелось хорошо.
Думаю, будет полезной статья о специфике подготовки плат для подобных сервисов… С примерами экспорта из популярных программ…
Поддерживаю: barabanus, реквестируем статью на эту тему)
Сколько времени обычно проходит от момента отправки им gerber-файлов до момента, когда платы уже у вас?
Примерно три недели: одна на производство, две на доставку в Украину. В этот раз на доставку ушло три с половиной недели, поскольку в Гонгконге в последнее время стали тщательнее осматривать выезжающие машины, но это, возможно, временное явление.
Нюансов там море.
Могут вместо 10 плат прислать 1 или 2, если речь про protopack (официально на сайте прописано).
Требования к плате прописаны очень невнятно и с ошибками.
Сайт — типичная поделка на php (http://dirtypcbs.com/view.php), и заливать свои данные туда… ну не знаю.
Это то, что с ходу находится.

Они имели ввиду не одну или две, а плюс минус одну или две. Т.е. для прототипов это от 8 до 12 плат. В первый раз они мне вообще по ошибке прислали 20.
Красивый код, демонстрирующий, что и под ардуину можно писать шикарно.
Особо приятное место
  int32_t mul256(int32_t x) { return x << 8; }
  int32_t mul240(int32_t x) { return (x << 8) - (x << 4); }
  int32_t mul208(int32_t x) { return (x << 7) + (x << 6) + (x << 4); }
  int32_t mul176(int32_t x) { return (x << 7) + (x << 5) + (x << 4); }
  int32_t mul144(int32_t x) { return (x << 7) + (x << 4); }
  int32_t mul96(int32_t x)  { return (x << 6) + (x << 5); }
  int32_t mul48(int32_t x)  { return (x << 5) + (x << 4); }
  
  typedef int32_t (*fmul32)(int32_t);
  const fmul32 fmulVec[4] = { mul96, mul176, mul240, mul256 };
  
  // calculate FFT[10] for 32 samples
  uint8_t fft10() {
    int32_t a = 0;
    for (uint8_t i = 0; i < 4; ++i) {
      a += fmulVec[i](sampleAccA[i + 1]);
    }


Массив указателей на функции — прекрасный способ избавится от «китайского стиля» и сэкономить место в программной памяти.
Все верно, это было сделано именно из необходимости сэкономить место.
В следующей итерации — избавление от ардуиновского main, что добавляет еще около 200 байт.
Собственно говоря, от Arduino после этого мало что остается.
Библиотеки же ардуиновские не используются?
Весь код переписывается на чистом С и все.
Можно заодно таблицу векторов урезать (ассемблер чутка нужен), если еще памяти нужно будет.
Замечательная история. Это как детектив, фантастика и приключение одновременно для радиолюбителя. Текст, иллюстрации — браво! Спасибо.
Перейти полностью на SMD, одна плата вместо двух, батарейка CR2032(можно 2016) в держателе, полевичёк вместо DC/DC для отключения от батарейки.
… как то так.
А вообще здорово что где-то есть люди с таким энтузиазмом вливающиеся в электронику и прграммирование её!
Я вас понял! Но там нужно около 55 мА ток, неужели таблетка выдержит?
55мА это где вы намеряли на батарейке или за DC/DC?
За DC/DC. Девять светодиодов по пять с чем-то миллиампер каждый плюс контроллер на 8 МГц потребляют 55 мА.
Емкость CR2032 >200mAh, правда длительный разрядный ток небольшой, но мА 8-10 даст без проблем. Светодиоды придется подыскать менее прожорливые, 10мА для контроллера тоже сильно много какой нибудь PIC или MSP легко в <1мА впишутся. К тому же это ведь свечи на торте светодиоды мерцают, а значит не горят все вместе.
тыц
А почему FFT а не полосный FIR фильтр?
Мне пока не хватает знания теории, за подсказку спасибо.
Очень интересный тортик получился. Скажите, а чем обусловлен выбор в пользу пьезодатчика? Возможно, стоит обратить внимание на миниатюрные электретные микрофончики, там и усилитеный каскад уже встроен?
Пьезодатчик только из эстетических соображений.
Программа на C++ для Arduino IDE
где Вы там C++ увидели?
Как минимум — переменные объявлены где попало. А вообще, в Arduino этот код компилится именно как C++
Не согласен. Общеизвестные компиляторы C (GCC, IAR) по умолчанию разрешают «раскидывание» переменных. Классов, объектов в модуле нет. На язык C похоже, да, но не на C++.

"А вообще, в Arduino этот код компилится именно как C++"
для меня это новость. Не подскажете, откуда информация?
Для меня это тоже была новость, пока я не получил Arduino Starter Kit. У них чуть ли не в первых уроках используется Serial.begin(..) и Serial.print(..)

Еще, помню, была библиотека от Adafruit по работе с LED матрицей, там у них тоже все операции через объект.
Тут вообще можно пойти по какому-нибудь нестандартному пути, поставить например дальномеры или еще что то неожиданное придумать. Меня как раз недавняя статья (термометр из дальномера) по этому поводу приятно порадовала.
Можно со временем добавить на сайт каунтер сколько тортиков уже испечено и отправлено своим заказчикам)))
А можно глупый вопрос. Почему конденсатор 10мкФ подключается к источнику питания через транзистор без резистора?
Ток, заряжающий конденсатор, уже ограничен 100к резистором в базе транзистора — это примерно то же самое, как если бы я подключил 100к / 200 = 500 Ом последовательно с конденсатором (где 200 — это грубое округления беты транзистора).
Понятно, спасибо.
Хорошая статья, только есть вопрос: почему тортик квадратный? А конденсатор бы заменить на танталовый меньшей емкости, можно будет сэкономить место
Круглый вариант возможен в будущем. Если заказывать круглые платы, то это уже нужен v-cutter, а это другой ценовой диапазон для малых партий.
Понравилась минимальная концепция сайта.
Интересно — есть ли заказы.
Такая информация появится, когда я добавлю счетчик испекшихся тортиков.
Лучше использовать интегральный синхронный конвертер, например
MAX1724, эффективнее будет.

И еще, не вижу причины использовать пьезодатчик вместо электретного микрофона, уменьшатся габариты и, вероятнее всего, увеличится точность.
Фурье — это, конечно, сильно, имхо хватит простейшего фильтра (КИХ или БИХ).
А что, в самом деле так критично было использовать окно отличное от прямоугольника? Прямо не верится, что в таком применении (да еще и на 10 точек фурье!) действительно ощущается разница между прямоугольным окном и Ханнингом.
Спасибо большое за подсказку! Крутая микросхема!
Она в несколько раз дороже, но не требует диода Шоттки и, судя по доке, более эффективная.

Насчет окна, так получилось, что я поехал на отдых к родителям с прототипом и программатором, но без возможности менять что-то в железе. Смеркалось, и я решил попробовать наложить окно Ханнинга — чувствительность возросла в разы! Позже я пробовал другие функции окна, но они давали худший результат. Я пересматриваю сейчас свои сгенеренные картинки (минута шума, задувания и шорохов), но они из каких-то других экспериментов с тортиком, так что не могу показать более наглядно.
Sign up to leave a comment.

Articles