Indholdsfortegnelse:

ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 trin
ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 trin

Video: ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 trin

Video: ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 trin
Video: How to make Simple and Economical Sanitizing Machine fights covid 19 | carona virus IR sensor module 2024, November
Anonim
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower
ATTiny-RAT, ATTINY Powered Mini Lightfollower

Hej folkens, det er et stykke tid siden jeg postede min sidste instruerbare. Godt, der er mange ting, der går rundt i mit hoved lige nu, men det lykkedes mig at dokumentere mine "første trin" med ATTiny-serien af chips i denne korte instruerbare til dig.

Jeg bestilte nogle ATTINY85 prøver, bare fordi jeg ville teste dem:-) (alle elsker at teste ting, ikke?). Derefter begyndte jeg at trække nogle ideer ind i min notesbog. For at være ærlig var det første, jeg gjorde, at blinke med en LED, der som altid er en god start for at kontrollere, om din opsætning/værktøjskæde fungerer. Jeg prøvede også en temperatur- og fugtighedslogger med DHT22 og SoftwareSerial. Det var en vanskelig, fordi DHT -bibliotekerne hovedsageligt er til 16Mhz -ur (hvis du planlægger at gøre sådan noget, skal du kontrollere, hvordan du forskalerer internklokken). Men jeg besluttede at vise dig noget, der er, ja, bare sjovere. BTW: Jeg har uploadet en af mine tegninger til dig, det er ikke en Rembrandt, men det vil vise dig, hvordan jeg fik denne (virkelig) dumme idé på et stykke papir: -P.

Jeg brugte kun ting, jeg havde liggende, for at holde dette projekt så billigt som muligt (for mig). Resultatet af dette lille eventyr er en dejlig lille "lightfollower robot" til omkring 10-15 $ (3 $ for mig:-P)

Så hvis du er interesseret i ATTINY selv, skal du bare læse videre.

BTW: undskyld mit dårlige engelsk (jeg er ikke en indfødt højttaler)

Trin 1: Kom godt i gang med ATTiny & Tools & Materials

Kom godt i gang med ATTiny & værktøjer og materialer
Kom godt i gang med ATTiny & værktøjer og materialer
Kom godt i gang med ATTiny & værktøjer og materialer
Kom godt i gang med ATTiny & værktøjer og materialer
Kom godt i gang med ATTiny & værktøjer og materialer
Kom godt i gang med ATTiny & værktøjer og materialer
Kom godt i gang med ATTiny & værktøjer og materialer
Kom godt i gang med ATTiny & værktøjer og materialer

Hvad skal du bruge for at komme i gang:

- en ATTiny85 -chip

- en Arduino UNO eller lignende

-abreadboard med noget jumper-wire eller en ATTINY programmerer eller lav selv en programmeringsskjold til Arduino (tjek de vedhæftede billeder, der er en skematisk oversigt fra avdweb.nl). Jeg lavede også denne, og jeg er virkelig glad for den, den eneste ændring, jeg lavede, var, at jeg tilføjede en stikkontakt til ATTinyx4-serien (se billedet og pinout-diagrammerne).

- Arduino IDE (få det her)

- hardwarefiler til ArduinoIDE (download og installer dem)

Info-Link til legepladsdirekt Link til de github-filer, jeg brugte

- indlæs Arduino som ISP -skitse til UNO (dette vil være din programmør)

