Turinys:
- Prekės
- 1 žingsnis: skirtingi moduliai
- 2 žingsnis: Surinkimas 1 dalis
- 3 žingsnis: Surinkimas 2 dalis
- 4 žingsnis: Prijunkite akis
- 5 žingsnis: PIR jutiklio ir modulio prijungimas
- 6 žingsnis: MP3 grotuvas ir stiprintuvas
- 7 žingsnis: galutinis surinkimas
- 8 žingsnis: DANGTIS
Video: Helovino baisių akių pasiūlymas: 8 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Bėgant metams, kuriant įvairius projektus, buvo a
visa kolekcija įvairių modulių, kurie tiesiog gulėjo nenaudojami, ir aš norėjau bent kai kuriuos iš jų panaudoti tam, kas būtų smagu ir kūrybinga tuo pačiu metu.
Eidama į „instructables.com“svetainę, kurioje rasite idėjų, aš sutikau keletą projektų, kuriuos, mano manymu, būtų galima sumaišyti ir sukurti kažką šiam „Helovinui“.
Turiu padėkoti Steve'ui Quinnui, netikėtam kūrėjui, kad naudojosi jų idėjomis.
Prekės
NAUDOTI PUNKTAI IR MODULIAI
Naudojami moduliai
1 Atskira „Atmega8“lenta
2 PIR pagrindo valdiklio plokštė, skirta 5 voltų išėjimui
3 LM386 stiprintuvo plokštė
4 Bendras MP3 grotuvo modulis
5 MAX7219 8x8 LED moduliai
6 PIR modulis (bendras)
7 4”4 omų garsiakalbis
Kitos medžiagos
a. Tuščia kartoninė dėžutė
b. Tušti vienkartiniai vandens buteliai
c. Spalvos keitimo LED 5V
d. Laidų asortimentas
e. Klijų pistoletas
f. Lituoklis
g. Įvairūs įrankiai ir pjaustytuvai
h. 12V 1A transformatorius žemyn
Svarbu
1 „Arduion IDE“
2 AVR lustų programavimo lenta
3 Programavimo (įrašymo) programinė įranga
1 žingsnis: skirtingi moduliai
Pirma, mes apsvarstysime, kaip sukurti skirtingus modulius, mes
tikrai galėčiau pagaminti tik vieną PCB visai elektronikai ir kad projektas veiktų puikiai, bet man buvo idėja naudoti skirtingus elementus, kuriuos jau buvau pagaminusi anksčiau įvairiems projektams ir dabar, kai jų poreikis baigėsi, aš tiesiog norėjau pakartotinai naudoti tuos daiktus.
ATmega8 lenta
Aš naudoju ATmega8 lustą be jokio išorinio kristalo. Tiesą sakant, šios plokštės buvo sukurtos paleisti kai kuriuos P10 16x32 LED modulius, ir aš turėjau keletą šio projekto. Lentos ir PCB išdėstymo paveikslėlis yra toks (žr. Paveikslėlius). Yra daugybė straipsnių apie tai, kaip sukurti savo „Arduino“lentą „instrukcijose“. Galite tiesiog naudoti bet kurią seną „Arduino“lentą, kurią galbūt gulėjote.
PIR valdytojų taryba
Ši PIR lenta buvo skirta įjungti ir išjungti kai kurias mažas LED pagrindu sukurtas festivalio dekoracijas, o dabar ji tiesiog gulėjo ir aš nusprendžiau ją naudoti. Grandinės išdėstymas parodytas paveikslėliuose
THE LM 386 stiprintuvo plokštė
Tai stiprintuvo modulis, kuris sustiprina MP3 grotuvo modulio išvestį. išdėstymas ir grandinė yra gana paprasti, o nuotraukos viską pasako. Grandinės išdėstymas ir užpildytos plokštės vaizdas yra savaime suprantami.
MP3 grotuvo modulis
Aš naudoju paveikslėlyje parodytą MP3 grotuvo modulį. Jis yra lengvai prieinamas „Amazon“ir tt, jis yra pigus ir lengvai naudojamas. Geriausia šio modulio dalis yra ta, kad norint pradėti žaisti nereikia jokių papildomų komandų ar ryšio. Kai tik tiekiama tinkama maitinimo plokštė, ji pradeda atlikti savo darbą.
MAX7219 8x8 LED moduliai
Šie 8x8 LED ekrano moduliai yra lengvai prieinami „Amazon“ir tt Pateikiamos mano naudojamų nuotraukų nuotraukos.
PIR modulis
Aš naudoju lengvai prieinamą PIR jutiklio modulį. Tai galima rasti „Amazon“ir pan., Ji yra pigi ir paprasta naudoti. Nuotraukos pateikiamos kaip nuoroda.
2 žingsnis: Surinkimas 1 dalis
Koncepcija buvo sujungti visus šiuos modulius ir sukurti Helovino rekvizitą, kuris įsijungtų, kai kas nors kerta priešais atramą. Tam aš prijungiau 12 voltų maitinimo šaltinį prie PIR valdymo plokštės, kuri savo ruožtu 7805 IC pagalba sumažino įtampą iki 5 V DC, o ši 5 V nuolatinė įtampa buvo perduota PIR jutikliui ir toliau prie kitų modulių, ATmega8 plokštę, stiprintuvo modulį ir MP3 grotuvo modulį, kai kas nors atėjo priešais PIR jutiklį. Srauto diagrama viską pasako.
Kaip matome, PIR jutiklis įjungia ATmega8 plokštę, stiprintuvo modulį ir MP3 grotuvo modulį, ATmega8 valdo LED matricą „Akys“, MP3 grotuvas atkuria garso efektus, o stiprintuvo modulis siunčia signalą garsiakalbiui.
„Arduino“kodas yra tiesioginis nukrypimas nuo Steve Quinn nurodymų, išskyrus tai, kad kodas buvo pakeistas laiku. Naudojamas kodas pateiktas žemiau. Taip pat pridedamas INO failas.
Kodas
// D10 = Skaitmeninis O/P CS kaištis
// D11 = Skaitmeninis O/P laikrodžio kaištis
// D12 = Skaitmeninis O/P duomenų kaištis
//
#įtraukti
#įtraukti
const int numDevices = 2; // panaudotų MAX7219 skaičius
const int dataPin = 12;
const int clkPin = 11;
const int csPin = 10;
LedControl lc = LedControl (dataPin, clkPin, csPin, numDevices);
// Įmeskite šį kodą į „Arduino“kūrimo aplinką
#define LeftEye1 0
#define RightEye1 1
#define LeftEye2 2
#define RightEye2 3
#define LeftEye3 4
#define RightEye3 5
#define LeftEye4 6
#define RightEye4 7
#define „LeftEye5“8
#define RightEye5 9
#define LeftEye6 10
#define RightEye6 11
#define LeftEye7 12
#define RightEye7 13
#define LeftEye8 14
#define RightEye8 15
#define LeftEye9 16
#define RightEye9 17
#define LeftEye10 18
#define RightEye10 19
#define LeftEye11 20
#define RightEye11 21
#define LeftEye12 22
#define RightEye12 23
#define LeftEye13 24
#define RightEye13 25
#define LeftEye14 26
#define RightEye14 27
#define LeftEye15 28
#define RightEye15 29
#30
#31
#32
#33
#34
#35. nustatykite „RightEye18“
36. nusileisti
37. nusileisti
#38
39. nusileisti
typedef structure {
const unsigned char array1 [8];
}
binaryArrayType;
binaryArrayType binaryArray [40] =
{
{// Kairės akys1, 0
B01111110, B10000001, B10000001, B10011001, B10011001, B10000001, B10000001, B01111110
}, {// „RightEye1“, 1
B01111110, B10000001, B10000001, B10011001, B10011001, B10000001, B10000001, B01111110
}, {// Kairės akys2, 2
B00000000, B00111100, B01000010, B01011010, B01011010, B01000010, B00111100, B00000000
}, {// „RightEye2“, 3
B00000000, B00111100, B01000010, B01011010, B01011010, B01000010, B00111100, B00000000
}, {// Kairysis akys3, 4
B00000000, B00111100, B00100100, B00110100, B00110100, B00100100, B00111100, B00000000
}, {// „RightEye3“, 5
B00000000, B00111100, B00100100, B00110100, B00110100, B00100100, B00111100, B00000000
}, {// Kairysis akys4, 6
B00011000, B00011000, B00011000, B00011000, B00011000, B00011000, B00011000, B00000000
}, {// „RightEye4“, 7
B00000000, B00011000, B00011000, B00011000, B00011000, B00011000, B00011000, B00011000
}, {// Kairysis akys5, 8
B01111110, B10000001, B10000001, B10011001, B10011001, B10000001, B10000010, B01111100
}, {// „RightEye5“, 9
B01111100, B10000010, B10000001, B10011001, B10011001, B10000001, B10000001, B01111110
}, {// Kairysis akys6, 10
B01111110, B10000001, B10000001, B10011001, B10011001, B10000010, B10000100, B01111000
}, {// „RightEye6“, 11
B01111000, B10000100, B10000010, B10011001, B10011001, B10000001, B10000001, B01111110
}, {// Kairysis akys7, 12
B01111110, B11000001, B10000001, B10011001, B10011010, B10000100, B10001000, B01110000
}, {// „RightEye7“, 13
B01110000, B10001000, B10000100, B10011010, B10011001, B10000001, B11000001, B01111110
}, {// Kairės akys8, 14
B00111110, B01000001, B10000001, B10011001, B10011010, B10000100, B01001000, B00110000
}, {// „RightEye8“, 15
B00110000, B01001000, B10000100, B10011010, B10011001, B10000001, B01000001, B00111110
}, {// „Kairės akys“9, 16
B01111110, B10000001, B10000001, B10011001, B10011001, B10000001, B10000001, B01111110
}, {// „RightEye9“, 17
B01111110, B10000001, B10000001, B10011001, B10011001, B10000001, B10000001, B01111110
}, {// Kairysis akys10, 18
B01111110, B10000001, B10000001, B10000001, B10011001, B10011001, B10000001, B01111110
}, {// „RightEye10“, 19
B01111110, B10000001, B10000001, B10000001, B10011001, B10011001, B10000001, B01111110
}, {// Kairysis akys11, 20
B01111110, B10000001, B10000001, B10000001, B10011001, B10011001, B10000001, B01111110
}, {// „RightEye11“, 21
B01111110, B10000001, B10000001, B10000001, B10011001, B10011001, B10000001, B01111110
}, {// Kairės akys12, 22
B01111110, B10000001, B10000001, B10000001, B10000001, B10011001, B10011001, B01111110
}, {// „RightEye12“, 23
B01111110, B10000001, B10000001, B10000001, B10000001, B10011001, B10011001, B01111110
}, {// Kairės akys13, 24
B01111110, B10000001, B10000001, B10000001, B10000001, B10000001, B10011001, B01111110
}, {// „RightEye13“, 25
B01111110, B10000001, B10000001, B10000001, B10000001, B10000001, B10011001, B01111110
}, {// Kairės akys14, 26
B00000000, B00111100, B01000010, B01000010, B01000010, B01011010, B00111100, B00000000
}, {// „RightEye14“, 27
B00000000, B00111100, B01000010, B01000010, B01000010, B01011010, B00111100, B00000000
}, {// Kairės akys15, 28
B00000000, B00111100, B00100100, B00100100, B00100100, B00111100, B00111100, B00000000
}, {// „RightEye15“, 29
B00000000, B00111100, B00100100, B00100100, B00100100, B00111100, B00111100, B00000000
}, {// Kairės akys16, 30
B00011000, B00011000, B00011000, B00011000, B00011000, B00011000, B00011000, B00000000
}, {// „RightEye16“, 31
B00000000, B00011000, B00011000, B00011000, B00011000, B00011000, B00011000, B00011000
}, {// Kairės akys17, 32
B00010000, B00010000, B00010000, B00010000, B00010000, B00010000, B00010000, B00000000
}, {// „RightEye17“, 33
B00000000, B00010000, B00010000, B00010000, B00010000, B00010000, B00010000, B00010000
}, {// Kairės akys18, 34
B01111110, B10000001, B10000001, B10000001, B10000001, B10000001, B10001101, B01111110
}, {// „RightEye18“, 35
B01111110, B10000001, B10000001, B10000001, B10000001, B10000001, B10001101, B01111110
}, {// Kairės akys19, 36
B01111110, B10000001, B10000001, B10000001, B10000001, B10000001, B10000111, B01111110
}, {// „RightEye19“, 37
B01111110, B10000001, B10000001, B10000001, B10000001, B10000001, B10000111, B01111110
}, {// Kairysis akys20, 38
B01111110, B10000001, B10000001, B10000001, B10000001, B10000011, B10000011, B01111110
}, {// „RightEye20“, 39
B01111110, B10000001, B10000001, B10000001, B10000001, B10000011, B10000011, B01111110
}
};
typedef structure {
int frameCount; // rodyklės rodyklė į binaryArray, reiškianti animacijos rėmelį
int frameDelay; // Maždaug milisekundžių delsos, kad būtų rodomas šis animuotas kadras
int frameLuminance; // 0… 15, LED matricos intensyvumas tam tikram kadrui
} frameType;
frameType movie =
{
// Mirksi
{LeftEye1, 1000, 1}, {LeftEye2, 5, 1}, {LeftEye3, 10, 1}, {LeftEye4, 10, 1}, {LeftEye17, 100, 1}, {LeftEye4, 10, 1}, {LeftEye3, 10, 1}, {LeftEye2, 5, 1}, // Vėl pilnas
{Kairės akys1, 1500, 2}, // susiraukęs
{LeftEye5, 5, 3}, {LeftEye6, 5, 4}, {LeftEye7, 5, 5}, {LeftEye8, 1000, 11}, {LeftEye7, 5, 5}, {LeftEye6, 5, 4}, {LeftEye5, 5, 3}
};
tuštumos vėlavimas Millis (int milisekundės)
{
(int i = 0; i <milisekundės; i ++)
delayMikrosekundės (1000);
}
void setup () {
for (int x = 0; x <numDevices; x ++) {
lc.sutdown (x, false); // MAX72XX veikia energijos taupymo režimu paleidžiant
lc.setIntensity (x, 1); // Nustatykite ryškumą į numatytąją vertę
lc.clearDisplay (x); // ir išvalykite ekraną
}
}
void loop () {
lc.setIntensity (0, 3);
lc.setIntensity (1, 3);
nors (tiesa) {
(int a = 0; a <(sizeof (filmas) / sizeof (frameType)); a ++)
{
už (int i = 0; i <8; i ++)
{
lc.setRow (0, i, binaryArray [filmas [a].frameCount].array1 );
lc.setRow (1, i, binaryArray [filmas [a].frameCount + 1].array1 );
lc.setIntensity (0, filmas [a].frameLuminance);
lc.setIntensity (1, filmas [a].frameLuminance);
}
delayMillis (filmas [a].frameDelay);
}
}
}
3 žingsnis: Surinkimas 2 dalis
Paleidę „Arduino IDE“, turite nukopijuoti kodą ir surinkti/patvirtinti kodą. Renkant kodą, HEX failas sukuriamas kompiuterio TEMP aplanke. Prieš uždarydami „Arduino IDE“, galite nukopijuoti HEX failą iš „temp“aplanko ir šį failą turime įrašyti į „ATmega8“lustą, kad jis veiktų.
Rinkdamas kodą, pasirinkau plokštę kaip „Arduino NG arba senesnę“, o procesorių - kaip „ATmega8“, o po kompiliavimo nukopijavau HEX failą iš kompiuterio „Temp“aplanko, prieš uždarydamas „Arduino IDE“.
Šis HEX failas buvo sudegintas ant „ATmega8“lusto naudojant išorinį AVR degiklį. Tam naudojau „Extreme Burner_AVR“programinę įrangą ir AVR įrašymo plokštę. Lentos paveikslėlis pridedamas. Galite naudoti bet kokią jums patogią AVR programavimo programinę įrangą.
Išorinio programuotojo naudojimo priežastis buvo ta, kad nenorėjau įrašyti įkrovos įkroviklio į „Atmega8“lustus ir be įkrovos tvarkyklės jie neveiks nei įprastoje „Arduino“plokštėje, nei naudojant „Arduion IDE“. Gana lengva išgauti HEX failus, kai surenkate kodą naudodami „Arduino IDE“, ir tai aš padariau.
PASTABA
LABAI SVARBU pasirinkti tinkamus saugiklių bitų nustatymus naudojant išorinį programuotoją.
Šiuo atveju, kadangi mes nenaudojame išorinio kristalo ir pasikliaujame vidiniu ATmega8 mikroschemos laikrodžiu, svarbu atitinkamai sukonfigūruoti saugiklių bitus. Aš pasirinkau šiuos saugiklių nustatymus.
Lfuse- E4
Hfuse - D9
KĄ TAI REIŠKIA
Tai reiškia, kad nenaudojame išorinio kristalo ar rezonatoriaus
Laikrodis nustatytas į 8 MHz vidinį laikrodį
Kai ATmega8 mikroschema buvo užprogramuota, atėjo laikas surinkti projektą ir jį išbandyti.
4 žingsnis: Prijunkite akis
MAX7219 8x8 LED matrica buvo prijungta taip, kaip nurodyta toliau.
ATmega8 lenta iki MAX7219 Matrica
IO kaištis D10 į CS PIN kodą
IO kaištis D11 TO CLK PIN
IO kaištis D12 TO DIN PIN
Nuo VCC iki VCC
Nuo GND iki GND
Žr. Paveikslėlį
5 žingsnis: PIR jutiklio ir modulio prijungimas
Tada PIR jutiklis buvo prijungtas prie PIR valdiklio
Valdyba, jungtys yra tokios
PIR valdiklio plokštė prie PIR jutiklio
VCC į VCC
CTRL į CTRL
GND į GND
Žr. Diagramą
Tai yra dalis, dėl kurios viskas vyksta. PIR jutiklis užfiksuoja karšto kraujo būtybių judesius ir įjungia visų skirtingų grandinių/modulių maitinimą. laikas PIR jutiklyje buvo sureguliuotas pagal reikalavimus ir šiuo atveju jis yra apie 40 - 45 sekundes. Jis siunčia 5 voltų nuolatinę srovę į visas prie jo prijungtas grandines maždaug 40–45 sekundes.
6 žingsnis: MP3 grotuvas ir stiprintuvas
Šalia MP3 grotuvo modulio ir stiprintuvo modulio.
Mano naudojamam MP3 grotuvui nereikia įjungti jokių mygtukų, kai tik jam tiekiama tinkama įtampa, jis automatiškai pradeda groti. Man reikėjo tik vieno takelio, todėl radau SD kortelę su mažiausiu atminties kiekiu (4 GB, nes šiais laikais beveik neįmanoma gauti jokios mažesnės talpos kortelės). Garsai, kuriuos atsisiunčiau iš interneto, iš tikrųjų buvo atsisiųsta nemažai garso efektų ir jie visi buvo surinkti, kad būtų sukurtas vienas MP3 takelis naudojant garso redaktoriaus programinę įrangą. Aš naudoju „Wave Editor“ir galiausiai įkėliau šį vienintelį takelį į SD kortelę. SD kortelė buvo sumontuota MP3 grotuvo modulyje, o išvestis buvo prijungta prie stiprintuvo modulio, kad būtų gautas garsas iš garsiakalbio.
Žr. Paveikslėlį
„LM386“stiprintuvo mikroschemai reikia labai nedaug išorinių komponentų ir skleidžia gana gerą garsą iš mažų garsiakalbių. Grandinę yra gana lengva surinkti iš perforatoriaus, o man prireikė maždaug 15-20 minučių. Vaizdas yra gana savaime suprantamas.
7 žingsnis: galutinis surinkimas
Prieš montuodamas viską į korpusą, norėjau viską išbandyti ir, jei reikia, išdėstyti modulius ir atlikti galutinius sujungimus. Po to, kai buvau patenkintas dalių darbu. Pataisiau juos šiam tikslui sukurtame kortelių plokštės korpuse.
Pridedu vaizdo įrašą po paskutinio rekvizito surinkimo.
8 žingsnis: DANGTIS
Aptvaras
Dėklas buvo pagamintas iš senos kartoninės dėžutės, nudažytos raudonai. Akių ir PIR jutiklio vieta buvo iškirpta aštriu peiliuku. Ant dėžutės ir akių buvo įklijuotas kaukolės atspaudas ir kt.atitinkamai iškirpti ir kontūras buvo perbraižytas juodu nuolatinio žymeklio rašikliu. Aš padariau plaukus iš išmestų vandens butelių, supjaustiau juos plonomis juostelėmis ir įklijavau su karšto lydalo klijais ant galvos ir šonų. Šonuose pritvirtinau 2 spalvų keitimo šviesos diodus, kurie buvo prijungti prie išvesties iš PIR valdiklio plokštės.
Garsiakalbiui buvo padarytos mažos skylės, o visi elementai buvo pritvirtinti naudojant karšto lydalo klijus dėžutės viduje. Maitinimo laidas buvo išimtas iš dėžutės galo ir viskas.
Tikiuosi, kad jums patiks padaryti šį Helovino rekvizitą vaikams !!
Netrukus pridėsiu šiame projekte naudojamą garso įrašą.
Su Helovinu visiems !!
Rekomenduojamas:
Robotų pasiūlymas su akiniais: 5 žingsniai
Robotinis pasiūlymas su akiniais: Šis projektas parodo, kaip padaryti robotinį pasiūlymą su IT akiniais. Į šį projektą įtrauktas 3D spausdintas laikiklis, iš kurio bus pagaminta linijinė pavara, jei ji bus sujungta su pigiomis robotų stelažo ir krumpliaračio dalimis. Pradėkite atsisiųsti laikiklį čia: https: //www.th
Žmogaus akių judesių stebėjimas: 6 žingsniai
Žmogaus akių judesio sekimas: Šio projekto tikslas yra užfiksuoti žmogaus akies judesį ir parodyti jo judesį ant LED formos žibintų, kurie yra akies formos. Šio tipo projektai gali būti daug panaudoti robotikos ir ypač humos srityje
Variklio judėjimas naudojant akių stebėjimą: 8 žingsniai
Judantis variklis su akių stebėjimu: Šiuo metu akių stebėjimo jutikliai yra labiau paplitę įvairiose srityse, tačiau komerciškai jie labiau žinomi dėl interaktyvių žaidimų. Ši pamoka nepretenduoja į sudėtingų jutiklių kūrimą, nes ji yra labai sudėtinga ir dėl vis dažniau naudojamo
Akių obuolių receptas: BME60B projektas: 9 žingsniai
Akių obuolių receptas: BME60B projektas: Autorius: Hannah Silos, Sang Hee Kim, Thomas Vazquez, Patrick Viste Pasak Mičigano technologijos universiteto, dioptrija yra
„SimpleClean Psycho Pass Dominator“pasiūlymas: 6 žingsniai
„SimpleClean Psycho Pass Dominator Prop“: tai pirmas mano bandymas kurti rekvizitus. Man pavyko tai padaryti per savaitę atostogų mokykloje, statant vietoje. Šis dominatoriaus pasiūlymas, kad būtų galima iš nemirtino paralyžiaus paversti mirtino pašalinimo režimu, vaidina tinkamą