Мазмуну:

Cryptap: ритмге негизделген эшик кулпусу: 5 кадам
Cryptap: ритмге негизделген эшик кулпусу: 5 кадам

Video: Cryptap: ритмге негизделген эшик кулпусу: 5 кадам

Video: Cryptap: ритмге негизделген эшик кулпусу: 5 кадам
Video: Санжар Мади в проекте ER-BATYR: о любви, бунтарстве и праве на ошибки. 2024, Июль
Anonim
Cryptap: ритмге негизделген эшик кулпусу
Cryptap: ритмге негизделген эшик кулпусу
Cryptap: ритмге негизделген эшик кулпусу
Cryptap: ритмге негизделген эшик кулпусу
Cryptap: ритмге негизделген эшик кулпусу
Cryptap: ритмге негизделген эшик кулпусу

Мен hackaday.comдо көргөн бир нече эшиктин кулпусун ачуучу механизмдерден шыктангандыктан, мен аны өз алдымча түзүүнү чечтим. Бул эки баскычтуу интерфейске ээ; бири сырсөздү тапшырууну баштоо жана аяктоо үчүн, экинчиси сиздин сырсөзүңүз болгон ритмге тийүү үчүн. Статус жарыгы дагы бар. Мен муну акыркы бир нече айдын ичинде тазалаган бөлүктөрүмдү колдонуп арзан кура алдым. Мен төлөшүм керек болгон нерселер - бул микроконтроллердин өзү эле, ал 21 доллар болчу (https://www.pjrc.com/teensy/) жана менде мурда болгон сүрөт илинген зым.

Жылдыздар согушу темасын же менин бөлмөмө кирүү үчүн бир нерсени таптоо абдан кызыктуу. Эми, мен дагы бөлмөмө кулпуланып калам деп тынчсыздануунун кажети жок! Мындан тышкары, ал жакшы жана акылдуу сезет.

1 -кадам: Бөлүктөр жана шаймандар

Бөлүктөр жана куралдар
Бөлүктөр жана куралдар
Бөлүктөр жана куралдар
Бөлүктөр жана куралдар

Мен Teensy компаниясын тандадым, анткени бул менин биринчи микроконтроллерим, менде азырынча программист жок. Teensy Mac/Windows/Linux менен шайкеш келген A-miniB USB кабелин жана бекер орнотууну талап кылат. Ошондой эле, он алтылык файлды жүктөө оңой; жөн эле түзүп, Teensy баскычын басыңыз.

Мен үчүн бул долбоордун баасы 21 доллар болду, анын үстүнө сүрөт илинген зым. Көчөдөн келген бөлүктөр кофе перколяторунан (реле, LED, конденсатор) жана роутерден (LED, модулдук уячасы, электр джекси, конденсаторлор) келген. Бекер үлгүлөр 7805 5 вольттуу жөнгө салуучу, баскычтар жана которгуч болгон. Мен дагы EE лабораториясындагы "сынган бөлүктөр" кутусунда көп нерселерди таптым: банан бириктиргичтери жана кабель, зым, sn754410 драйвери, төрт зымдуу баш жана резисторлор. Менде ноутбуктун кошумча зарядкасы бар болчу, анын үстүндө мен кубат үчүн колдонгон элем, жана Apple модеминин кабели бар болчу, анын өтмөгү үзүлгөн. Башка жабдуулар: дубал плитасы. Мен абдан стандарттуу болгон ысык желим тапанчаны, ширетүүчү приборду, ийне файлын жана электр бургулоону колдондум. Мен колдонгон эң өзгөчө нерсе - узун, ийкемдүү кармоочу курал.

2-кадам: Мурунтан бар болгон жабдык

Мурунтан бар болгон жабдык
Мурунтан бар болгон жабдык
Мурунтан бар болгон жабдык
Мурунтан бар болгон жабдык
Мурунтан бар болгон жабдык
Мурунтан бар болгон жабдык
Мурунтан бар болгон жабдык
Мурунтан бар болгон жабдык

Мен буга чейин ушунчалык көп орнотулганына абдан бактылуу болдум. Менин бөлмөм ADAга жеткиликтүү, ал жерде мурунтан эле орнотулган ар кандай түтүктөр, электр кутучалары жана электр эшиктери бар болчу. Кызыкканымдан улам эшиктин соккусун алып салсам, анын байланышы жок экенин байкадым. Эшиктин соккусунан менин бөлмөмдүн ичиндеги бош дубал табакка чейин түтүк бар болчу, ал жерден дагы бир түтүк сыртындагы бош дубал табличкага чейин.

Эшиктин соккусу иштөө үчүн 24V@3A керек дейт, бирок менде болгон 19В, 7.9А электр энергиясы менен камсыз кыла алдым. Эшиктин соккусу поляризацияланган, андыктан полярдуулугуңуз туура экенин текшериңиз!

3 -кадам: Райондор

Райондор
Райондор
Райондор
Райондор
Райондор
Райондор
Райондор
Райондор

Эшиктин соккусун көзөмөлдөө үчүн кофе перколаторунан тапкан релемди колдондум. Бул реле аны башкарыш үчүн 5Вдан ашык TTLге муктаж болгон, ошондуктан sn754410 релени айдаган TTLди 19Вга которуу үчүн колдонулган. Sn754410 чындыгында төрт жарым-жартылай драйвер, ошондуктан мен чиптин 3/4 бөлүгүн текке кетирип жаттым, бирок менде эч кандай күч транзистору жок болчу, ошондуктан мен колдонгон нерсе.

Sn754410 чипинде эки VCC казыгы бар, бири 5В үчүн, экинчиси сиз каалаган чыңалуу үчүн, бул мен үчүн 19В болгон. Бул чынында эле сонун чип. Сиз муну моторлорду жана релейлерди түз айдоо үчүн колдоно аласыз, анткени ал чейрек сайын 1Аны алмаштыра алат жана камтылган коргоочу диоддорго ээ. Маалымат баракчасын карап көрүңүз. Менин схемамда, мен sn754410ду Teensyдин чыккычы менен түз байланыштырдым. Баскычтар активдүү-төмөн деп туташат, бул микроконтроллерлер үчүн абдан кеңири таралган. Алар түздөн -түз Teensy менен туташкан, демек, мен программалык камсыздоону жокко чыгарышым керек. Статус жарыгы Teensy менен 1K ом каршылыгы аркылуу туташат; өзгөчө эч нерсе жок. Район конденсаторлорсуз иштеди, бирок мен аларды кандайдыр бир учурда койдум. Жерге чейин 19В жана 5В электр рельстеринде коргоочу капкактар бар. Teensy программалоодо 5V USBден келген, бирок ал өз алдынча иштеп жатканда, ноутбуктун кирпичинен күч келет. Мен 7805 жөндөгүчүн 19Вга түз туташтырганымда, ал чындап эле ысык болуп калды, ошондуктан мен кирүүчү чыңалууну жана токту регуляторго чектөө үчүн резисторлор тармагын койдум. Бул kludge болчу, бирок азыр бардыгы башкарылуучу температурада.

4 -кадам: Аны бирге бириктирүү

Аны чогуу зымдоо
Аны чогуу зымдоо
Аны чогуу зымдоо
Аны чогуу зымдоо

Teensy эч кандай көйгөй болгон жок. Бул казыктар менен келет, андыктан аны түз эле нан тактасына сайсаңыз болот.

Лабораториянын сынган бөлүктөрүнүн кутусундагы кызыл (+) жана кара (-) банан кабелдери менен эшиктин зымдарын түстүү код менен чечүүнү чечтим. Алардын зымдарынан айрылган кээ бир штепсельдер бар болчу, ошондуктан мен пластмассаны алып чыгып, ширетүүчү жерди ачтым. Мага лабораториялык банан штепсельдери бири -бирине кантип туташа алары абдан жагат. Мен Apple'дин телефон кабелин колдонуп, бөлмөнүн сыртындагы баскычтарды жана абалдын жарыгын ичиндеги Teensyге туташтырдым. Бир жагы сынгандыктан, мен анын учун кесип, ысык желим менен бекитип, төрт зымдуу баштыкка коштум. Бул менин тактайыма жакшы жабышып калды. Мен сайгычты таштап койгон жагы роутерден кутулган модулдук уячасына кирди. Бардык төрт зым колдонулган (GND, абал жарыгы, баштоо/токтотуу баскычы, код баскычы). Эгер сиз байкабасаңыз, мага штепсельдер жана туташтыргычтар жагат. Мен кыштакты роутерден сүртүп койгон күчкө туташтырдым. Зымдарды дубал түтүктөрү аркылуу өткөрүү өтө эле кыйын болгон жок, анткени ийкемдүү кармоочу нерсе. Бул чынында эле менин күнүмдү сактап калды.

5 -кадам: Код

Code
Code
Code
Code

Мен кодумду түшүндүрүүгө аракет кылдым. Бул 1.0 программалык камсыздоо экенин эстен чыгарбаңыз, бул катасыз эмес. ## ИШТӨӨ ## 1. Сиз кодду киргизүүгө даяр экениңизди билдирүү үчүн баштоо/токтотуу баскычын басыңыз. Статус жарыгы акырын жаркырай баштайт. 2. Код баскычына кодуңузду басыңыз. Статус жарыгы 120 BPMде өчүп күйөт, андыктан кааласаңыз муну метроном катары колдоно аласыз. Бирок, крипто программасы импульстун узундугун пропорционалдуу түрдө өлчөйт, андыктан сиз өзүңүздүн темпти колдоно аласыз. Жөн эле так экениңизди текшериңиз! 3. Код киргизүү бүткөндө, кайра баштоо/токтотуу баскычын басыңыз. Андан кийин программа сизди киргизүүгө уруксат береби же жокпу, өзү чечет. Адамдар убакытты так сактабагандыктан (сиздики чынында андай эмес), мен толеранттуулуктун коэффициентин +/- 30%деп койгом. Бул ыргытуу узундугу бул суммага так эмес болушу мүмкүн дегенди билдирет жана дагы эле жыйынтыктоо керек. Бул абдан окшош обондордун айырмасын айтуу үчүн жетиштүү. Кош жана үчкө созулган уруулардын ортосунда жетүү кыйын болгон бир аз дал келүү бар, бирок кодду бузуу дагы деле кыйын. Эшиктин кулпусун ачуу үчүн, уруулар бири-бирине туура пропорцияда болушу керек (+/- толеранттуулук коэффициенти) жана уруулардын саны туура болушу керек. Эгерде жараксыз сырсөз киргизилген болсо, программа бир нече секунд күтөт, ал эми колдонуучунун эч кандай киргизүүсүн этибарга албайт. Ал ошондой эле абалдын жарыгын тез күйгүзөт. Эгерде туура код киргизилсе, абалдын жарыгы туруктуу күйөт жана эшик 8 секундага ачылат. ## КОЛДОНУУЧУНУН КОНФИГУРАЦИЯСЫ ## Ачкыч мындай массивде сакталат: #deleine keylength 5 const int key = {2, 1, 3, 3, 3}; // "Туулган күнүң менен" массивинде биттердин ортосунда болгон убакыт сакталат. Демек, эгер сиздин сырсөзүңүздө "Туулган күнүңүз менен" сыяктуу АЛТЫ жазуу болсо, массивде БЕШ элемент болушу керек. Эгерде сиздин сырсөзүңүз чынында эле узун жана сизде 16дан ашык сокку болсо, (чынында эле кыйын, мен муну сунуш кылбайм), сиз бул сапта аныкталган санын көбөйтүшүңүз керек: #deCineLodeCodeLength 16 ## КАЛДЫН КАЛГАНЫ # # Мен үзгүлтүктөргө кызыкчумун, ошондуктан менин баскычтарым үзгүлтүккө учуратты. Бул үзгүлтүктөрдү колдонууну оңой кылуу үчүн, мен үзгүлтүк иштетүүчүлөрүмдөн айрым функция көрсөткүчтөрүн текшерип көрдүм. Эгерде көрсөткүч NULL деп коюлбаса, ал көрсөткөн функция чакырылат. Булар cryptap.c ичиндеги ар кандай "режимди жөндөө" функциялары менен коюлган. Мен киргизилген импульстардын максималдуу санын коюу менен буфердик толуп кетүүлөрдү болтурбоо үчүн аракет кылдым. Эгерде импульстардын максималдуу саны киргизилсе, программа дароо паролду талдоону баштайт жана эшиктин кулпусун ачууну чечет. Мен коддогу комментарийлерим жардам берет деп үмүттөнөм. ## БУЗУКТАР ## Мен USB мүчүлүштүктөрдү оңдоо кодун алып салууга аракет кылдым, бирок мен андай кылсам код иштебейт. Ошентип, мен usb_init () жана ар кандай print () билдирүүлөрүн калтырдым. Эгер кимдир бирөө аларды алып салса жана программа иштей берсе, мен ыраазы болмокмун. Эмне үчүн бул мен үчүн иштебегенин түшүндүрүп беришсе жакшы болмок. Дароо программалангандан кийин, Teensy кээде код киргизүүнү кабыл албайт. Бул маселени чечүү үчүн, электр циклинин айлануусу.

Сунушталууда: