Jump to content
Българският форум за музиканти

Recommended Posts

Отговорено (Редактирано)

Покрай занимавките с MIDI педалиерата, почти направих и едно многоезично меню за контролер за кафемашина с Arduino (отанаха малко статус екрани извън менюто, както и възможност за запис на настройките в EEPROM паметта, един вид Save Settings...).

Може би трябва малко да го оптимизирам още, да харчи по-малко RAM, но като цяло работи. В интернет има и различни PID библиотеки, с които може да се реализира контрол на температура и налягане. Разбира се, трябва да се направи отделна, галванично изолирана платка за силовата част. Не е сложно, но не съм я разчертавал.

Оставил съм менюта за настройване на параметрите на PID-овете за температура / налягане. Хубаво ще е, ако при тестване, данните могат да се точат и да се онагледяват графично, за да може човек по-лесно да си настрои регулаторите. Ако някой знае нещо, нека сподели.

 

Мисля, че Arduino UNO-то ще има достатъчно пинове за:

-PID Контрол на температура.

-PID контрол на налягане.

-Датчик за наличие на вода в резервоара (по избор).

-Дебитомер (по избор) - ако има таквоз нещо, тогава кафетата може да се настройват не на време, а на обем, което би било гот.

-Може и човек да си свърже съществуващите бутони за кафе/пара, като shortcut-и.

 

Главното затруднение е намирането на свестен датчик за налягане и нагаждането му вътре в машината (нарязване на резби, ползване на адаптери и т.н.).

Ако има мераклии, мога да го доразработя. Ако има и желаещи да се включат, може да кача Arduino проекта в Github, примерно.

Всякаква помощ и информация за достъпни елементи е добре дошла.

 

 

Редактирано от Evtim Djerekarov
Адрес на коментара
Сподели в други сайтове

Отговорено (Редактирано)

Сега вече си има Load и Save  на настройките (както и autosave на default нстройките в EEPROM паметта първия път).

Има си и дефинируем EEPROM Base Address, така че ако се скашка част от EEPROM-а,  може да се флашне с друга стойност на базовия адрес и пак успешно да си Save-Load-ва. Освен това, се сейва със Save Settings в менюто, а не при всяка промяна, защото паметта има около 30-40 хиляди цикла на писане, преди да се сдуха.

Би било много оригинално, ако при Ардуино с повече флаш памет, програмата сама си прави чексума, копира се на второ място, отково с чексума, и се репликира обратно на първото място, докато и на него излезе чексумата, и това машината да прави веднъж в годината, примерно. Така ще може да си живее много дълго програмата, без да "изтече" и да се наложи да се рефлашва. Все пак, кафемашините са топлички, а това малко или много влияе.

Трябва да оптимизирам малко, защото сега заема почти 50% от програмната памет и малко под 40% от RAM на контролерчето. И така може, разбира се, , защото PID-а няма да заеме много, но мисля, че могат да се смъкнат с 10-ина % надолу числата.

Ако направя съответните #define директиви, може човек да си включи един или повече езика в билда. Сега си има български и отделно БГ маймуница, когато дисплейчето няма кирилица.

 

Мисля си също, че може в силовата част да се направи схема с допълнителен оптрон, който контролера трябва да кара да мига с определена честота. Ако е в само светнало или тъмно положение, да спира реотана и помпата, понеже това означава, че може да има повреда в контролера, или да е забил.

 

 

 

Редактирано от Evtim Djerekarov
Адрес на коментара
Сподели в други сайтове

Компоненти по проекта..

20 лв помпичка за вендинг кафе машина (или даже 15 лв) бях намерил в olx, нова, при едни, дето се занимават с поддръжка на такива неща.

Ползвах я за... машинка за гледане на... кълнове, да ги полива :D :D :D 

Адрес на коментара
Сподели в други сайтове

По принцип кафемашините си имат помпа така или иначе. Ти за дебитомер ли говориш?

Най-скъпото и трудно за намиране нещо ми се струва датчикът за налягане на водата, който трябва да има диапазон поне до 15bar и да не се поврежда поне до 30-ина.

Адрес на коментара
Сподели в други сайтове

Обърках се, че е за правене на машинка от scratch.. 


То бая тема, тр. да поровя и да се ориентирам за какво става въпрос.
Усъвършенстван контрол за температура и налягане, да извлечем аромата и вкуса на кафето, според сорт и локация (северен, южен склон, тип почва..) на макс :D

