Реклама

Да ли сте икада пожелели да имате свој аутомобил Книгхт Индустриес Тво Тхоусанд (КИТТ) - знате, од Книгхт Ридер-а? Учините свој сан корак ближе стварности израдом ЛЕД скенера! Ево крајњег резултата:

Шта вам је потребно

За овај пројекат није потребно пуно делова и можда ћете их имати већ много:

  • 1 к Ардуино УНО или слично
  • 1 к Хлебна плоча
  • 8 к црвене ЛЕД диоде
  • Отпорници 8 к 220 охм
  • Потенциометар 1 к 10к ома
  • Мушкарац на мушко спаја жице

Ако имате Ардуино стартер кит Шта је укључено у Ардуино Стартер Кит? [МакеУсеОф објашњава]Претходно сам овде увео Ардуино хардвер отвореног кода на МакеУсеОф, али требат ће вам више од стварног Ардуино-а да бисте нешто направили од њега и заправо започели. Ардуино "стартер комплети" су ... Опширније вероватно имате све ове делове (шта можете направити са стартер китом? 5 јединствених Ардуино пројеката за почетнике које можете направити са само стартер китом Опширније ).

Скоро сваки Ардуино ће радити под условом да има осам доступних игара (никада раније нисте користили Ардуино?

Започните овде Почетак рада с Ардуином: Водич за почетникеАрдуино је платформа за прототирање електронике отвореног кода која се заснива на флексибилном хардверу и софтверу који се лако користи. Намењен је уметницима, дизајнерима, хобистима, и свима који су заинтересовани за стварање интерактивних објеката или окружења. Опширније ). Ти би могао користите Схифт Регистер Ардуино програмирање - играње помоћу регистара Схифт (а.к.а још више ЛЕД-ова)Данас ћу покушати да вас научим мало о Схифт регистрима. Ово су прилично важан део Ардуино програмирања, у основи јер проширују број излаза које можете користити у замену за ... Опширније за контролу ЛЕД диода, мада ово није потребно за овај пројекат, јер Ардуино има довољно клинова.

Направите план

Ардуино-Книгхт-Ридер-Лед-Сцаннер-Цомплете
Ово је врло једноставан пројекат. Иако може изгледати сложено од великог броја жица, сваки појединачни део је врло једноставан. Свака светлећа диода (ЛЕД) повезана је са сопственим Ардуино пином. То значи да се сваки ЛЕД може појединачно укључивати и искључивати. Потенциометар је повезан са Ардуино аналогом у пиновима, који ће се користити за подешавање брзине скенера.

Круг

Ардуино-витез-јахач-круг
Спојите спољни леви пин (гледајући предњу страну, с клиновима на дну) потенциометра на земљу. Супротни спољни пин прикључите на + 5В. Ако не ради исправно, окрените ове игле. Повежите средњи пин на Ардуино аналог 2.

Спојите аноду (дугу ногу) сваког ЛЕД-а на дигиталне иглице један до осам. Спојите катоде (кратка нога) са Ардуино уземљењем.

Код

Направите нову скицу и сачувајте је као "книгхтРидер". Ево код:

цонст инт лед [] = {1,2,3,4,5,6,7,8}; // Лед игле. цонст инт тоталЛедс = 8; инт време = 50; // Подразумевана брзина воид сетуп () {// Иницијализирајте све излазе за (инт и = 0; и <= укупноЛедс; ++ и) {пинМоде (води [и], ИЗЛАЗ); } } воид петља () {фор (инт и = 0; и  0; --и) {// Скенирај десно у лево време = аналогРеад (2); дигиталВрите (води [и], ХИГХ); кашњење); дигиталВрите (води [и - 1], ХИГХ); кашњење); дигиталВрите (води [и], ЛОВ); } }

Разбијемо га Сваки ЛЕД пин се чува у низу:

цонст инт лед [] = {1,2,3,4,5,6,7,8};

Низ је у основи колекција повезаних предмета. Ови елементи су дефинисани као константи („цонст“), што значи да се касније не могу мењати. Не морате користити константу (код ће савршено радити ако уклоните „цонст“), мада се препоручује.

Елементима матрице приступа се помоћу квадратних заграда („[]“) и целог броја који се зове индекс. Индекси почињу од нуле, па би „лед [2]“ вратио трећи елемент у низу - пин 3. Низови чине код бржим за писање и лакшим за читање, они чине да рачунар обавља тежак посао!

За подешавање сваког пина као излаза користи се петља за петљу:

фор (инт и = 0; и <= укупноЛедс; ++ и) {пинМоде (води [и], ИЗЛАЗ); }

