Мазмұны:

OUIJA: 5 қадам (суреттермен)
OUIJA: 5 қадам (суреттермен)
Anonim
OUIJA
OUIJA
OUIJA
OUIJA
OUIJA
OUIJA

Хэллоуин маусымы жақындаған сайын жаңа жобалар пайда болады. Біз білетіндей, Хэллоуин - өлгендердің күні, арамызда бос орын қалдырғандарды еске түсіретін күн. Біздің жоба қазір жоқ адамдармен, сағынған адамдармен портал арқылы Ouija тақтасы арқылы байланыс орнатуға мүмкіндік береді.

Біз Ouija тақтасының «портал» ретінде шеткі адамдармен сөйлесуге, сұрақтар қоюға, «рух» пен қарым -қатынас құралы ретінде тақтаға ие ойыншының өзара әрекеттесу идеясына негізделген. Сондықтан біз жарамды және функционалды кодты құрып қана қоймай, ойыншының бағдарламамен қалай әрекет ететінін түсіну қажеттілігін көріп отырмыз. Бағдарламалауды бастамас бұрын біз не істеу керектігін және әр жағдайда не болатынын білу үшін ағынның диаграммасын жүргіземіз.

Біздің негізгі идеямыз пайдаланушы тақтаға тигенде, яғни қолданушы тақтаның үстінде екі қолын ұстап, сұрақ қойған кезде, оуиджаның көрсеткіші жауап ретінде «Иә» немесе «Жоқ» жағына қарай жылжиды. Код үшін біз қолданғымыз келетін қозғалтқыштың өнімділік диапазондарын бағдарламалауға тура келді, өйткені тақтада Иә мен Жоқ қарама -қарсы тұрды (әр жағынан бір). Сонымен қатар, біз жауаптардың кездейсоқ болғанын қалаймыз, сондықтан біз бұл параметрлерді орнатуға мәжбүр болдық, алдыңғы зерттеулер артта қалды.

1 -қадам: МАТЕРИАЛДАР

МАТЕРИАЛДАР
МАТЕРИАЛДАР
МАТЕРИАЛДАР
МАТЕРИАЛДАР
МАТЕРИАЛДАР
МАТЕРИАЛДАР

Бұл жобаны жүзеге асыру үшін біз келесідей әр түрлі электрлік компоненттерді, құралдар мен материалдарды қолдандық:

1. Elegoo uno R3. Бақылау тақтасы

2. Breadboard jumper сымдары мен Dupont Wire әйелдер үшін

3. Қысым/күш датчигі

4. Протобон тақтасы

5. Серво қозғалтқышы

6. USB кабелі

7. Лазерлік кесу машинасы

8. Магниттер

9. Ағаш

Қораптың құрылысы үшін біз төрт миллиметрлік ағаш қолдандық. Кәсіподақтар үшін магниттер және кеңейтілген кеңістік.

2 -қадам: TinkerCad схемасы

TinkerCad схемасы
TinkerCad схемасы
TinkerCad схемасы
TinkerCad схемасы

Мұнда біздің кодты имитациялайтын TinkerCad схемасы бар.

Барлық тәсілден кейін біз күш/қысым сенсорын сатып алып, онымен тәжірибе жасай бастадық. Сенсор - бұл өте қарапайым компонент және оны қосу оңай. Оның қалай жұмыс істейтінін түсіну үшін біз оның дұрыс жұмыс істейтінін тексеру үшін оны сынап көруді ұсынамыз, сондықтан біз оны қалай қосуға болатынын және қолданылатын кодты көрсетеміз: күш датчигінің фотосуреті.

Бұл компонентті түсіну арқылы біз сенсор көрсеткіштің саяхатын бастау мен аяқтаудың кілті болады деген қорытындыға келеміз. Осылайша біз «егер» мен «басқа» дегеннен бастап қолданылатын күшті реттеуге үйренеміз. Содан кейін біз қажет қозғалтқыштың түрін анықтаймыз. Ouija тақтасын әр түрлі жолмен басқаруға болатынына қарамастан, мысалы, қадамдық қозғалтқышпен, біз серво қозғалтқышын қолданамыз, себебі біз оны қарау керек болатын қадамдармен жұмыс істеудің орнына, оның бұрышын шектегіміз келеді.

Қысым датчигін түсінудің арқасында біз серво қозғалтқышы 10 -нан 800 -ге дейін күш болған кезде бұрышқа (Иә позициясы) ауысатынын анықтаймыз. Меңзер қарама -қарсы бұрышқа (позиция жоқ) ауысады. ол 800 -ден үлкен және бастапқы күйге оралады, біз үшін тақтаға қысым болмаған кезде 0 позициясы (немесе 90º бұрыш). Бұл кезде күш 10 -нан аз болады. Бұл қондырғылардың барлығы сенсордың қайда орналасқанына және қаншалықты өзара әрекеттескіңіз келетініне байланысты өзгеруі мүмкін.

3 -қадам: ағын диаграммасы мен коды

Ағын диаграммасы мен коды
Ағын диаграммасы мен коды
Ағын диаграммасы мен коды
Ағын диаграммасы мен коды
Ағын диаграммасы мен коды
Ағын диаграммасы мен коды