Иначе, на работа жулим капсули Molinari

Адрес на коментара
Сподели в други сайтове

Отговорено (Редактирано)

Да, в общи линии това е идеята. Основните функции трябва да са:

  • Поддържане на зададено налягане и максимално близка до зададена температура при правене на кафе.
  • Поддържане на зададено налягане при преинфузията (1-2 bar, примерно).
  • Помпане на вода "на пресекулки" и оптимална мощност на нагревателя при пускане на пара, така че да не свършва никога парата за капучино, докато в резервоара има вода, а да си излиза на еднаква струя от чучура.

Ако в машината има трипътен (соленоид) клапан:

  • Поддържане на клапана отворен по време на преинфузията/екстракцията.
  • Задаване на гранично защитно налягане в бойлера, над което клапана се отваря и изпуска малко вода/пара във ваната.

Ако в машината има дебитомер:

  • Задаване на точни обеми на всяко кафе (късо, дълго двойно). Когато времето за екстракция излезе различно от зададеното за типа кафе, то тогава машината може да предупреждава да се намали/увеличи размера на зърното при мелене.

Ако има датчик за ниво на водата в резервоара:

  • Влизане в режим Standby и предупреждение, да се напълни резервоара, когато няма вода.

 

Редактирано от Evtim Djerekarov
Адрес на коментара
Сподели в други сайтове

Скоро си купих комплект с механичен датчик за налягане за La Pavoni-то ми. Доста е полезен и ми помогна да правя по-хубаво кафе, но не това ми е думата. Мисля си дали не би могъл да се приспособи някак за дигитално отчитане. Примерно като DIY пианото ми с един CNY70 сензор, който да отчита близостта на пинчето, което върти стрелката? Само давам идеи :)

Адрес на коментара
Сподели в други сайтове

Може да се направи. Обаче вие сте бахти кафеманиаците, събират ми се очите, като отворя тази тема. Изглежда ми като зависимост. :)На мен кафето ми е чуждо.

Адрес на коментара
Сподели в други сайтове

^ По-скоро се крастим, да гоним възможно най-добро кафе. А аз си упражнявам и coding skill-овете на тия малки машинки, да не забравя C. Във всеки случай е интересно. Сега стигнах до PID регулатора и PID Аutotune алгоритъм, като си мисля, че ще работи най-добре, ако има отделни режими на работа, когато сме далече от Setpoint-а и когато сме близо. Също мисля, че трябва да има различен Autotune за статично положение(поддържане на температура), и динамично такова (когато върви кафе и влиза студена вода).

^^ И аз го мислих навремето това с механичния датчик. Със сигурност има начин, да се направи, само че ми се вижда некултурно :D.

Адрес на коментара
Сподели в други сайтове

Засега, експериментите с ардуиното и все-още-некалиброваната ми термодвойка (може би ще ползва термистор в крайна сметка), показват, че механичният термостат на тестовата Gaggia Espresso превключва в диапазон горе-долу +- 7 и половина градуса, което си е амплитуда от 15°C, което НИКАК не е добре. Подозирам, че и при другите машини е подобно, макар че сигурно има по-прецизни термостати, където разликата не е толкова фрапантна.

Адрес на коментара
Сподели в други сайтове

Отговорено (Редактирано)

Сега чертая разни платчици - контролен панел с дисплей 2x16 символа и 8 бутона:

  • нагоре, надолу, наляво, надясно
  • Power
  • 1x кафета (единични)
  • 2х кафета (двойни)
  • пара

Нямам много добра представа как да работят шорткът копчетата за кафето, но ми се струва, че ще е добре, ако единично натискане пуска съответното единично или двойно кафе, а задържането им кара дисплея да показва съответните ristretto / espresso / lungo / doppio, и при пускането му да почва да прави такова кафе.

Power бутона веорятно ще кара машината просто да минава в режим standby и обратно.

Бутона за пара просто ще вклюва режим пара, подканвайки потребителя да отвори клапана на чучура.

Имaм идея и за два светодиода:

  • червен за power (който свети и в Standby, където дисплея почти изгасва).
  • зелен за Temp OK.

Може евентуално да мигат при нещо важно.

Всички 8 бутона ходят на един пин A0 на контролера (горе-долу отчитане 0-59 е нищо, 60-180 е бутон 1, 181 - 240 е бутон 2 и т.н.).

Отворът за трите копчета на Gaggia Classic e нещо от сорта на 68 на 42мм, а на Baby Twin е 77м окръжност. Мисля да драсна платки за двата вида панелче. Хубаво ще е да се ползва миниатюрен 2х16 дисплей, но ще работи и с големия, макар при Класик-а, да е на границата.

Записвам си за себе си мапинг схема при Аrduino UNO:

Панел:

  • А0 - клавиатура - по напрежението усеща натиснат бутон.
  • 10 - пин за зеления LED, който индикира, че температурата е достигната.

2 x 16 дисплей:

  • A4, 3, 4, 7 (D4 - D7) - пазя пин 2 за Interrupt, ако има дебитомер
  • 5 - яркост на подсветката (PWM)
  • 8, 9 - RS, RW

Помпа:

  • А1 - Напрежение от датчик за налягане
  • A2 - напрежение от термометъра (ако ползваме термомометър с термистор
  • A2, A3, 2 - настроени като цифрови входове (ако ползваме I2C термометър от сорта на MAX31855 с термодвойка или друг I2C прибор).

Силова част:

  • 6 - 1kHz PWM за помпата (към оптрон)
  • 11 - ако имаме соленоид (трипътен клапан), този пин го управлява (през оптрон).
  • 12 - софтуерен 2Hz PWM за реотана (към zero-crosing оптотриак);
  • 13 - Защита - софтуера кара този пин да превключва LOW/HIGH с ниска честота (20-50Hz), без което всичко спира (не работят оптроните, от което не работи реотана и помпата). Това гарантира, че при забиване на контролера, няма да остане реотната включен.

Други датчици:

  • A5 - настроен като цифров вход - ако има датчик за нивото на водата в резервоара
  • 2 - ако има дебитомер, се слага на този пин и му се настройва interrupt, но тогава трябва да ползваме термисторен термометър, че пин 2 да ни е свободен.

 

Редактирано от Evtim Djerekarov
Адрес на коментара
Сподели в други сайтове

Отговорено (Редактирано)

Нещо такова ще е схемата на защитата.

PULSE_IN в случая e пин 13 или друг пин, който НЯМА PWM. Софтуерно неговото състояние трябва да се превключва LOW-HIGH с честота, по-голяма от 30-40 Hz, за да работят оптроните. В което и да е друго състояние, в което на PULSE_IN няма пулсация, оптроните спират да работят и всичко по силовата част се изключва. Това е удобно, защото хем пази от забиване на контролера (от бъг, повреда, токов удар), хем е удобен начин за влизане в режим Standby - спира софтуера да "пулсира" този пин и силовата част се изключва само след 100-ина милисекунди. Колекторната верига би могла да се ползва и за Power индикатора - в този случай,  в режим Standby ще остане да свети само дисплея (може доста слабо, через смъкване на PWM стойността на пин 5, който отговаря за яркостта на подсветката).

protection1.png

Редактирано от Evtim Djerekarov
Адрес на коментара
Сподели в други сайтове

Отговорено (Редактирано)

Ами, захванах да чертая финални схеми на KiCAD, който е чудесен безплатен софтуер за схеми/платки/3D визуализация. Засега надрасках схема на предния панел с дисплей/клавиатура/светодиоди и тример за контраст на дисплея. Съвсем малко разбутах подредбата на пиновете с цел по-разбираемо окабеляване. Ако видите грешка, казвайте. Всички пинове освен 12 отиват към портовете на Arduino UNO. 12 отива към силовата платка, чиято схема ще начертая идните дни.sch-keyboard.png

R10, R12 и R13 може и да са нещо от рода на 330-470 ома, ако светят много ярко диодите/дисплея.

За тази схема мисля да начертая кръгла и квадратна платка, които да пасват на мястото на панелите на Gaggia Baby / Gaggia Classic (онази, с тройния ключ) , за да не трябва да се реже или пробива нищо.

Редактирано от Evtim Djerekarov
Адрес на коментара
Сподели в други сайтове

Отговорено (Редактирано)

Продължавам техническият устрем на темата, който не е точно гастрономически.

Леко коригирах схемата на клавиатурата, така че светодиода за Power да е свързан към V+, защото другата платка (power board) дърпа ток към земя, когато не сме в режим Standby. Начертах и схема на силовата платка. Идеята е, от двете платки да потеглят лентови кабели към трета, адаптерна платка, която отдолу има pin header-и които точно пасват на Ардуиното. Трябва да щракнете на голямата схема, за да се отвори по-ясно изображение в нов прозорец.

sch-keyboard.png


sch-powerboard.png

Идеята е, че на KEEP_ALIVE контролера праща правоъгълна вълна с честота >40Hz софтуерно, за да поддържа "жива" силовата част. Това гарантира, че Q1/Q2 дърпат ток от POWER светодиода и от оптроните, които управляват помпата и нагревателя. В противен случай, силовата част се изключва.

Реших да управлявам с реле соленоида, ако има такъв, защото не знам какъв индуктивен пик прави при изключване и ме е страх, да не опатка триака, ако го управлявам с полупроводников прибор. Релето си има отделна земя, за да не модулира земята на сензорите. (токът през него е значителен, от порядъка на 50mA+, а лентовите кабели имат тънки жички).

Термисторът, който може да се ползва е малък термистор със съпротивление от рода на 20K-100К при стайна температура. Може да се подмени R23 с оптимална стойност според избрания термистор. В софтуера ще може да се задава стойност на референтния резистор R23, съпротивление на термистора при стайна температура, бета коефициент на термистора както и офсет (за коригиране на грешка). Нас предимно ни интересува диапазонът 90-105 градуса по Целзий, затова мисля, че това е постановка, гарантираща достатъчна точност в този тесен диапазон.

Дебитомерът (ако се слага) трябва да е от турбинен тип като този:
MS-623371-228x228-product_thumb.jpg

Има три жици - V+, земя и изход от датчика на хол, който дава импулси, като се върти вътре турбинката.

В софтуера ще може да се включва или изключва дебитомера, както и да се настройва, дали има соленоид и сензор за нивото на водата. На дебитомера, ще може да му се настройва честотата (брой импулси на литър), което се мери лесно в сглобена машина - влизаш в режим броене, пускаш 1 литър вода и като изтече толкова, запазваш настройката.

Искам от едната страна на платката да имам конектори (с винтове) за сензори, от другата - конектори (с винтове) за силовата част (помпа, реотани, соленоид), а от трета страна да имам конектор за лентовия кабел.

Чертането на платките ще е предизвикателство мисля, но надявам се, ще се справя. Ако имате идеи откъде да намеря добър и не твърде скъп датчик за налягане, казвайте!

 

Редактирано от Evtim Djerekarov
Адрес на коментара
Сподели в други сайтове

Отговорено (Редактирано)

Дали някой, който често пазарува от ebay (de/fr) може да ми помогне с покупката на 5 броя сензори 0-20 bar (300 psi)? Аз не пазарувам често от ибей а и нямам отделна карта за виртуални разплащания, а доколкото виждам, може да се плаща само с карта. Пък и не разбирам френски/немски.

Става дума за 5 броя 300psi сензори от една от тези обяви :


https://www.ebay.de/itm/Pressure-transducer-or-sender-for-oil-fuel-air-water-Stainless-Steel-AHS/303349547850?hash=item46a10ac34a:g:ZJgAAOSwUeBdwTEP

https://www.ebay.de/itm/NEW-Pressure-transducer-or-sender-for-oil-fuel-air-water-Stainless-Steel-L2KS/124236463656?_trkparms=aid%3D1110006%26algo%3DHOMESPLICE.SIM%26ao%3D1%26asc%3D20201210111314%26meid%3Db0402c1d42cb4687bbab895d0a82bfb8%26pid%3D101195%26rk%3D1%26rkt%3D12%26mehot%3Dpf%26sd%3D303349547850%26itm%3D124236463656%26pmt%3D1%26noa%3D0%26pg%3D2047675%26algv%3DSimplAMLv9PairwiseUnbiasedWeb%26brand%3DMarkenlos&_trksid=p2047675.c101195.m1851

Ако някой ще поръчва нещо от там, или може да ми помогне, може да се разберем, да му платя. Ще съм много благодарен! Разбира се, ако някой иска да преправи и своя машина с моя ардуино проект, може да вземе датчици и за себе си, пък аз мога да помогна със платките и настройването.

Редактирано от Evtim Djerekarov
Адрес на коментара
Сподели в други сайтове

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Отговорете в темата...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Предишното ви съдържание бе възстановено.   Свободно редактиране

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Създай нов...

Важна информация!

Поставихме "бисквитки" на вашето устройство, за да направим този сайт по-добър. Можете да коригирате настройките си за "бисквитките" , в противен случай ще предположим, че сте съгласни с тяхното използване.