Овај код је унутар функције „сетуп ()“, јер се мора покренути само једном на почетку програма. За петље су врло корисне. Омогућују вам понављање истог кода изнова и изнова, с различитим вредностима сваки пут. Савршени су за рад са низовима. Деклариран је цели број „и“, а само код унутар петље може приступити овој варијабли (ово је познато као „опсег“). Вредност и почиње од нуле, а за сваку итерацију петље ја се повећава за један. Једном када је вредност и мања или једнака варијабли "тоталЛедс", петља се "пробија" (зауставља).

Вриједност и користи се за приступ пољу „лед“. Ова петља приступа сваком елементу у низу и конфигурише га као излаз. Можете ручно откуцати „пинМоде (пин, ОУТПУТ)“ осам пута, али зашто писати осам редака кад можете написати три?

Иако неки програмски језици могу рећи колико елемената је у низу (обично са синтаксом попут арраи.ленгтх), Ардуино то не чини тако једноставним (укључује мало више математике). Како је број елемената у низу већ познат, то није проблем.

Ардуино-Книгхт-Ридер-ЛЕДС

Унутар главне петље (воид петља ()) су још две за петље. Прва укључује ЛЕД диоде УКЉУЧЕНО, а затим искључује 1 - 8. Друга петља поставља ЛЕД-ове УКЉУЧЕНО, а затим искључује 8 - 1. Опазите како је постављен тренутни пин, као и тренутни пин плус један. То осигурава да увек постоје два ЛЕД-а истовремено, што скенер изгледа реалистичније.

На почетку сваке петље, вредност лонца се чита у променљивој „време“:

тиме = аналогРеад (2);

Ово се ради два пута, једном унутар сваке петље. Ово треба стално провјеравати и ажурирати. Ако је ово изван петље, и даље би радило, али било би мало одлагања - покренуло би се само након што петља заврши извршење. Посуде су аналогне, па се зато користи „аналогРеад (пин)“. Ово враћа вредности између нуле (минимум) и 1023 (максимум). Ардуино је способан да ове вредности претвори у нешто корисније, међутим савршене су за овај случај употребе.

Кашњење између промене ЛЕД-а (или брзина скенера) се поставља у милисекундама (1/1000 секунди), тако да је максимално време нешто више од 1 секунде.

Напредни скенер

Ардуино ЛЕД-спољни парови

Сада када знате основе, погледајмо нешто сложеније. Овај скенер ће упалити ЛЕД-ове у паровима почевши од споља и радећи унутра. Затим ће ово преокренути и прећи изнутра у вањске парове. Ево код:

цонст инт лед [] = {1,2,3,4,5,6,7,8}; // Лед игле. цонст инт тоталЛедс = 8; цонст инт халфЛедс = 4; инт време = 50; // Подразумевана брзина воид сетуп () {// Иницијализирајте све излазе за (инт и = 0; и <= укупноЛедс; ++ и) {пинМоде (води [и], ИЗЛАЗ); } } воид петља () {фор (инт и = 0; и  0; --и) {// Скенирај унутар парова оут = времеРеад (2); дигиталВрите (води [и], ХИГХ); дигиталВрите (лед [(тоталЛедс - и) - 1], ХИГХ); кашњење); дигиталВрите (води [и], ЛОВ); дигиталВрите (лед [(тоталЛедс - и) - 1], ЛОВ); кашњење); } }

Овај код је мало сложенији. Опазите како обје петље иду од нуле до „халфЛедс - 1“ (3). Ово чини бољи скенер. Ако су обе петље прешле између 4 - 0 и 0 - 4, онда би исте ЛЕД лампице двапут бљеснуле у истом редоследу - то не би изгледало баш добро.

Сада бисте требали посједовати исправни Книгхт Ридер ЛЕД скенер! То би било лако модификовати тако да користите више или веће ЛЕД-ове или имплементирате сопствени образац. Овај круг се врло лако преноси на Распберри Пи (ново за Пи? Почните овде Распберри Пи: Незванични водичБез обзира да ли сте тренутни власник Пи-а који жели да сазна више или потенцијални власник овог уређаја величине картице, ово није водич који желите да пропустите. Опширније ) или ЕСП8266 Упознајте Ардуино убицу: ЕСП8266Шта ако вам кажем да постоји Ардуино компатибилна плоча с уграђеним Ви-Фи-јем за мање од 10 долара? Па, постоји. Опширније .

Да ли градите реплику КИТТ? Волио бих видјети све ствари Книгхт Ридер у коментарима.

Јое је дипломирани професор информатике са Универзитета у Линцолну у Великој Британији. Он је професионални програмер софтвера, а када не лети дроновима или пише музику, често га могу наћи како снимају фотографије или снимају видео записе.