Inhaltsverzeichnis:

ATTiny-RAT, ATTINY Powered Mini Lightfollower - Gunook
ATTiny-RAT, ATTINY Powered Mini Lightfollower - Gunook

Video: ATTiny-RAT, ATTINY Powered Mini Lightfollower - Gunook

Video: ATTiny-RAT, ATTINY Powered Mini Lightfollower - Gunook
Video: Series Balanced Lithium ion (Li-Ion) charger 1 / 2 / 3 cells in series as Battery pack 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

Hallo Leute, Es ist eine Weile her, seit ich mein letztes instructable gepostet habe. Nun, es gehen gerade viele Dinge in meinem Kopf herum, aber ich habe es geschafft, meine "ersten Schritte" mit der ATTiny-Serie von Chips in diesem kurzen instructable für Sie zu dokumentieren.

Ich habe ein paar ATTINY85-Muster bestellt, nur weil ich sie testen wollte:-) (jeder liebt es, Dinge zu testen, oder?). Danach habe ich angefangen, einige Ideen in mein Notizbuch zu zeichnen. Um ehrlich zu sein, war das erste, was ich tat, eine LED zu blinken, was wie immer ein guter Anfang ist, um zu überprüfen, ob Ihr Setup / Ihre Toolchain funktioniert. Ich habe auch einen Temperatur- und Feuchtigkeitslogger mit DHT22 und SoftwareSerial ausprobiert. Das war schwierig, da die DHT-Bibliotheken hauptsächlich für 16-MHz-Takt ausgelegt sind (wenn Sie so etwas vorhaben, überprüfen Sie, wie Sie die interne Uhr vorskalieren). Aber ich habe mich entschlossen, dir etwas zu zeigen, das einfach nur lustiger ist. Übrigens: Ich habe eine meiner Zeichnungen für dich hochgeladen, es ist kein Rembrandt, aber es wird dir zeigen, wie ich diese (wirklich) dumme Idee auf ein Blatt Papier gebracht habe: -P.

Ich habe nur Sachen verwendet, die ich herumliegen hatte, um dieses Projekt (für mich) so günstig wie möglich zu halten. Das Ergebnis dieses kleinen Abenteuers ist ein netter kleiner "Lichtfolger-Roboter" für ca. 10-15$ (3$ für mich:-P)

Wenn Sie sich also selbst für ATTINY interessieren, lesen Sie einfach weiter.

Übrigens: Entschuldigung für mein schlechtes Englisch (ich bin kein Muttersprachler)

Schritt 1: Erste Schritte mit ATTiny & Tools & Materials

Erste Schritte mit ATTiny & Tools & Materialien
Erste Schritte mit ATTiny & Tools & Materialien
Erste Schritte mit ATTiny & Tools & Materialien
Erste Schritte mit ATTiny & Tools & Materialien
Erste Schritte mit ATTiny & Tools & Materialien
Erste Schritte mit ATTiny & Tools & Materialien
Erste Schritte mit ATTiny & Tools & Materialien
Erste Schritte mit ATTiny & Tools & Materialien

Was Sie für den Anfang benötigen:

- ein ATTiny85-Chip

- ein Arduino UNO oder ähnliches

- Abreadboard mit Jumper-Draht oder einem ATTINY-Programmierer oder machen Sie selbst ein Programmer-Shield für Arduino (siehe die beigefügten Bilder, es gibt einen Schaltplan von avdweb.nl). Diese habe ich auch gemacht und bin sehr zufrieden damit. Die einzige Modifikation die ich gemacht habe war, dass ich einen Sockel für die ATTinyx4 Serie hinzugefügt habe (siehe Bild und Pinbelegung).

- die Arduino-IDE (hier herunterladen)

- die Hardwaredateien für die ArduinoIDE (herunterladen und installieren)

Info-Link zum Playgrounddirect Link zu den von mir verwendeten Github-Dateien

- Laden Sie den Arduino als ISP-Skizze auf die UNO (dies wird Ihr Programmierer sein)

- Folgen Sie dieser Anleitung (https://highlowtech.org/) oder dieser Anleitung (von ardutronix) und versuchen Sie die "Blink" -Skizze (ändern Sie die PIN-Nr. verwenden Sie das ATTINY-Bild als Referenz! Sie benötigen die vorgeflashte ATTINY eine LED und ein ~ 220 Ohm Widerstand dafür)

Machen Sie ein kleines Steckbrett-Setup, um alles zu überprüfen. Wenn Sie alles richtig gemacht haben, blinkt die LED und Sie können loslegen

WERKZEUGE

- Lötkolben - etwas Lötzinn - ein kleiner Drahtschneider - ein Dremel oder ein anderes Drehwerkzeug (nur zum Schneiden der Platine!) - einige Heißkleber - Pinzetten - Drähte

MATERIALIEN

- Prototyping PCB (~4cmx6cm reicht aus)- 2x LDR- 5x 10k Widerstand (2x für die LDRs und 2x für die Transistoren BE, 1x LED) - 1x 330Ohm Widerstand (1x NEOPIXELS)- 2x LDR- 1x LED (Farbe deiner.) Wahl, statt Lenkrad)- 3x NEOPIXEL WS2812- 2x Transistor (BD137 oder ähnlich)- 2x Diode (1N4001 oder ähnlich)- 2x Mikromotor (zB von einem Hubsan Micro-Quadcopter)- 1x ATTINY85 + optional (empfohlen) 8PIN IC Sockel- 1x 1s LIPO (ich habe einen 140Ah aus einem alten RC-Helikopter verwendet)- einige Stiftleisten/Buchsen- Schrumpfschlauch (LDR Gehäuse)

Fahren wir mit dem Bau der Hardware fort…

Schritt 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Wenn Sie sich die Schaltpläne ansehen, die ich angehängt habe, ist das Hardware-Setup ziemlich einfach. Wenn Sie also Schaltpläne lesen und einen Lötkolben verwenden können, ist das der halbe Trick. Schaut euch auch die Fotos an, ich habe ein paar Anmerkungen für euch hinzugefügt.

Ich liefere keinen Plan für das Schneiden der Platine, Sie haben die Freiheit, Ihr eigenes Design zu erstellen (sei kreativ und zeige uns deine Tiny Bots). Die Platzierung aller elektronischen Komponenten liegt ebenfalls in deiner Hand. Einige Hinweise von meiner Seite:

Versuchen Sie, die Motoren genau auszurichten (achten Sie auf den Winkel!) Wir verwenden nur die Motorwelle anstelle der Räder. (dadurch wird weniger Energie verbraucht) Ich empfehle die Motoren unter dem Akku zu platzieren (Gewicht) und die LDRs auf der Vorderseite (45° abgewinkelt) gepaart mit einer LED zu verwenden (ich versuche diese Kombination zur Vermeidung von Hindernissen zu verwenden, weiter) Tests erforderlich).

Außerdem empfehle ich einen kleinen Ein/Aus-Jumper zu machen, damit die Batterie nicht so leicht verloren geht.

Bei Unklarheiten oder Fragen fragen Sie mich einfach. Es macht wenig Sinn, aus diesem kleinen Projekt eine Abschlussarbeit zu machen.

Schritt 3: Software

Software
Software
Software
Software

Laden Sie zunächst die ADAFRUIT Neopixel Library herunter und installieren Sie sie

Hier ist mein Code mit einigen wichtigen Beschreibungen (ich habe auch die Skizzendatei hinzugefügt). Ich habe nicht jeden Schritt kommentiert, weil ich denke, dass es nicht notwendig ist.

Lade die Skizze auf deinen ATTiny85 hoch und hab Spaß mit deinem neuen Spielzeug

