Turinys:
- 1 žingsnis: Darbo su ATTiny ir įrankiais bei medžiagomis pradžia
- 2 žingsnis: Aparatūra
- 3 žingsnis: programinė įranga
Video: „ATTiny-RAT“, „ATTINY“varomas mini šviesos sekėjas: 3 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Sveiki draugužiai, praėjo nemažai laiko nuo tada, kai paskelbiau savo paskutinį nurodymą. Na, dabar mano galvoje sukasi daugybė dalykų, bet man pavyko dokumentuoti savo „pirmuosius žingsnius“naudojant „ATTiny“serijos lustus šioje trumpoje instrukcijoje, kuri jums tinka.
Aš užsisakiau keletą ATTINY85 pavyzdžių tik todėl, kad norėjau juos išbandyti:-) (visi mėgsta išbandyti dalykus, tiesa?). Po to aš pradėjau piešti keletą idėjų į savo sąsiuvinį. Tiesą sakant, pirmas dalykas, kurį padariau, buvo mirksintis šviesos diodas, kuris, kaip visada, yra gera pradžia patikrinti, ar jūsų sąranka/įrankių grandinė veikia. Taip pat išbandžiau temperatūros ir drėgmės kaupiklį su DHT22 ir „SoftwareSerial“. Tai buvo sudėtinga, nes DHT bibliotekos daugiausia skirtos 16Mhz laikrodžiui (jei planuojate tai padaryti, patikrinkite, kaip iš anksto nustatyti vidinį laikrodį). Bet aš nusprendžiau parodyti jums kažką, kas yra, tiesiog, juokingiau. BTW: Aš įkėliau jums vieną savo piešinį, tai nėra Rembrandtas, bet jis parodys, kaip aš gavau šią (tikrai) kvailą idėją ant popieriaus lapo: -P.
Aš naudoju tik tuos daiktus, kuriuos turėjau gulėti, kad šis projektas būtų kuo pigesnis (man). Šio mažo nuotykio rezultatas yra gražus mažas „šviesos sekėjas robotas“už maždaug 10-15 USD (3 USD man:-P)
Taigi, jei jus domina ATTINY, tiesiog perskaitykite toliau.
BTW: atsiprašau už blogą anglų kalbą (nesu gimtoji)
1 žingsnis: Darbo su ATTiny ir įrankiais bei medžiagomis pradžia
Ko jums reikės norint pradėti:
- lustas ATTiny85
- „Arduino UNO“ar pan
-abreadboard su tam tikru trumpikliu arba ATTINY programuotoju arba patys pasidarykite programuotojo skydą „Arduino“(patikrinkite pridėtas nuotraukas, yra schema iš avdweb.nl). Aš taip pat padariau šį produktą ir esu juo labai patenkintas. Vienintelis pakeitimas buvo tas, kad pridėjau lizdą „ATTinyx4“serijai (žr. Paveikslėlį ir kontaktų diagramas).
- „Arduino IDE“(gaukite čia)
- „ArduinoIDE“aparatinės įrangos failus (atsisiųskite ir įdiekite)
Informacijos nuoroda į žaidimų aikštelę Tiesioginė nuoroda į naudojamus „github“failus
- įkelkite „Arduino“kaip ISP eskizą į UNO (tai bus jūsų programuotojas)
- vadovaukitės šia instrukcija (https://highlowtech.org/) arba šia instrukcija („ardutronix“) ir išbandykite „mirksėjimo“eskizą (pakeiskite PIN kodą. kaip nuorodą naudokite ATTINY paveikslėlį! jums reikės iš anksto sumirkyto ATTINY LED ir ~ 220 omų rezistorius)
Atlikite nedidelę duonos lentos sąranką, kad viską patikrintumėte. Jei viską padarėte teisingai, šviesos diodas mirksės ir būsite pasiruošę
ĮRANKIAI
- Lituoklis- kai kurie lydmetaliai- mažas vielos pjoviklis- „dremel“ar kitas sukamasis įrankis (tik PCB pjaustymui!)- kai kurie karšti klijai- pincetai- laidai
MEDŽIAGOS
- prototipas PCB (~ 4cmx6cm tai padarys)- 2x LDR- 5x 10k rezistorius (2x LDR ir 2x tranzistoriams BE, 1x LED)- 1x 330Ohm rezistorius (1x NEOPIXELS)- 2x LDR- 1x LED (jūsų spalva pasirinkimas, vietoj ratuko rato)- 3x NEOPIXEL WS2812- 2x tranzistorius (BD137 ar panašus)- 2x diodas (1N4001 arba panašus)- 2x mikromotorius (pvz., iš Hubsan mikrokopterio)- 1x ATTINY85 + pasirinktinai (rekomenduojama) 8PIN IC lizdas- 1x 1s LIPO (naudojau 140Ah iš seno RC sraigtasparnio)- kai kurios smeigtukai/lizdai- susitraukiantis vamzdis (LDR korpusas)
Tęskime kurdami aparatūrą …
2 žingsnis: Aparatūra
Jei pažvelgsite į pridėtas schemas, aparatūros sąranka yra gana paprasta. Taigi, jei galite skaityti schemas ir naudoti lituoklį, tai yra pusė triuko. Taip pat pažiūrėkite į nuotraukas, pridėjau jums keletą pastabų.
Aš nepateikiu PCB pjovimo plano, jūs turite laisvę kurti savo dizainą (būkite kūrybingi ir parodykite mums savo mažus robotus). Visų elektroninių komponentų išdėstymas taip pat priklauso nuo jūsų. Keletas patarimų iš mano pusės:
Stenkitės tiksliai priskirti variklius (stebėkite kampą!), Mes naudojame tik variklio veleną, o ne ratus. (tai sunaudos mažiau energijos) Rekomenduoju variklius pastatyti po akumuliatoriumi (svoris) ir naudoti LDR priekyje (45 ° kampu) kartu su šviesos diodais (bandau naudoti šį derinį, kad išvengtumėte kliūčių, toliau reikalingi bandymai).
Be to, aš rekomenduoju padaryti nedidelį įjungimo/išjungimo megztinį, kad akumuliatorius nebūtų taip lengvai pamestas.
Jei kas nors neaišku arba turite klausimų, tiesiog paklauskite manęs. Tai nereiks, kad daug senų padarytų disertaciją iš šio mažo projekto.
3 žingsnis: programinė įranga
Visų pirma atsisiųskite ir įdiekite „ADAFRUIT Neopixel Library“
Čia yra mano kodas su pagrindiniais aprašymais (taip pat pridėjau eskizo failą). Nekomentavau kiekvieno žingsnio, nes manau, kad tai nėra būtina.
Įkelkite eskizą į savo „ATTiny85“ir linksminkitės su nauju žaislu
Idėjos „asmenybės“funkcijai + galbūt kodo pavyzdžiai yra labai laukiami:-)
Jei kyla klausimų, drąsiai klauskite.
Tikiuosi, kad jums patiko mano trumpas pamokomas pamokas ir maža kelionė į ATTINY pasaulį.
/* ATTINY85-Rata paprastas ATTINY85 varomas šviesos sekimo robotas. 2.0 versija, autorė Auer Markus */
#įtraukti
#įtraukti
// varikliai
#define LMOTOR 0 #define RMOTOR 1 // šviesos diodai #define PIXELPIN 2 #define NUMPIXEL 3 // LDRs #define LLDR A2 #define RLDR A3
// otherint emo = 0; plūdės kalibras; loginis emostatas; ilgas oldmillis; // apibrėžti NeopikseliaiAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);
negaliojanti sąranka ()
{// prabangus laikrodis, priešingu atveju susidursite su tam tikromis laiko problemomis (neopikselis lib parašytas 16 MHz dažniu) #if apibrėžta (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif
// PINMODE pinMode (LMOTOR, OUTPUT); pinMode (RMOTOR, OUTPUT); pinMode (LLDR, INPUT); pinMode (LLDR, INPUT); // inicijuoti taškus PIXEL.begin (); PIXEL.show (); vėlavimas (500); // startsequence for (int i = 0; i
tuštumos kilpa ()
{if (lightfollow () == 1) {left (); } else if (lightfollow () == 2) {right (); } else if (lightfollow () == 0) {forward (); } emocija (); }
int lightfollow () {
int slenkstis = 14; int rezultatas = 0; plūdė kairėn = 0; plūdė į dešinę = 0; int mėginiai = 1; // skaityti LDR (int j = 0; j <pavyzdžiai; j ++) {
kairė = kairė + analogRead (LLDR); dešinė = dešinė + (analogRead (RLDR)*kalibras);
}
// apskaičiuoti rezultatą (iš kurios pusės sklinda šviesa?)
if ((kairė/mėginiai)> ((dešinė/mėginiai)+slenkstis)) {rezultatas = 2;}
else if ((kairė/mėginiai) <((dešinė/pavyzdžiai)-slenkstis)) {rezultatas = 1;}
else {rezultatas = 0;}
grąžinimo rezultatas; } void forward () {// Persiųsti analogWrite (LMOTOR, 230); analogWrite (RMOTOR, 230); PIXEL.setPixelColor (0, PIXEL. Color (0, 0, 255)); PIXEL.setPixelColor (2, PIXEL. Color (0, 0, 255)); PIXEL.show (); }
void left () {
// LEFT analogWrite (LMOTOR, 150); analogWrite (RMOTOR, 255); PIXEL.setPixelColor (0, PIXEL. Color (0, 0, 255)); //PIXEL.setPixelColor(1, PIXEL. Color (75, 0, 0)); PIXEL.setPixelColor (2, PIXEL. Color (0, 100, 0)); PIXEL.show (); }
negalioja teisė () {
// RIGHT analogWrite (LMOTOR, 255); analogWrite (RMOTOR, 150); PIXEL.setPixelColor (0, PIXEL. Color (0, 100, 0)); PIXEL.setPixelColor (2, PIXEL. Color (0, 0, 255)); PIXEL.show (); }
// tai yra tolesni eksperimentai, bandant suteikti šiam asmeniui šiek tiek asmenybės:-) Aš bandau, ką galėčiau padaryti, bet dar neturiu gerų idėjų.
niekinė emocija () {int emocija = 2500; int trukmė = atsitiktinė (250, 750); if (millis () - oldmillis> emotimer) {oldmillis = millis (); emo = atsitiktinis (1, 4); } if (millis () - oldmillis> trukmė) {emostate =! emostate; } if (emostate == true) {switch (emo) {case 1: PIXEL.setPixelColor (1, PIXEL. Color ((255), (255), (255))); PIXEL.show (); pertrauka; 2 atvejis: PIXEL.setPixelColor (1, PIXEL. Color ((255), (0), (0))); PIXEL.show (); pertrauka; 3 atvejis: PIXEL.setPixelColor (1, PIXEL. Color ((0), (255), (0))); PIXEL.show (); pertrauka; numatytasis: PIXEL.setPixelColor (1, PIXEL. Color (atsitiktinis (0, 255), atsitiktinis (0, 255), atsitiktinis (0, 255))); PIXEL.show (); pertrauka; }} else {PIXEL.setPixelColor (1, PIXEL. Color (25, 0, 0)); PIXEL.show (); }}
Rekomenduojamas:
Linijos sekėjas „HoGent“- „Synthese“projektas: 8 žingsniai
Linijos sekėjas HoGent - Syntheseproject: Voor het vak syntheseproject kregen we de opdracht een linefollower te maken. In deze instructable zal ik uitleggen hoe ik deze gemaakt heb, en tegen welke problemen ik o.a ben aangelopen
„Tinkercad“linijos sekėjas: 3 žingsniai
„Tinkercad“linijos sekėjas: „A-Line Follower Robot“, kaip rodo pavadinimas, yra automatizuota transporto priemonė, valdoma pagal vizualią liniją, įterptą į grindis ar lubas. Paprastai vaizdinė linija yra kelias, kuriuo eina linijos sekėjas robotas, ir tai bus juoda linija
RGB šviesos varomas delnų judėjimas bekontaktis: 4 žingsniai
RGB šviesos varomas delnų judėjimas bekontaktis: RGB naktinė šviesa, su galimybe valdyti naktinės šviesos spalvą rankos judesiais. Naudodami tris atstumo jutiklius, artėdami prie rankos ar ją nuimdami, pakeisime kiekvieno iš trijų RGB spalvos komponentų ryškumą. Ar Ar
Pasidaryk pats „Arduino“varomas IR šviesos pistoletas: 12 žingsnių
„Pasidaryk pats“„Arduino“varomas IR šviesos pistoletas: „SAMCO“yra „Namco GunCon“, kurio vidus pakeistas „Arduino“mikrovaldikliu ir „DF Robot IR“padėties nustatymo kamera, ir veikia kaip HID pelė LCD (plokščiaekraniame) televizoriuje/monitoriuose. Šiuo metu ginklas veikia su „Mame“„RetroPie“(skirtas „Raspberry Pi“), „PSX Beetl“
KAIP PADARYTI IR IR IR ŠVIESOS ŠVIESOS ŠVIESOS ŠVIESOS KAMERĄ: 5 žingsniai (su paveikslėliais)
KAIP PADARYTI IR IR IR ŠVIESOS ŠVIESOS ŠVIESOS KAMERĄ: Supratau infraraudonųjų spindulių kamerą, kad galėčiau ją naudoti judesio fiksavimo sistemoje. Su juo taip pat galite gauti tokių nuostabių vaizdų: blizgių objektų, matomų fotoaparate, kurie yra normalūs realybėje. Už pigią kainą galite gauti gana gerų rezultatų. Jis