#қосу

int servoPin = 8;

өзгермелі servoPosition;

float startPosition;

Сервис myServo;

ұзақ randNum;

int i = 0;

int PressurePin = A1;

int fuerza;

жарамсыз орнату () {

// бір рет іске қосу үшін орнату кодын осында қойыңыз:

Serial.begin (9600);

myServo.attach (servoPin);

}

void loop () {

// бірнеше рет іске қосу үшін негізгі кодты осында қойыңыз

fuerza = analogRead (PressurePin);

егер (fuerza> 10) {

i ++;

кешіктіру (100);

егер (fuerza <800) {

кешіктіру (100);

servoPosition = servoPosition + i;

} else if (fuerza> 800) {

кешіктіру (100);

servoPosition = servoPosition - i;

}

} if if if (fuerza <10) {

i = 0;

servoPosition = 90;

}

Serial.println (servoPosition);

myServo.write (servoPosition);

}

4 -қадам: OUIJA ҚАЛАЙ ҚҰРУҒА БОЛАДЫ?

OUIJA ҚАЛАЙ ҚҰРУҒА БОЛАДЫ?
OUIJA ҚАЛАЙ ҚҰРУҒА БОЛАДЫ?
OUIJA ҚАЛАЙ ҚҰРУҒА БОЛАДЫ?
OUIJA ҚАЛАЙ ҚҰРУҒА БОЛАДЫ?
OUIJA ҚАЛАЙ ҚҰРУҒА БОЛАДЫ?
OUIJA ҚАЛАЙ ҚҰРУҒА БОЛАДЫ?

Алдымен біз барлық Arduino компоненттері болатын қораптың өлшемдерін орнаттық. Solidworks бағдарламасынан біз 300 мм -ден 200 мм -ге дейінгі негізді құрдық, ал биіктігі 30 мм. Біз қалыңдығы 4 мм ағаш қолдандық. Жоспарларды сәйкес бағдарламаға өткізгеннен кейін ағашты лазерлік машинамен кесеміз.

Ouija тақтасы - бұл басқа әңгіме. Алдымен біз оны суретке немесе тақтаға векторланған суретті іздеп, оны ағашқа ойып жазуымыз керек еді. Біз курсорға дәл осылай жасадық. Бізде барлық негізгі компоненттер болған кезде біз электрониканы енгізе бастадық. Біз сервомоторды қораптың ортасына, Arduino мен протободы бір жағына (әсіресе сол жақта) орналастырдық, соңында қысым датчигін қайда қою керектігін шештік. Біз оң жаққа кеңейтілген порекспан негізін және оның үстіне сенсор қойдық.

Қолданушының қолының орналасуын ескере отырып, үстіне порександы көбірек қоямыз, осылайша қолданушы оған қолын қойған кезде өзара әрекеттесу орын алады. Жоғарғы қақпақ пен қораптың бірігуіне қатысты біз тығын құрылымдарымен ұсталатын шағын магниттерді қолданамыз.

Серво қозғалтқышы үшін біз екі спицадан метакрилат тұтқасын жасадық: мино-сервомотор мен магнит бөлігі, бұл сервода көп уақыт тудырмауы үшін. Бұл бөлікті басқа материалдардан жасауға болады және оны серво берілісімен біріктіру үшін біз Superglue қолданамыз, бірақ біз ыстық силиконды немесе арнайы бұранданы қолдануды ұсынамыз. Курсордың астында магнит ілінеді, ол серво магнитімен тартылады, осылайша қозғалысты мүмкін етеді.

5 -қадам: Қорытынды

Қорытынды
Қорытынды

Жұмыс аяқталғаннан кейін, біз оны орындау үшін ұстанған әдістемені екі бөлікке бөлуге болатынын анықтай аламыз. Бір жағынан, жұмыс біз не істегіміз келетінін талдаудан, оның саяхаты туралы ақпаратты түсінуге және блок -схемаға аударудан тұрды. Бұл талдау бізге код құрылымын құруға көмектесті. Блок -схеманың арқасында біз әр қадамның маңыздылығын түсіндік және бұл бізге жобаның екінші бөлігін дамытуға мүмкіндік береді.

Практикалық бөлімге келетін болсақ, бұл сызықтық эволюция емес, сынақ және қате процесі болды. Әр компоненттің функциясын түсіну бізге оны Ouija тақтасына қолдануда көмектесті, өйткені қозғалысты қалыптастырудың және өзара әрекеттесуді туғызудың көптеген жолдары бар. Біз әр түрлі кедергілермен күресу жолын мақтан тұтамыз, мысалы, серво қозғалтқышындағы бұрыштарды шектеу немесе аналогтық және электронды элементтер арасындағы түйісуді шешу әдісі. Arduino ұсынатын әр түрлі нұсқалар қызықты, бұл біздің идеялар мен ұсыныстарды жобалауға және жүзеге асыруға мүмкіндік береді. Біз интерактивті өнімдерді мейірімді түрде жасау қаншалықты оңай екенін түсінеміз.

Ұсынылған: