Innholdsfortegnelse:
Video: ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Hei folkens, det er en stund siden jeg la ut min siste instruerbare. Vel, det er mange ting som går rundt i hodet mitt akkurat nå, men jeg klarte å dokumentere mine "første skritt" med ATTiny-serien med sjetonger i denne korte instruksen for deg.
Jeg bestilte noen ATTINY85 prøver bare fordi jeg ville teste dem:-) (alle liker å teste ting, ikke sant?). Etter det begynte jeg å tegne noen ideer i notatblokken min. For å være ærlig var det første jeg gjorde å blinke med en LED som som alltid er en god start for å sjekke om oppsettet/verktøykjeden din fungerer. Jeg prøvde også en temperatur- og fuktighetslogger med DHT22 og SoftwareSerial. Det var vanskelig fordi DHT -bibliotekene hovedsakelig er for 16Mhz -klokke (hvis du planlegger å gjøre noe slikt, sjekk hvordan du skal forhåndskalke internklokken). Men jeg bestemte meg for å vise deg noe som er vel, bare morsommere. BTW: Jeg lastet opp en av tegningene mine for deg, det er ikke en Rembrandt, men det vil vise deg hvordan jeg fikk denne (virkelig) dumme ideen til et stykke papir: -P.
Jeg brukte bare ting jeg hadde liggende for å holde dette prosjektet så billig som mulig (for meg). Resultatet av dette lille eventyret er en fin liten "lightfollower robot" for rundt 10-15 $ (3 $ for meg:-P)
Så hvis du er interessert i ATTINY selv, kan du bare lese videre.
BTW: beklager min dårlige engelsk (jeg er ikke morsmål)
Trinn 1: Komme i gang med ATTiny & Tools & Materials
Hva du trenger for å komme i gang:
- en ATTiny85 -brikke
- en Arduino UNO eller lignende
-abreadboard med noen jumper-wire eller en ATTINY programmerer eller lag et programmeringsskjerm for Arduino selv (sjekk de vedlagte bildene, det er en skjema fra avdweb.nl). Jeg har også laget denne, og jeg er veldig fornøyd med den. Den eneste endringen jeg gjorde var at jeg la til en kontakt for ATTinyx4-serien (se bildet og pinout-diagrammene).
- Arduino IDE (få den her)
- hardwarefilene for ArduinoIDE (last ned og installer dem)
Info-Link til lekeplassdirekt Link til github-filene jeg brukte
- last Arduino som ISP -skisse på UNO (dette blir din programmerer)
- følg denne instruksjonen (https://highlowtech.org/) eller denne instruksjonsboken (av ardutronix) og prøv "blink" -skissen (modifiser PIN -koden. bruk ATTINY -bildet som referanse! du trenger forhåndsflettet ATTINY en LED og en ~ 220Ohm motstand for det)
Lag et lite brødbrett-oppsett for å sjekke alt. Hvis du har gjort alt riktig, vil LED-en blinke og du er klar til å gå
VERKTØY
- Loddejern- litt loddetinn- en liten wirecutter- en dremel eller et annet roterende verktøy (bare for å kutte PCB!)- noen limlimmer- pinsetter
MATERIALER
- prototyping PCB (~ 4cmx6cm vil gjøre det)- 2x LDR- 5x 10k motstand (2x for LDRs og 2x for transistorene BE, 1x LED)- 1x 330Ohm motstand (1x NEOPIXELS)- 2x LDR- 1x LED (farge 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 et Hubsan mikro-quadcopter)- 1x ATTINY85 + valgfritt (anbefalt) 8PIN IC Socket- 1x 1s LIPO (jeg brukte en 140Ah fra et gammelt RC-helikopter)- noen pinheaders/socket- shrinktube (LDR-hus)
La oss fortsette med å bygge maskinvaren …
Trinn 2: Maskinvare
Hvis du ser på skjemaene jeg har vedlagt, er maskinvareoppsettet ganske enkelt. Så hvis du er i stand til å lese skjemaer og bruke et loddejern, er det halve trikset. Se også på bildene, jeg la til noen notater for deg.
Jeg gir ikke en plan for å kutte kretskortet, du har friheten til å lage ditt eget design (vær kreativ og vis oss Tiny Bots). Plasseringen av alle de elektroniske komponentene er også opp til deg. Noen hint fra min side:
Prøv å justere motorene nøyaktig (se vinkelen!) Vi bruker bare motorakselen i stedet for hjul. (dette vil forbruke mindre energi) Jeg anbefaler å plassere motorene under batteriet (vekt) og å bruke LDR -ene på forsiden (45 ° vinklet) sammen med på LED (jeg prøver å bruke denne kombinasjonen for å unngå hindring, videre tester er nødvendig).
Videre anbefaler jeg å lage en liten av/på -jumper slik at batteriet ikke går seg vill så lett.
Hvis det er noe uklart eller hvis du har spørsmål, er det bare å spørre meg. Det vil ikke gjøre at mange sener lager en avhandling av dette lille prosjektet.
Trinn 3: Programvare
Først av alt last ned og installer ADAFRUIT Neopixel Library
Her er koden min med noen store beskrivelser (jeg la også til skissefilen). Jeg kommenterte ikke hvert trinn fordi jeg tror det ikke er nødvendig.
Last opp skissen til ATTiny85 og ha det gøy med det nye leketøyet ditt
Ideer til funksjonen "personlighet" + kanskje kodeeksempler er veldig velkomne:-)
Hvis det er noen spørsmål, kan du gjerne spørre.
Jeg håper du likte min korte instruksjonsrike og den lille turen inn i ATTINYs verden.
/* ATTINY85-Rata enkel ATTINY85 drevet lysfølge robot. Versjon 2.0, av Auer Markus */
#inkludere
#inkludere
// motorer
#define LMOTOR 0 #define RMOTOR 1 // LEDer #define PIXELPIN 2 #define NUMPIXEL 3 // LDRs #define LLDR A2 #define RLDR A3
// andreint emo = 0; flyte kalib; boolsk emostat; lang oldmillis; // definere NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);
ugyldig oppsett ()
{// oppskalere klokken ellers vil du støte på noen timingproblemer (neopikslen lib er skrevet for 16MHz) #if definert (_AVR_ATtiny85_) hvis (F_CPU == 16000000) clock_prescale_set (clock_div_1); #slutt om
// PINMODE pinMode (LMOTOR, OUTPUT); pinMode (RMOTOR, OUTPUT); pinMode (LLDR, INNGANG); pinMode (LLDR, INNGANG); // initialiser piksler PIXEL.begin (); PIXEL.show (); forsinkelse (500); // startsekvens for (int i = 0; i
hulrom ()
{if (lightfollow () == 1) {left (); } annet hvis (lightfollow () == 2) {right (); } annet hvis (lightfollow () == 0) {forward (); } følelser (); }
int lightfollow () {
int terskel = 14; int resultat = 0; flyte til venstre = 0; flyte til høyre = 0; int prøver = 1; // les LDR for (int j = 0; j <samples; j ++) {
venstre = venstre + analogRead (LLDR); høyre = høyre + (analogRead (RLDR)*kalib);
}
// beregne resultatet (hvilken retning kommer lyset fra?)
if ((venstre/prøver)> ((høyre/prøver)+grense)) {result = 2;}
ellers hvis ((venstre/prøver) <((høyre/prøver) -treshold)) {result = 1;}
annet {resultat = 0;}
returresultat; } ugyldig forover () {// Fremover analogWrite (LMOTOR, 230); analogWrite (RMOTOR, 230); PIXEL.setPixelColor (0, PIXEL. Color (0, 0, 255)); PIXEL.setPixelColor (2, PIXEL. Color (0, 0, 255)); PIXEL.show (); }
ugyldig venstre () {
// VENSTRE 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 rett () {
// HØYRE 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 for ytterligere eksperimenter, prøver å gi denne en liten personlighet:-) jeg tester hva jeg kan gjøre, men ingen gode ideer ennå.
void emotion () {int emotimer = 2500; int varighet = tilfeldig (250, 750); if (millis () - oldmillis> emotimer) {oldmillis = millis (); emo = tilfeldig (1, 4); } if (millis () - oldmillis> duration) {emostate =! emostate; } if (emostate == true) {switch (emo) {case 1: PIXEL.setPixelColor (1, PIXEL. Color ((255), (255), (255))); PIXEL.show (); gå i stykker; sak 2: PIXEL.setPixelColor (1, PIXEL. Color ((255), (0), (0))); PIXEL.show (); gå i stykker; sak 3: PIXEL.setPixelColor (1, PIXEL. Color ((0), (255), (0))); PIXEL.show (); gå i stykker; standard: PIXEL.setPixelColor (1, PIXEL. Color (tilfeldig (0, 255), tilfeldig (0, 255), tilfeldig (0, 255))); PIXEL.show (); gå i stykker; }} annet {PIXEL.setPixelColor (1, PIXEL. Color (25, 0, 0)); PIXEL.show (); }}
Anbefalt:
Retro Arcade - (Full Size Powered by Raspberry Pi): 8 trinn
Retro Arcade - (Full Size Powered by Raspberry Pi): Først ville jeg takke deg for at du tok en titt på byggeguiden for dette Retro Arcade -systemet. Jeg tar en eldre arkadeboks og plasserer den i et frittstående skap med en 24-tommers widescreen-skjerm. Målingene i denne guiden er grove å gi deg
Muscle Powered Flappy Bird: 9 trinn (med bilder)
Muscle Powered Flappy Bird: Du husker kanskje da Flappy Bird tok verden med storm og til slutt ble så populær at skaperen fjernet den fra appbutikker for å unngå uønsket omtale. Dette er Flappy Bird som du aldri har sett før; ved å kombinere noen få fra hyllekomponenten
Arduino Powered Painting Robot: 11 trinn (med bilder)
Arduino Powered Painting Robot: Har du noen gang lurt på om en robot kan lage fascinerende malerier og kunst? I dette prosjektet prøver jeg å gjøre det til en realitet med en Arduino Powered Painting Robot. Målet er at roboten skal kunne lage malerier alene og bruke en ref
DIY Solar Powered Automatic Street Lighting: 3 trinn
DIY Solar Powered Automatic Street Lighting: Huset mitt ligger i landlige områder, så gaten foran huset mitt er helt mørkt når det ikke er noe lys i det hele tatt. Så her laget jeg et solcelledrevet gatelys som automatisk slås på ved solnedgang og av ved soloppgang. Den bruker solcellepanelet som
Desktop COVID19 -tracker med klokke! Raspberry Pi Powered Tracker: 6 trinn
Desktop COVID19 -tracker med klokke! Raspberry Pi Powered Tracker: Vi vet at vi kan dø når som helst, selv jeg kan dø mens jeg skriver dette innlegget, tross alt, jeg meg, du, vi er alle dødelige. Hele verden rystet på grunn av COVID19 -pandemien. Vi vet hvordan vi kan forhindre dette, men hei! vi vet hvordan vi skal be og hvorfor vi skal be, gjør vi det