Ideen für die Funktion "Persönlichkeit" + vielleicht Code-Beispiele sind sehr willkommen:-)

Wenn es Fragen gibt, können Sie diese gerne stellen.

Ich hoffe, Sie haben meine kurze instructable und die kleine Reise in die Welt von ATTINYs genossen.

/* ATTINY85-Rata einfacher ATTINY85-betriebener Lichtfolgeroboter. Version 2.0, von Auer Markus */

#enthalten

#enthalten

//Motoren

#define LMOTOR 0 #define RMOTOR 1 //LEDs #define PIXELPIN 2 #define NUMPIXEL 3 //LDRs #define LLDR A2 #define RLDR A3

// Sonstiges Emo = 0; Schwimmerkalibrierung; boolesches Emostat; lange alte Millise; // Neopixels definierenAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);

Void-Setup ()

{ //Upscale Clock sonst werden Sie auf einige Timingprobleme stoßen (die Neopixel-Lib ist für 16MHz geschrieben) #if definiert (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif

// PINMODE PinMode (LMOTOR, AUSGANG); pinMode (RMOTOR, AUSGANG); pinMode (LLDR, EINGANG); pinMode (LLDR, EINGANG); // Pixel initialisieren PIXEL.begin (); PIXEL.show(); Verzögerung (500); //Startsequenz for(int i=0;i

Leere Schleife ()

{ if (lightfollow () == 1) { links (); aufrechtzuerhalten. Sonst if (lightfollow() == 2) {right(); aufrechtzuerhalten. Sonst if (lightfollow () == 0) { forward (); } Emotion (); }

int lightfollow() {

int-Schwelle = 14; int-Ergebnis = 0; schweben links = 0; Schwimmer rechts = 0; int-Samples = 1; // LDRs lesen für (int j = 0; j<samples; j++){

links = links + analogRead (LLDR); rechts = rechts + (analogRead(RLDR)*calib);

}

// Ergebnis berechnen (aus welcher Richtung kommt das Licht?)

if((links/Beispiele) > ((rechts/Beispiele)+Schwellenwert)) {Ergebnis = 2;}

else if((links/Beispiele) < ((rechts/Beispiele)-Schwellenwert)) {Ergebnis = 1;}

sonst {Ergebnis = 0;}

Ergebnis zurückgeben; aufrechtzuerhalten. Void forward () {//Weiterleiten analogWrite (LMOTOR, 230); analogWrite (RMOTOR, 230); PIXEL.setPixelColor(0, PIXEL. Color(0, 0, 255)); PIXEL.setPixelColor(2, PIXEL. Color(0, 0, 255)); PIXEL.show(); }

Leere links () {

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

nichtig rechts () {

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

// dies ist für weitere experimente, um diesem ein wenig persönlichkeit zu verleihen:-) ich teste, was möglich sein könnte, aber noch keine guten ideen.

Leere Emotion () { Int-Emotimer = 2500; int-Dauer = zufällig (250, 750); if (millis () - oldmillis > emotimer) { oldmillis = millis (); emo = zufällig (1, 4); } if (millis() - oldmillis > Dauer) { emostate = !emostate; } if (emostate == true) { switch (emo) { case 1: PIXEL.setPixelColor (1, PIXEL. Color ((255), (255), (255))); PIXEL.show(); brechen; Fall 2: PIXEL.setPixelColor(1, PIXEL. Color((255), (0), (0))); PIXEL.show(); brechen; Fall 3: PIXEL.setPixelColor(1, PIXEL. Color((0), (255), (0))); PIXEL.show(); brechen; Standard: PIXEL.setPixelColor(1, PIXEL. Color(zufällig (0, 255), zufällig (0, 255), zufällig (0, 255))); PIXEL.show(); brechen; } } Else { PIXEL.setPixelColor (1, PIXEL. Color (25, 0, 0)); PIXEL.show(); } }

Empfohlen: