Мазмұны:
- 1 -қадам: Холл әсерінің сенсорлары
- 2 -қадам: Электрониканың аппараттық құралы
- 3 -қадам: App Inventor
- 4 -қадам: Arduino коды
- 5 -қадам: тұрғын үй
- 6 -қадам: Жиналыс/Қорытынды
Бейне: Arduino/App Controled Desk Light: 6 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Бұл жоба үшін мен өзіме электроника/бағдарламалық қамтамасыз ету туралы көбірек үйретуге мүмкіндік беретін нәрсені алғым келді, мен оны әлі түсіне қоймадым. Мен бұл үшін жақсы платформа болатынын шештім.
Мен ойлап тапқан дизайн түсі мен жарықтығын реттейтін жарықтандырғышқа арналған. Өнімде ақ түстің жылуы мен суығы арасындағы температура мен жарықтық «шайба» арқылы бақыланады, оның орналасуы мен бағыты оларды бір -бірінен тәуелсіз түрде өзгертеді - бұл бірегей/көңілді әсерлесу.
Мен сондай -ақ оларды реттеу үшін қосымша құруды (өзіме қиындық тудыруы мүмкін) құруды аяқтадым, сонымен қатар кейбір RGB жарықдиодты жарықдиодты басқаруға және күннің шығуы туралы дабыл орнатуға қосымша мүмкіндіктерді қостым. Күннің шығуы туралы дабыл 30 минут ішінде жарықтығын біртіндеп арттырады, бұл сізге оянуға көмектеседі.
Бұл менің бірінші Arduino/App жобасы болғандықтан, кодты жасаудың жақсы әдістері болады деп ойлаймын, сондықтан маған жеңіл болыңыз! Ол жанып тұрады, сондықтан мен бақыттымын. Егер сізде жақсартулар туралы ұсыныстарыңыз болса және т.
Бұл жобаға арналған барлық файлдар (arduino/қосымшаны ойлап табушының коды, қолданба графикасы және т.б.) және App apk. мына сілтемеден табуға болады.
Мен бұны Raspberry Pi және FULL SPECTRUM LASER конкурстарына қатыстым, сондықтан егер сіз оны лайықты деп санасаңыз, дауыс жаппай бағаланады !!
Сізге не керек ….
Элек Компоненттер:
- Arduino Micro
- 12 Сызықтық радиометриялық зал эффект датчиктері
- DC Джек
- 12 В қуат көзі
- 2x 1W салқын ақ жарықдиодты шамдар (6000K)
- 2x 1W жылы ақ жарық диодтары (2800K)
- 4x Adafruit RGB неопиксельдері
- Sparkfun Picobuck 350mA тұрақты ток драйвері
- HC06 Bluetooth модулі
- Прототип тақтасы
- Терминалды блоктар
- Сымдар
Материалдар:
- Көгеруге арналған материалдар (картон немесе силикон және т.
- Полиуретанды құюға арналған шайыр
- Фанера
Шығын материалдары:
- Дәнекер
- Бояу спрейі
- Қағаз
- Араластыратын шыныаяқтар/араластырғыштар
Құралдар:
- Пісіру темірі
- Желім мылтық
- Пышақтар/бұрағыштар/пышақтар және т.
- Лазерлік кескіш
Бағдарламалық қамтамасыз ету:
- Ардуино
- MIT App Inventor (вебке негізделген ақысыз)
- Photoshop немесе App графикасын құруға арналған нәрсе
1 -қадам: Холл әсерінің сенсорлары
Өнімді басқару/өзара әрекеттесу үшін мен теру немесе басқа нәрсе емес, сәл өзгеше нәрсе ойлап тапқым келді.
Әр түрлі электронды компоненттерді зерттеуден кейін мен радиустық сызықтық эффект сенсорларын таптым. Бұл негізінен магнит өрісі әсер ететін сенсор. Әдетте сенсорлардың шығысы кіріс кернеуінің жартысын құрайды. Алайда, оған магнит әкелгенде, шығыс кіріс кернеуіне дейін көтеріледі немесе магниттің солтүстік немесе оңтүстік полюсіне байланысты 0В (қанығу шегіне) дейін төмендейді.
Мен мұны бір зал сенсорында екі түрлі параметрді басқаруға мүмкіндік беру үшін пайдалана алатынымды түсіндім - «шайба» идеясы пайда болды. Магнит лазерлік кескіш пучкада жасырылған және сенсорларға қай жаққа қарағанына байланысты жарықтықты немесе түс температурасын басқарады. Мен кейінірек Arduino кодына кіремін, бірақ мен бұл сенсорларды оқимын және шығыс «жоғары триггерден» жоғарылағанын немесе «төмен триггерден» төмен түскенін іздеймін. Мен әр түрлі түс температурасы мен жарықтылық мәнін анықтауға мүмкіндік беретін бірнеше зал эффектілі сенсорларды қолданамын, олар шайбаны доғаның айналасында жылжытқанда іске қосылады.
2 -қадам: Электрониканың аппараттық құралы
Бұл жобаның бірінші қадамы электронды жабдықты қосу болды. Мен Arduino Micro -ды қолдануды таңдадым, себебі оның аналогты оқу түйреуіштері жақсы - бұл параметрді реттеу үшін жеткілікті ажыратымдылық беру үшін бірнеше холлы эффект сенсорларын пайдалануға мүмкіндік береді. 12 вольтты тұрақты ток көзі Arduino мен жарықдиодты драйверді қосу арасында бөлінеді.
Басқару доғасында 11 залды сенсорлар қолданылады, ал тағы біреуі жарықты өшіру үшін қолданылады. Олар A0-> A5 және 4, 6, 8, 9, 10, 12. түйреуіштеріне қосылды. Олар ортақ 5В және жер үсті рельсіне/штырьге ие.
Мен қолданатын жарықдиодты шамдар 1 Вт және тұрақты ток жүргізушісін қажет етеді. Sparkfun PicoBuck қолданылды, себебі ол 350мА тұрақты 3 шығыс арнасына дейін жеткізеді. 12 В кернеуі драйверлерге Vin пинсіне қосылады. Драйверде шығыс PWM басқару үшін кіріс түйреуіштері бар, олар Arduino 3 және 5 түйреуіштеріне қосылған.
Содан кейін Bluetooth модулі қосылды. Bluetooth Rx-> Arduino Tx, Tx-> Rx және 5v.round.
Жарық диодтары бөлек тақтаға орнатылды. Екі салқын ақ жарықдиодты қатар жылытқыштар қосылған. Олар драйвердің 1 және 2 шығысына қосылады. RGB светодиодтары - Adafruit неопиксельдері; бұл тізбекті модульдер, сіз бір Arduino түйрегішінің түсі мен жарықтығын жеке басқара аласыз. Олар түйреуіш 11 мен 5В/жерге түйреуіштерге қосылады.
3 -қадам: App Inventor
Қолданбаны жасау үшін мен MIT App Inventor қолдандым, оны тегін және қолдануға оңай. Мен алдымен экрандар/графикалық қосымшалар жасауым керек болды - мұны фотошопта жасауға болады. Егер сізде экрандарды бөлек суреттер/файлдар ретінде құрайтын барлық компоненттер болса, App Inventor бағдарламасын жеңілдетеді.
Қолданбалы өнертапқыштың екі көрінісі бар, алдыңғы жағында визуалды заттарға арналған «Дизайнер» қойындысы және код үшін «Блоктар» қойындысы бар.
«Дизайнер» қойындысын пайдаланып, мен қолданба экрандарын құрдым. Мен тапқан бір мәселе - bluetooth компоненті бірнеше экранда жұмыс істемейді, сондықтан «қош келдіңіз» экранынан кейін қалғандары (байланыс, RGB, түс температурасы, дабыл) барлығы бір экранда жасалады - мен оларды тиімді түрде қосамын. /өшіру.
Мен қолданған негізгі құралдар - «орналасу/туралау» және «кенеп». Кенеп - бұл сурет ретінде көрсетуге болатын сенсорлық аймақ.
Көрнекіліктер орнатылғаннан кейін, 'Блоктар' қойындысына ауысу және кодты жазу уақыты келді. Мен оны қысқаша сипаттаймын, бірақ егер сіз менің файлымды App Inventor бағдарламасына импорттап, айналаңызда ойнасаңыз, бұл оңайырақ болар …
Бұл бірінші блоктар экрандарға арналған. Қолданбаға Arduinos bluetooth модуліне автоматты түрде қосылуға мүмкіндік беру үшін мен айнымалы мәнді HC06 мекенжайына орнатамын. Мен қосылу кезінде фондық суретті өзгерту үшін таймерді қолданамын. Егер байланыс сәтті болса, онда ол түс температурасы экранын жүктейді. Егер bluetooth автоматты түрде қосылмаса, 'құрылғыға қосылу' түймесін басу керек. Бұл телефонда көруге болатын барлық Bluetooth құрылғыларының тізімін береді. 'Bluetoothclient1.connect' пәрмені қосылу үшін сол тізімнен таңдаған құрылғының мекенжайын пайдаланады.
Бұл блоктар мәзір түймелерінің әрқайсысын басқанда не болатынын бақылайды - RGB, түс температурасы мен дабыл арасындағы өзгеріс. Қол тигізген кезде, көрнекі қабаттар қосылады және өшіріледі. Яғни RGB мәзір түймесін түрткенде, ол кенептің фондық суретін қараңғы белгішеге ауыстырады, RGB экранын қосады, екіншісін өшіреді.
Қуат пен жарықтықты басқару RGB мен түс температурасы экрандары арасында бөлінеді. Arduino қандай жарықдиодты басқару керектігін білу үшін, мен оған қай экран жүктелгенін айтуым керек. Форматтағы (экран) мәтіндік жол? BluetoothClient1. SendText пәрмені арқылы телефондарыңызға bluetooth жібереді.
Бұл блок жолды жібереді (Қуат)? қуат түймесі басылған сайын
Бұл блоктар түс температурасының реттелуін басқарады. Кенепті түрткенде, «Cool» айнымалы мәнін орнату үшін сенсорлық нүктенің Y координаты қолданылады. Y мәні кенептің пиксельдік өлшеміне сүйенеді, сондықтан менің жағдайда 0 мен 450 арасындағы мән. Мен оны PWM (0-255) қолдануға болатын мәнге түрлендіру үшін мультипликаторды қолданамын. Содан кейін мен сол мәні бар жолды және идентификаторды пішінде жіберемін (Tempvalue)?.
Жоғарыдағыдай блоктар, бірақ жарықтығын бақылау үшін. Осы уақыт X координатын және әр түрлі көбейткіштерді қолданып, 'Bright' айнымалы мәнін 10 мен 100 арасындағы мәнге орнатыңыз.
Бұл блоктар RGB бақылауына арналған. «GetPixelColor» деп аталатын пәрмен бар, ол саусақ тиіп тұрған пиксельдің RGB мәнін алуға болады. Ол қандай да бір себептермен қосымша 255 мәнін шығарады, сондықтан мен мәнді форматқа келтіру үшін біраз жұмыс жасаймын (RGBredvalue.greenvalue.bluevalue.)? Бұл қайтадан Arduino -ға жіберіледі, бірақ жолдағы идентификатор ретінде RGB.
Блоктардың келесі бөлімі дабыл параметрлеріне арналған. Бірінші блок күнді жоғары/төмен сүйрегенде не болатынын басқарады. Тағы да, «ағымдағы X және Y алу» пәрмендері саусағыңыздың орналасқан жерінің мәнін алу үшін және күннің биіктігіне байланысты фондық суретті өзгерту үшін қолданылады. Күннің күйі дабыл қосулы немесе өшірілген болса да жүргізеді, бұл Bluetooth арқылы жіберіледі.
Күнді түрткенде немесе жылжытуды аяқтағанда, ол дабыл уақытын орнатуға мүмкіндік беретін уақыт таңдағышты шығарады. Келесі блоктың негізгі бөлігі дабыл орнатылғанша қанша миллисекунд бар екенін анықтау үшін ағымдағы уақытты пайдаланады. Содан кейін бұл мән Arduino -ға жіберіледі
Келесі қадамда мен Arduino -ның жолдарды қалай оқитынын және қолданатындығын қарастырамын …
4 -қадам: Arduino коды
Қолданба коды сияқты, мен бұл туралы қысқаша айтамын ….
Алдымен мен сенсорлар мен светодиодтарды дұрыс түйреуіштерге тағайындай отырып, барлық айнымалыларымды орнатамын. Холлдық эффект сенсорларының шығысы analogRead функциясының көмегімен оқылады, ол 0 мен 1023 аралығында мән береді. Бұрын сипатталғандай, магнит болмаған кезде жартысын шығарады, сондықтан шамамен 500. Мен төмен және жоғары триггер айнымалы мәндерін қолданамын. шайбаның сенсор үстінде екенін білген кезде реттеңіз.
Неопиксельдер мұнда анықталатын кітапхананы қажет етеді.
Бос орнату серияларды бастайды, Micro Rx/Tx түйреуіштері (bluetooth) үшін Serial1 пайдаланады. Содан кейін түйреуіштер кіріс немесе шығыс болып орнатылады және жарық диоды өшеді.
Енді бұл негізгі цикл …
Бұл бірінші бөлім Қолданбадан қандай да бір деректер алынғанын тексереді. Serial1.available () - серияны оқиды және жолдағы байт санын алады. Егер бұл> 0 болса, мен кіретін деректерді білемін.
Естеріңізде болса, мен қосымшадан жіберетін барлық жолдар сұрақ белгісімен аяқталады …. яғни (Bright100)?
Мен.readStringUntil функциясын сериялық деректерді сұрақ белгісіне дейін оқу үшін қолданамын (Bright100) және BTstring айнымалысын осыған қойдым. Толық пәрмендердің қабылданғанына көз жеткізу үшін BTstring ')' белгісімен аяқталатынын тексеремін. Егер олар болса, онда BluetoothProgram циклі шақырылады … бұл төменде сипатталған.
Бұл келесі бит күннің шығуы туралы дабылды басқарады. Негізінде, егер дабыл қосулы болса және уақыт дұрыс болса, онда ол жарық диодты шамдарды өшіре бастайды. Адам көзінің жарықты логарифмдік түрде қабылдайтындығына байланысты кез келген жарықдиодты сызықты емес, экспоненциалды қисықпен өшіру/түсіру жақсы. Осылайша, теңдеу PWM мәндерін басқарады …
Қолданбаны басқаруға кедергі келтірмеу үшін ол қолданбаны қолданғанда өшіріледі. Шайбаны қайта белсендіру үшін оны өнімнен 5 секундқа жылжыту керек. Бұл кодтың биті алдымен барлық сенсорлардың тұрақты күйдегі мәнді шығаратынын (магнитсіз) тексереді, содан кейін таймерді іске қосады. 5 секунд аяқталғанда, BTinControl айнымалы мәні жалған мәнге қайтарылады.
Шайбаның коды қазір.. Алдымен сенсорларды оқу керек.
Егер жарық қазір сөніп тұрса, ол сенсорлардың кез келгенінің триггер нүктелерінен жоғары немесе төмен екенін тексереді, яғни доғаның доғаға орнатылғанын. Егер солай болса, ол ақ жарық диодты қай жерге қойсаңыз да соңғы параметрге дейін өшеді.
Жарықдиодты соңғы сенсорлы күйге келтіру үшін сенсорлармен байланысты мәндерді жаңартудың орнына, MovedSinceStandby айнымалы мәні жалған болып орнатылады. Келесі код биті сіздің шайбаны бастапқы күйінен белгіленген мөлшерге жылжытқаныңызды тексереді.
Егер сіз шайбаны жылжытсаңыз, жарықтықты/түс температурасын жаңарту үшін 'MainProgram' шақырылады. Бұл төменде сипатталған.
Бұл негізгі циклдегі соңғы бит шайбаның күту станциясына қайта орнатылғанын тексереді - 12 датчигі триггер нүктесінен жоғары/төмен мәнді оқиды. Олай болса, ол светодиодты қайтадан сөндіреді.
Bluetooth циклы:
Жоғарыда сипатталғандай, bluetooth арқылы деректер қабылданғанда, жол оқылады. Енді біз бұл жолдың не айтқанын тексеруіміз керек …
Жарықтықтан, түс температурасынан және RGB -ден басқа барлық жолдарды басқару оңай. Сіз BTstring қолданбадан жіберілген мәтінге сәйкес келетінін тексересіз.
Естеріңізде болса, экрандарды қолданбаға ауыстырған кезде ол bluetooth пәрменін жібереді. Мұнда біз бұл үшін сұрақ қоямыз және кейбір айнымалыларды шын немесе жалған етіп қоямыз, сондықтан сіз қай экранда екеніңізді білеміз.
Әр бөлімнің соңында BTinControl айнымалы мәнін ақиқатқа орнатып, BTstring мәнін өшіретінін ескеріңіз.
Қолданбадағы қуат түймесін түрткенде, ол светодиодты жоғары немесе төмен сөндіреді. Жоғарыда сіз орнатқан айнымалы мәндер RGB немесе ақ жарық диодты басқаруға болатынын анықтау үшін қолданылады.
Жарықтық, түс температурасы мен RGB үшін жолдарды сәл басқаша оқу керек. Жолдың сандық бөлігі өзгеретіндіктен, мен жолдың толық жолдан емес, идентификаторлардың бірінен басталатынын сұраймын, сондықтан жай ғана (мұнда жарқын..
Енді мен нақты жарықтық мәнін жолдан бөліп алуым керек. Қолданбадан жіберілетін жолдың пішімі (Brightvalue) болып табылады, сондықтан мен жарықтық мәні 't' мен '' 'арасында болатынын білемін. 'T' позициясы тұрақты болып қалады, ол әрқашан жолдағы 7 -ші таңба болады. Бірақ жарықтылық мәні 10 мен 100 арасында болуы мүмкін болғандықтан ')' позициясы өзгереді. Мен.indexOf пәрменін ')' қай жерде екенін, қандай таңба екенін анықтау үшін қолданамын, содан кейін.substring пәрменін 7 -ші таңба мен ')' символы арасындағы жолды оқу үшін қолдана аламын. Бұл маған экранға байланысты RGB немесе ақ жарық диодты реттеу үшін қолдануға болатын жарықтық мәнін қалдырады.
Түс температурасын реттеу жоғарыдағыға ұқсас процесс, бірақ бұл жолы мән «p» мен «)» арасында болады …
RGB реттеу үшін бізде жолдан шығарылатын үш мән бар, бірақ ол қайтадан ұқсас процесс. Қолданбадан біз жолдарды (RGBvalue.value.value) түрінде аламыз
Мен қызыл мән «В» мен бірінші нүкте арасында болатынын білемін. Жасыл мән 1/2 нүкте арасында, көк мән 2 -ші нүкте мен ')' арасында.
Біз мәндерді алғаннан кейін неопиксельдер жаңа түске орнатылады …
Мұнда біз дабыл қосулы немесе өшірілгенін тексереміз. Егер дабыл уақыты өзгертілсе, бізге дабылға дейін миллисекунд саны бар жол жіберіледі. Тағы да бұл мән жолдан алынады және күннің шығуы басталатынын тексеру үшін айнымалы мәнді ағымдағы уақытқа (миллис) қою керек.
Шайбаны басқару:
Жоғарыда айтылғандай, магнит (магнит) бір бағытта жоғары болса, ол холл сенсорының шығысын төмен триггердің астына, ал егер басқа жолмен жоғары триггерден жоғары көтереді.
Бұл бір доғаның жарықтығы мен түс температурасын басқаруға мүмкіндік береді.
Сенсорлардың мәндері оқылады. Егер олардың біреуі триггердің төменгі мәнінен төмен болса, біз түс температурасын реттейміз. Доғалық аймақтың астында 11 сенсор бар, олар өз кезегінде шығыс триггер нүктесінен төмен түседі, себебі шайба олардың үстінен қозғалады. Әр сенсорда салқын және жылы жарық диодтары үшін PWM мәні бар, ол сенсор 1 -ден бастап 100% жылы, 0% салқын және 11% -ға дейін 0% жылы, 100% салқын.
Жарықтықты бақылау дәл осылай жүзеге асады.. бұл жолы сенсорлардың шығысы жоғары триггерден жоғары екенін тексеріп, әр сенсорға жарықтықты өлшеу мәнін береді.
Бұл жарықтықты өлшеу түстердің температуралық мәніне көбейтіліп, жалпы шығыс мәнін береді. Кез келген түс температурасын кез келген жарықтыққа орнатуға мүмкіндік береді …
5 -қадам: тұрғын үй
- Мен корпустың төменгі бөлігіне картоннан қалып жасаудан бастадым. Басқару аймағының ойықтарын жасау үшін менде доғаның пішініне кесілген фанера лазері болды және «күту» қондырмасы үшін 5p тиын қолданылды. Олар залдың эффект датчиктеріне сәйкес келетін дұрыс қалыпта болуына назар аударып, картоннан жасалған қалыпқа жабыстырылды.
- Келесі - полиуретанды шайырды араластыру. Мен қолданатын заттардың 1: 1 қатынасы бар және шамамен 20 минут ішінде емдейді.. сондықтан тез жұмыс істеу керек!
- Бастапқы құйма қалыптың түбін толтыру болды. Осы жиыннан кейін мен бүйір қабырғаларды құюға мүмкіндік беру үшін картонның ішкі қабырғасын қостым.
- Светодиодтар отыратын жоғарғы бөлікті жасау үшін мен пластикалық түтікті/шыныаяқты бұрышпен қиып, желімдеп қойдым. Қайта шайыр құйылды және оны қоюға рұқсат етілді.
- Енді корпус дайын болды, маған бірнеше тесіктер бұрғылап, жақсы құм беру керек болды.
- Праймер қолданылды, содан кейін бояудың соңғы қабаты себілді.
6 -қадам: Жиналыс/Қорытынды
- Тұрақтан тұрақты ток ұясына арналған слот кесілген. Содан кейін ұяны желімдейді.
- Жарық диодты тақтаны жоғарғы бөлікке бұрап алуға болады, сымдар төменгі бөлікке беріледі.
- Жарық диоды мен тұрақты ток ұясының сымдары дұрыс терминал блоктарына бұралған.
- Содан кейін негізгі тақта корпусқа бекітіледі
- Содан кейін корпустың түбін жабу үшін фанераның бір бөлігін бұрап алады.
- Ақырғы нәрсе - магнит полюстерін дұрыс «жарықтық» немесе «түс температурасы» соңғы қақпағымен бағдарлау үшін «шайбаны» бір -біріне жабыстыру.
Жалпы, жарық жақсы жұмыс істейді! Бағдарламалық жасақтамада жоюға болатын бірнеше қателер бар, ал RGB жарық диоды жарқын болуы мүмкін. Сондай -ақ, түс температурасын автоматты түрде өзгерту үшін қоршаған жарық сенсорын қосуға болады, күндіз «суық» бастап, түнде «жылы» күйге ауысады.
Оқуға қуаныш!
Ұсынылған:
BookWorm Light-Up Book Light және Bookmark: 13 қадам (суреттермен)
BookWorm Light-Up Book Light және Bookmark: Кітап құртына айналатын бұл қызықты кітап құртының бетбелгісін жасаңыз! Біз оны басып шығарамыз, қиып аламыз, бояймыз және безендіреміз, және олар оны қараңғыда оқи алатындай етіп түнді жарықтандыруға қолданады. Ол бірнеше материалдардан жасалған және керемет бірінші сурет жасайды
Arduino & Neopixel Coke Bottle Rainbow Party Light: 7 қадам (суреттермен)
Arduino & Neopixel кокс бөтелкесінің кемпірқосақ кешкі жарығы: Сонымен, менің ұлым Дуон ескі кокс бөтелкелерінен және Glow таяқшаларының ішінен жасалған өте керемет мерекелік шамды көреді және оның алдағы мектептегі емтихандарына дайындық жасай аламыз ба деп сұрайды PartAYYY !! ! Мен сенімдімін, бірақ сізге бұлардың бірнешеуі керек емес пе
Arduino Heart Shape Light: 6 қадам (суреттермен)
Arduino Heart Shape Light: Arduino Heart Shape Light (1) Кіші жоба LED шамды басқару үшін Arduino көмегімен (2) 4 3 түсті Led шамды қолданады, сіз өзіңізге ұнайтын барлық түсті өзгерте аласыз. (3) келесідей қайта бағдарламалануы мүмкін: сөну немесе сөну жарығы немесе жыпылықтайтын жарық (4) Барлық бөліктер 3D p арқылы басып шығарылады
Жұмсақ ойыншық Bluetooth Dice және Android ойынын MIT App Inventor көмегімен дамытыңыз: 22 қадам (суреттермен)
MIT App Inventor көмегімен жұмсақ ойыншық Bluetooth Dice және Android ойынын ойнаңыз: сүйек ойнаудың әр түрлі әдісі бар 1) дәстүрлі түрде ағаштан немесе жезден жасалған сүйектермен ойнау 2) ұялы телефонда немесе компьютерде ұтқыр кездейсоқ немесе компьютерде осы түрлі әдіспен ойнау. сүйектерді физикалық түрде ойнаңыз және монетаны ұялы телефонда немесе компьютерде жылжытыңыз
Killer Desk PC: 4 қадам
Killer Desk PC: Мен әрқашан жұмыс үстелін құру идеясын ұнататынмын, бірақ бұл әрқашан өте қиын тапсырма болып көрінетін. Бірнеше керемет құрылыстарды көргеннен кейін мен өзімнің үлгісіме сәйкес келетін модельді таңдадым (https://www.pcworld.com/article/2047642/how-a-lege… және g