- følg denne instruktion (https://highlowtech.org/) eller denne instruerbare (af ardutronix) og prøv "blink" -skitsen (modificer PIN -koden. brug ATTINY -billedet som reference! du skal bruge den forhåndsflasket ATTINY en LED og en ~ 220Ohm modstand til det)

Lav et lille breadboard-setup for at kontrollere alt. Hvis du har gjort alt rigtigt, blinker LED'en, og du er klar til at gå

VÆRKTØJ

- Loddejern- noget loddemetal- en lille wirecutter- en dremel eller andet roterende værktøj (bare til at skære printet!)- nogle hotlim- pincet- tråde

MATERIALER

- prototype PCB (~ 4cmx6cm vil gøre det)- 2x LDR- 5x 10k modstand (2x til LDR'erne og 2x til transistorerne BE, 1x LED)- 1x 330Ohm modstand (1x NEOPIXELS)- 2x LDR- 1x LED (farve på din valg, i stedet for hjulet)- 3x NEOPIXEL WS2812- 2x Transistor (BD137 eller lignende)- 2x Diode (1N4001 eller lignende)- 2x mikromotor (f.eks. fra en Hubsan mikro-quadcopter)- 1x ATTINY85 + valgfri (anbefales) 8PIN IC Socket- 1x 1s LIPO (jeg brugte en 140Ah fra en gammel RC-helikopter)- nogle pinheaders/sockets- shrinktube (LDR-hus)

Lad os fortsætte med at bygge hardware …

Trin 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Hvis du kigger på de skemaer, jeg vedhæfter, er hardwareopsætningen ret enkel. Så hvis du er i stand til at læse skemaer og bruge et loddejern, er det halve tricket. Se også på fotos, jeg tilføjede nogle noter til dig.

Jeg giver ikke en plan for at skære printet, du har friheden til at lave dit eget design (vær kreativ og vis os dine Tiny Bots). Placeringen af alle de elektroniske komponenter er også op til dig. Nogle tip fra min side:

Prøv at tilpasse motorerne præcist (se vinklen!) Vi bruger kun motorakslen i stedet for hjul. (dette vil forbruge mindre energi) Jeg anbefaler at placere motorerne under batteriet (vægt) og at bruge LDR'erne på forsiden (45 ° vinklet) parret med på LED (jeg forsøger at bruge denne kombination for at undgå forhindring, yderligere test er påkrævet).

Yderligere anbefaler jeg at lave en lille tænd/sluk -jumper, så batteriet ikke går tabt så let.

Hvis der er noget uklart, eller hvis du har spørgsmål, så spørg mig bare. Det vil ikke få mange sener til at lave en tese ud af dette lille projekt.

Trin 3: Software

Software
Software
Software
Software

Først og fremmest download og installer ADAFRUIT Neopixel Library

Her er min kode med nogle større beskrivelser (jeg tilføjede også skitsefilen). Jeg kommenterede ikke hvert trin, fordi jeg tror, det ikke er nødvendigt.

Upload skitsen på din ATTiny85, og hav det sjovt med dit nye legetøj

Ideer til "personlighed" -funktion + måske kodeeksempler er meget velkomne:-)

Hvis der er spørgsmål, er du velkommen til at stille.

Jeg håber, at du nød min korte instruktive og den lille tur i ATTINYs verden.

/* ATTINY85-Rata enkel ATTINY85 drevet lysfølger robot. Version 2.0, af Auer Markus */

#omfatte

#omfatte

// motorer

#define LMOTOR 0 #definer RMOTOR 1 // LED'er #definer PIXELPIN 2 #definer NUMPIXEL 3 // LDR'er #definer LLDR A2 #definer RLDR A3

// andenint emo = 0; flyde kalib; boolsk emostat; lang oldmillis; // definere NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);

ugyldig opsætning ()

{// opskalere ur ellers vil du støde på nogle timingproblemer (neopixel lib er skrevet til 16MHz) #if defineret (_AVR_ATtiny85_) hvis (F_CPU == 16000000) clock_prescale_set (clock_div_1); #Afslut Hvis

// PINMODE pinMode (LMOTOR, OUTPUT); pinMode (RMOTOR, OUTPUT); pinMode (LLDR, INPUT); pinMode (LLDR, INPUT); // initialiser pixel PIXEL.begin (); PIXEL.show (); forsinkelse (500); // startsekvens for (int i = 0; i

hulrum ()

{if (lightfollow () == 1) {venstre (); } ellers hvis (lightfollow () == 2) {right (); } ellers hvis (lightfollow () == 0) {forward (); } følelser (); }

int lightfollow () {

int treshold = 14; int resultat = 0; flyde til venstre = 0; flyde til højre = 0; int prøver = 1; // læs LDR'er for (int j = 0; j <samples; j ++) {

venstre = venstre + analogRead (LLDR); højre = højre + (analogRead (RLDR)*kalib);

}

// beregne resultatet (hvilken retning kommer lyset fra?)

hvis ((venstre/prøver)> ((højre/prøver)+grænseværdi)) {resultat = 2;}

ellers hvis ((venstre/prøver) <((højre/prøver) -treshold)) {result = 1;}

ellers {resultat = 0;}

returnere resultat; } void forward () {// Frem analogWrite (LMOTOR, 230); analogWrite (RMOTOR, 230); PIXEL.setPixelColor (0, PIXEL. Color (0, 0, 255)); PIXEL.setPixelColor (2, PIXEL. Color (0, 0, 255)); PIXEL.show (); }

tomrum tilbage () {

// 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 (); }

ugyldig ret () {

// HØJRE analogWrite (LMOTOR, 255); analogWrite (RMOTOR, 150); PIXEL.setPixelColor (0, PIXEL. Color (0, 100, 0)); PIXEL.setPixelColor (2, PIXEL. Color (0, 0, 255)); PIXEL.show (); }

// dette er til yderligere eksperimenter, forsøger at give denne lidt personlighed:-) jeg tester, hvad der kunne være i stand til, men ingen gode ideer endnu.

void emotion () {int emotimer = 2500; int varighed = tilfældig (250, 750); hvis (millis () - oldmillis> emotimer) {oldmillis = millis (); emo = tilfældig (1, 4); } hvis (millis () - oldmillis> varighed) {emostate =! emostate; } hvis (emostate == true) {switch (emo) {case 1: PIXEL.setPixelColor (1, PIXEL. Color ((255), (255), (255))); PIXEL.show (); pause; case 2: PIXEL.setPixelColor (1, PIXEL. Color ((255), (0), (0))); PIXEL.show (); pause; case 3: PIXEL.setPixelColor (1, PIXEL. Color ((0), (255), (0))); PIXEL.show (); pause; standard: PIXEL.setPixelColor (1, PIXEL. Color (tilfældig (0, 255), tilfældig (0, 255), tilfældig (0, 255))); PIXEL.show (); pause; }} andet {PIXEL.setPixelColor (1, PIXEL. Color (25, 0, 0)); PIXEL.show (); }}

Anbefalede: