Satura rādītājs:
- 1. darbība. Darba sākšana ar ATTiny un rīkiem un materiāliem
- 2. darbība. Aparatūra
- 3. darbība: programmatūra
Video: ATTiny-RAT, ATTINY darbināms mini gaismas sekotājs: 3 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Sveiki draugi, ir pagājis kāds laiks, kopš es ievietoju savu pēdējo pamācību. Nu, manā galvā šobrīd notiek daudzas lietas, bet man izdevās dokumentēt savus "pirmos soļus" ar ATTiny sērijas mikroshēmām šajā īsajā pamācībā, kas jums ir pieejama.
Es pasūtīju dažus ATTINY85 paraugus tikai tāpēc, ka gribēju tos pārbaudīt:-) (visiem patīk pārbaudīt lietas, vai ne?). Pēc tam es sāku zīmēt dažas idejas savā piezīmju grāmatiņā. Godīgi sakot, pirmā lieta, ko es izdarīju, bija mirgojoša gaismas diode, kas, kā vienmēr, ir labs sākums, lai pārbaudītu, vai jūsu iestatījumi/rīku ķēde darbojas. Es arī izmēģināju temperatūras un mitruma reģistrētāju ar DHT22 un SoftwareSerial. Tas bija grūts, jo DHT bibliotēkas galvenokārt paredzētas 16Mhz pulkstenim (ja plānojat kaut ko tādu darīt, pārbaudiet, kā iepriekš iestatīt iekšējo pulksteni). Bet es nolēmu jums parādīt kaut ko smieklīgāku. BTW: Es augšupielādēju jums vienu no saviem zīmējumiem, tas nav Rembrants, bet tas parādīs, kā es ieguvu šo (patiešām) stulbo ideju uz papīra lapas: -P.
Es izmantoju tikai lietas, kas man bija gulēt, lai šis projekts būtu pēc iespējas lētāks (man). Šī mazā piedzīvojuma rezultāts ir jauks, mazs "gaismas sekotāju robots" par aptuveni 10-15 USD (3 USD man:-P)
Tātad, ja jūs interesē ATTINY, izlasiet tālāk.
BTW: atvainojos par slikto angļu valodu (es neesmu dzimtā valoda)
1. darbība. Darba sākšana ar ATTiny un rīkiem un materiāliem
Kas jums būs nepieciešams, lai sāktu:
- mikroshēma ATTiny85
- Arduino UNO vai līdzīgs
-abreadboard ar kādu jumper-wire vai ATTINY programmētāju vai pats izveidojiet programmētāja vairogu Arduino (pārbaudiet pievienotos attēlus, ir shematisks no avdweb.nl). Es arī to uztaisīju, un esmu ļoti apmierināts ar to. Vienīgā modifikācija, ko veicu, bija tā, ka es pievienoju ligzdu ATTinyx4 sērijai (skatiet attēlu un pinout diagrammas).
- Arduino IDE (iegūstiet to šeit)
- ArduinoIDE aparatūras faili (lejupielādējiet un instalējiet)
Informācijas saite uz rotaļu laukumu tieša saite uz izmantotajiem github failiem
- ielādējiet Arduino kā ISP skici UNO (tas būs jūsu programmētājs)
- izpildiet šo instrukciju (https://highlowtech.org/) vai šo pamācību (ardutronix) un izmēģiniet "mirgojošu" skici (mainiet PIN kodu. izmantojiet ATTINY attēlu kā atsauci! jums būs nepieciešams iepriekš uzliesmots ATTINY a LED un ~ 220Ohm rezistors tam)
Veiciet nelielu maizes dēļa iestatīšanu, lai visu pārbaudītu. Ja esat izdarījis visu pareizi, gaismas diode mirgos un esat gatavs doties
RĪKI
- Lodāmurs- daži lodmetāli- mazs stieples griezējs- dremel vai cits rotējošs instruments (tikai PCB griešanai!)- daži karstās līmes- pincetes- vadi
MATERIĀLI
- prototipa PCB (~ 4cmx6cm to darīs)- 2x LDR- 5x 10k rezistors (2x LDR un 2x tranzistoriem BE, 1x LED)- 1x 330Ohm rezistors (1x NEOPIXELS)- 2x LDR- 1x LED (jūsu krāsa izvēle, ritenīša riteņa vietā)- 3x NEOPIXEL WS2812- 2x tranzistors (BD137 vai līdzīgs)- 2x diode (1N4001 vai līdzīgs)- 2x mikromotors (piem., no Hubsan mikrokoptera)- 1x ATTINY85 + pēc izvēles (ieteicams) 8PIN IC ligzda- 1x 1s LIPO (es izmantoju 140Ah no vecā RC helikoptera)- daži pinheaders/rozetes- saraušanās caurule (LDR korpuss)
Turpināsim, veidojot aparatūru …
2. darbība. Aparatūra
Ja paskatāties uz pievienotajām shēmām, aparatūras iestatīšana ir diezgan vienkārša. Tātad, ja jūs varat lasīt shēmas un izmantot lodāmuru, tā ir puse no trika. Apskatiet arī fotoattēlus, es jums pievienoju dažas piezīmes.
Es nesniedzu plānu PCB griešanai, jums ir brīva iespēja izveidot savu dizainu (esiet radošs un parādiet mums savus sīkos robotus). Visu elektronisko komponentu izvietojums ir atkarīgs arī no jums. Daži padomi no manas puses:
Mēģiniet precīzi noregulēt motorus (skatieties leņķi!), Riteņu vietā mēs izmantojam tikai motora vārpstu. (tas patērēs mazāk enerģijas) Es iesaku novietot motorus zem akumulatora (svars) un izmantot LDR priekšpusē (45 ° leņķī) pārī ar LED (es mēģinu izmantot šo kombināciju, lai izvairītos no šķēršļiem, tālāk) ir nepieciešami testi).
Turklāt es iesaku izveidot nelielu ieslēgšanas/izslēgšanas džemperi, lai akumulators nepazustu tik viegli.
Ja kaut kas nav skaidrs vai ja jums ir jautājumi, jautājiet man. Tas neradīs daudzus vecākus no šī mazā projekta izveidot disertāciju.
3. darbība: programmatūra
1. lejupielādējiet un instalējiet ADAFRUIT Neopixel Library
Šeit ir mans kods ar dažiem galvenajiem aprakstiem (es pievienoju arī skices failu). Es nekomentēju katru soli, jo domāju, ka tas nav nepieciešams.
Augšupielādējiet skici savā ATTiny85 un izklaidējieties ar savu jauno rotaļlietu
Idejas funkcijai "personība" + varbūt koda piemēri ir ļoti apsveicami:-)
Ja ir kādi jautājumi, droši jautājiet.
Es ceru, ka jums patika mans īsais pamācības un mazais ceļojums ATTINY pasaulē.
/* ATTINY85-Rata vienkāršs ATTINY85 darbināms gaismas sekotājs robots. Versija 2.0, Auer Markus */
#iekļaut
#iekļaut
// motori
#define LMOTOR 0 #define RMOTOR 1 // LEDs #define PIXELPIN 2 #define NUMPIXEL 3 // LDRs #define LLDR A2 #define RLDR A3
// otherint emo = 0; pludiņa kalibrs; Būla emostāts; garais oldmillis; // definēt NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);
anulēts iestatījums ()
{// augstākā līmeņa pulkstenis, pretējā gadījumā jūs saskarsities ar dažām laika problēmām (neopikselis lib ir rakstīts 16 MHz) #ja definēts (_AVR_ATtiny85_), ja (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif
// PINMODE pinMode (LMOTOR, OUTPUT); pinMode (RMOTOR, OUTPUT); pinMode (LLDR, INPUT); pinMode (LLDR, INPUT); // inicializēt pikseļus PIXEL.begin (); PIXEL.show (); kavēšanās (500); // startsequence for (int i = 0; i
tukša cilpa ()
{if (lightfollow () == 1) {left (); } cits if (lightfollow () == 2) {right (); } cits if (lightfollow () == 0) {forward (); } emocijas (); }
int lightfollow () {
int slieksnis = 14; int rezultāts = 0; pludiņš pa kreisi = 0; peldēt pa labi = 0; int paraugi = 1; // lasīt LDR par (int j = 0; j <paraugi; j ++) {
pa kreisi = pa kreisi + analogRead (LLDR); pa labi = pa labi + (analogRead (RLDR)*kalibrs);
}
// aprēķināt rezultātu (no kura virziena nāk gaisma?)
ja ((pa kreisi/paraugi)> ((pa labi/paraugi)+slieksnis)) {rezultāts = 2;}
citādi, ja ((pa kreisi/paraugi) <((pa labi/paraugi)-slieksnis)) {rezultāts = 1;}
cits {rezultāts = 0;}
atgriešanās rezultāts; } void forward () {// Pārsūtīt 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 (); }
spēkā neesošas tiesības () {
// 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 (); }
// tas ir paredzēts turpmākiem eksperimentiem, mēģinot piešķirt šim cilvēkam nedaudz personības:-) es testēju, ko varētu paveikt, bet vēl nav labu ideju.
tukša emocija () {int emoimer = 2500; int ilgums = nejaušs (250, 750); if (millis () - oldmillis> emotimer) {oldmillis = millis (); emo = nejaušs (1, 4); } if (millis () - oldmillis> ilgums) {emostate =! emostate; } ja (emostate == true) {switch (emo) {case 1: PIXEL.setPixelColor (1, PIXEL. Color ((255), (255), (255))); PIXEL.show (); pārtraukums; 2. gadījums: PIXEL.setPixelColor (1, PIXEL. Color ((255), (0), (0))); PIXEL.show (); pārtraukums; 3. gadījums: PIXEL.setPixelColor (1, PIXEL. Color ((0), (255), (0))); PIXEL.show (); pārtraukums; noklusējums: PIXEL.setPixelColor (1, PIXEL. Color (nejauša (0, 255), nejauša (0, 255), nejauša (0, 255))); PIXEL.show (); pārtraukums; }} cits {PIXEL.setPixelColor (1, PIXEL. Color (25, 0, 0)); PIXEL.show (); }}
Ieteicams:
Līnijas sekotājs Tinkercad: 3 soļi
Līnijas sekotājs Tinkercad: A-līnijas sekotāju robots, kā norāda nosaukums, ir automatizēts vadāms transportlīdzeklis, kas seko vizuālai līnijai, kas iestrādāta uz grīdas vai griestiem. Parasti vizuālā līnija ir ceļš, pa kuru iet līnijas sekotājs robots, un tā būs melna līnija uz
Pixy2Bot objekta sekotājs (servo kods): 4 soļi
Pixy2Bot objektu sekotājs (servo kods): vienkārša objekta izveidošana pēc robota (bez panoramēšanas/noliekšanas mehānisma) ar Arduino Uno + motora vairogu, diviem lētiem nepārtrauktiem servoservisiem un Pixy2. Video: https://youtu.be/lxBLt5DJ5BM
UCL Embedded - B0B līnijas sekotājs: 9 soļi
UCL Embedded-B0B Linefollower: Šis ir B0B.*B0B ir vispārēja radio vadāma automašīna, kas īslaicīgi kalpo par līniju sekojoša robota pamatu. Tāpat kā tik daudzi rindas sekošanas roboti pirms viņa, viņš darīs visu iespējamo, lai paliktu līnija, ko izraisa pāreja starp grīdu un maiņstrāvu
DIY Arduino darbināms IR gaismas pistole: 12 soļi
DIY ar Arduino darbināms IR gaismas pistole: SAMCO ir Namco GunCon, kura iekšpuse ir aizstāta ar Arduino mikrokontrolleri un DF Robot IR pozicionēšanas kameru, un tā darbojas kā HID pele LCD (plakanā ekrāna) televizorā/monitoros. Pistole pašlaik darbojas kopā ar Mame RetroPie (priekš Raspberry Pi), PSX Beetl
PID līnijas sekotājs Atmega328P: 4 soļi
PID līnijas sekotājs Atmega328P: IEVADS Šis pamācības mērķis ir izveidot efektīvu un uzticamu līniju sekotāju ar PID (proporcionāli integrāla atvasinājuma) vadību (matemātisku), kas darbojas tās smadzenēs (Atmega328P). Līnijas sekotājs ir autonoms robots, kas seko vai nu b