Spisu treści:
- Krok 1: Pierwsze kroki z ATTiny oraz narzędziami i materiałami
- Krok 2: Sprzęt
- Krok 3: Oprogramowanie
Wideo: ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Cześć ludzie, Minęło trochę czasu, odkąd opublikowałem moją ostatnią instrukcję. Cóż, w mojej głowie krąży teraz wiele rzeczy, ale udało mi się udokumentować moje „pierwsze kroki” z żetonami z serii ATTiny w tej krótkiej instrukcji dla ciebie.
Zamówiłem kilka próbek ATTINY85 tylko dlatego, że chciałem je przetestować:-) (wszyscy uwielbiają testować różne rzeczy, prawda?). Potem zacząłem rysować kilka pomysłów w swoim notesie. Szczerze mówiąc, pierwszą rzeczą, którą zrobiłem, było mruganie diodą LED, która jak zawsze jest dobrym początkiem sprawdzenia, czy twój setup/toolchain działa. Próbowałem również rejestratora temperatury i wilgotności z DHT22 i SoftwareSerial. To było trudne, ponieważ biblioteki DHT są przeznaczone głównie dla zegara 16Mhz (jeśli planujesz zrobić coś takiego, sprawdź, jak przeskalować wewnętrzny zegar). Ale postanowiłem pokazać ci coś, co jest, no cóż, po prostu zabawniejsze. BTW: Wrzuciłem dla ciebie jeden z moich rysunków, nie jest to Rembrandt, ale pokaże ci, jak wpadłem na ten (naprawdę) głupi pomysł na kartkę papieru: -P.
Użyłem tylko rzeczy, które leżałem, aby utrzymać ten projekt jak najtaniej (dla mnie). Efektem tej małej przygody jest miły mały "robot podążający za światłem" za około 10-15 $ (dla mnie 3 $:-P)
Jeśli więc sam jesteś zainteresowany ATTINY, czytaj dalej.
BTW: przepraszam za mój zły angielski (nie jestem native speakerem)
Krok 1: Pierwsze kroki z ATTiny oraz narzędziami i materiałami
Czego potrzebujesz, aby zacząć:
- chip ATTiny85
- Arduino UNO lub podobny
- abreadboard z jakimiś zworkami lub programatorem ATTINY lub sam zrób programator-shield dla Arduino (sprawdź załączone zdjęcia, jest schemat z avdweb.nl). Zrobiłem też ten i jestem z niego naprawdę zadowolony. Jedyną modyfikacją, jaką wprowadziłem, było dodanie gniazda dla serii ATTinyx4 (patrz zdjęcie i schematy wyprowadzeń).
- Arduino IDE (do pobrania tutaj)
- pliki sprzętowe dla ArduinoIDE (pobierz i zainstaluj)
Info-Link do serwisu playgrounddirect Link do używanych przeze mnie plików github
- załaduj Arduino jako szkic ISP do UNO (to będzie twój programista)
- postępuj zgodnie z tą instrukcją (https://highlowtech.org/) lub tą instrukcją (przez ardutronix) i wypróbuj szkic "mrugnięcia" (zmodyfikuj numer PIN. użyj zdjęcia ATTINY jako odniesienia! będziesz potrzebować wstępnie migającej diody LED ATTINY a i rezystor ~ 220 omów)
Zrób małą płytkę stykową, aby wszystko sprawdzić. Jeśli zrobiłeś wszystko dobrze, dioda LED zacznie migać i jesteś gotowy do pracy
NARZĘDZIA
- lutownica - trochę lutu - mały przecinak do drutu - dremel lub inne narzędzie obrotowe (tylko do cięcia PCB!) - trochę kleju na gorąco - szczypce - druty
MATERIAŁY
- PCB prototypowa (~4cmx6cm zrobi to)- 2x LDR- 5x 10k Rezystor (2x dla LDR i 2x dla tranzystorów BE, 1x LED) - 1x Rezystor 330Ohm (1x NEOPIXELS)- 2x LDR- 1x LED (kolor twojego wybór zamiast kółka)- 3x NEOPIXEL WS2812- 2x Tranzystor (BD137 lub podobny)- 2x Dioda (1N4001 lub podobny)- 2x mikrosilnik (np. z mikroquadkoptera Hubsan)- 1x ATTINY85 + opcjonalnie (zalecane) 8PIN Gniazdo IC- 1x 1s LIPO (użyłem 140Ah ze starego helikoptera RC)- kilka pinheaderów/gniazd- rurka termokurczliwa (obudowa LDR)
Przejdźmy do budowania sprzętu…
Krok 2: Sprzęt
Jeśli spojrzysz na załączone schematy, konfiguracja sprzętu jest dość prosta. Więc jeśli jesteś w stanie czytać schematy i używać lutownicy, to połowa sukcesu. Zajrzyj też na zdjęcia, dodałem dla Ciebie kilka notatek.
Nie podaję planu cięcia PCB, masz swobodę tworzenia własnego projektu (bądź kreatywny i pokaż nam swoje Tiny Boty). Umieszczenie wszystkich elementów elektronicznych zależy również od Ciebie. Kilka wskazówek z mojej strony:
Staraj się precyzyjnie ustawić silniki (uważaj pod kątem!) używamy tylko wału silnika zamiast kół. (będzie to zużywać mniej energii) Zalecam umieszczenie silników pod akumulatorem (waga) i użycie LDR-ów z przodu (pod kątem 45°) w połączeniu z diodą LED (próbuję użyć tej kombinacji do unikania przeszkód, dalej potrzebne są testy).
Ponadto polecam zrobić małą zworkę, aby bateria nie zgubiła się tak łatwo.
Jeśli jest coś niejasnego lub masz pytania, po prostu zapytaj mnie. Nie ma sensu robić tezy z tego małego projektu.
Krok 3: Oprogramowanie
Pierwszy ze wszystkich pobierz i zainstaluj ADAFRUIT Neopixel Library
Oto mój kod z kilkoma głównymi opisami (dodałem również plik szkicu). Nie komentowałem każdego kroku, ponieważ uważam, że nie jest to konieczne.
Prześlij szkic na ATTiny85 i baw się swoją nową zabawką
Pomysły na funkcję "osobowość" + może przykłady kodu są mile widziane:-)
Jeśli są jakieś pytania, nie wahaj się ich zapytać.
Mam nadzieję, że podobała Ci się moja krótka instruktażowa i mała wycieczka do świata ATTINY.
/* ATTINY85-Rata prosty robot podążający za światłem ATTINY85. Wersja 2.0, Auer Markus */
#włączać
#włączać
//Motoryzacja
#define LMOTOR 0 #define RMOTOR 1 //LEDs #define PIXELPIN 2 #define NUMPIXEL 3 //LDRs #define LLDR A2 #define RLDR A3
//inne emo = 0; kaliber pływakowy; emostat logiczny; długie stare millis; //zdefiniuj NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel(NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);
pusta konfiguracja()
{ //upscale clock w przeciwnym razie napotkasz pewne problemy z synchronizacją (biblioteka neopixel jest napisana dla 16MHz) #if defined (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif
//PINMODE pinMode(LMOTOR, WYJŚCIE); pinMode(RMOTOR, WYJŚCIE); pinMode(LLDR, INPUT); pinMode(LLDR, INPUT); //zainicjuj piksele PIXEL.begin(); PIXEL.pokaż(); opóźnienie (500); //startsequence for(int i=0;i
pusta pętla()
{ if(lightfollow() == 1) { left(); } else if(lightfollow() == 2) { right(); } else if(lightfollow() == 0) { forward(); } emocja(); }
int lightflow() {
próg wewnętrzny = 14; int wynik = 0; pływak w lewo = 0; pływak w prawo = 0; próbki int = 1; //odczytaj LDR dla (int j = 0; j<samples; j++){
lewy = lewy + odczyt analogowy (LLDR); prawo = prawo + (analogRead(RLDR)*calib);
}
//oblicz wynik (z którego kierunku pada światło?)
if((lewo/próbki) > ((prawo/próbki)+próg)) {wynik = 2;}
else if((lewo/próbki) < ((prawo/próbki)-próg)) {wynik = 1;}
inaczej {wynik = 0;}
zwróć wynik; } void forward() { //Forward analogWrite(LMOTOR, 230); zapis analogowy(RMOTOR, 230); PIXEL.setPixelColor(0, PIXEL. Color(0, 0, 255)); PIXEL.setPixelColor(2, PIXEL. Color(0, 0, 255)); PIXEL.pokaż(); }
nieważne w lewo () {
//LEWY zapis analogowy(LMOTOR, 150); zapis analogowy(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.pokaż(); }
nieważne prawo () {
//PRAWY zapis analogowy(LMOTOR, 255); analogZapis(RMOTOR, 150); PIXEL.setPixelColor(0, PIXEL. Color(0, 100, 0)); PIXEL.setPixelColor(2, PIXEL. Color(0, 0, 255)); PIXEL.pokaż(); }
//to do dalszych eksperymentów, próbując nadać temu komuś trochę osobowości:-) Testuję, co dałoby się zrobić, ale jeszcze nie ma dobrych pomysłów.
void emotion() { int emotimer = 2500; int czas trwania = losowy (250, 750); if (millis() - oldmillis > emotimer) { oldmillis = millis(); emo = losowo (1, 4); } if (millis() - oldmillis > czas trwania) { emostate = !emostate; } if (emostate == true) { switch (emo) { przypadek 1: PIXEL.setPixelColor(1, PIXEL. Color((255), (255), (255))); PIXEL.pokaż(); przerwa; przypadek 2: PIXEL.setPixelColor(1, PIXEL. Color((255), (0), (0))); PIXEL.pokaż(); przerwa; przypadek 3: PIXEL.setPixelColor(1, PIXEL. Color((0), (255), (0))); PIXEL.pokaż(); przerwa; domyślnie: PIXEL.setPixelColor(1, PIXEL. Color(random(0, 255), random(0, 255), random(0, 255))); PIXEL.pokaż(); przerwa; } } else { PIXEL.setPixelColor(1, PIXEL. Color(25, 0, 0)); PIXEL.pokaż(); } }
Zalecana:
DIY podgrzewacz wody Bluetooth Powered by Arduino: 4 kroki
DIY podgrzewacz wody Bluetooth zasilany przez Arduino: UWAGA: To jest tylko do testowania (UI za pomocą remotexy.com) do sterowania podgrzewaczem wody 12 V DC (pierwotnie do użytku w samochodzie - gniazdo zapalniczki 12 V). Przyznaję, że część używana w ten projekt „nie jest najlepszym wyborem” w swoim celu, ale znowu
Led Solar Powered: 3 kroki (ze zdjęciami)
Led Solar Powered: prosty system odzyskiwania energii za pomocą paneli słonecznych i diod led (bez baterii)Panele słoneczne składające się zazwyczaj z dwóch warstw krzemu - materiału półprzewodnikowego i warstwy oddzielającej, są połączone ze sobą i zmontowane w panele lub moduły.Znajdź nas
HX1-DM - upcycled Arduino DUE Powered DIY Drum Machine (wykonany za pomocą Dead Maschine MK2): 4 kroki
HX1-DM - upcycled Arduino DUE Powered DIY Drum Machine (wykonany z Dead Maschine MK2): Spec. Hybrydowy kontroler / automat perkusyjny Midi: Arduino DUE powered! 16 padów wykrywających prędkość z bardzo niską latencją 1>ms 8 pokręteł przypisywanych przez użytkownika do dowolnego polecenia Midi #CC 16 kanałów Wbudowany sekwencer (nie wymaga komputera!) Funkcja wejścia/wyjścia/przejścia MIDI
Balance Box Game - Arduino Powered: 4 kroki (ze zdjęciami)
Balance Box Game - Arduino Powered: Gra Balance Box została stworzona z myślą o wyzwaniu, musi być prowadzona poziomo przez tor przeszkód lub na ustalonym dystansie, aby wygrać wyzwanie. Arduino służy do pomiaru kąta box i wywołaj alarm po ustawieniu kąta
ESP8266/ESP-12 Arduino Powered SmartThings DS18B20 Temp. Czujnik: 4 kroki (ze zdjęciami)
ESP8266/ESP-12 Arduino Powered SmartThings DS18B20 Temp. Czujnik: Wszyscy lubimy wiedzieć, jaka jest aktualna temperatura w pomieszczeniu, a czasem jaka jest temperatura w innym pomieszczeniu, a może nawet w Twoim domu wakacyjnym na drugim końcu świata. Może chcesz monitorować temperaturę w domu Jaszczurki swojego zwierzaka