Inhoudsopgave:
Video: ATTiny-RAT, ATTINY Powered Mini Lightfollower - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Hallo mensen, het is een tijdje geleden dat ik mijn laatste instructable heb gepost. Er gaan nu veel dingen door mijn hoofd, maar ik heb mijn "eerste stappen" met de ATTiny-serie chips in deze korte instructable voor je kunnen documenteren.
Ik bestelde wat ATTINY85-samples alleen omdat ik ze wilde testen:-) (iedereen houdt van dingen testen, toch?). Daarna begon ik wat ideeën in mijn notitieboekje te tekenen. Om eerlijk te zijn was het eerste wat ik deed het knipperen van een LED, dat is zoals altijd een goed begin om te controleren of je setup/toolchain werkt. Ik heb ook een temperatuur- en vochtigheidslogger geprobeerd met DHT22 en SoftwareSerial. Dat was een lastige omdat de DHT-bibliotheken voornamelijk voor 16Mhz-klokken zijn (als je van plan bent zoiets te doen, kijk dan hoe je de interne klok vooraf kunt schalen). Maar ik besloot je iets te laten zien dat, nou ja, gewoon grappiger is. Tussen haakjes: ik heb een van mijn tekeningen voor je geüpload, het is geen Rembrandt, maar het zal je laten zien hoe ik dit (echt) stomme idee op een stuk papier kreeg: -P.
Ik gebruikte alleen dingen die ik had liggen om dit project zo goedkoop mogelijk te houden (voor mij). Het resultaat van dit kleine avontuur is een leuke kleine "lightfollower robot" voor ongeveer 10-15 $ (3 $ voor mij:-P)
Dus als je zelf geïnteresseerd bent in ATTINY, lees dan gewoon verder.
BTW: sorry voor mijn slechte Engels (ik ben geen moedertaalspreker)
Stap 1: Aan de slag met ATTiny & Tools & Materials
Wat heb je nodig om aan de slag te gaan:
- een ATtiny85-chip
- een Arduino UNO of vergelijkbaar
- een breadboard met wat jumper-wire of een ATTINY programmer of maak zelf een programmer-shield voor Arduino (zie de bijgevoegde foto's, er is een schema van avdweb.nl). Ik heb deze ook gemaakt en ik ben er erg blij mee. De enige wijziging die ik heb aangebracht was dat ik een socket voor de ATTinyx4-serie heb toegevoegd (zie de afbeelding en de pinout-diagrammen).
- de Arduino IDE (download het hier)
- de hardwarebestanden voor de ArduinoIDE (download en installeer ze)
Info-Link naar de playgrounddirect Link naar de github-bestanden die ik heb gebruikt
- laad de Arduino als ISP-schets op de UNO (dit wordt je programmeur)
- volg deze instructie (https://highlowtech.org/) of deze instructable (door ardutronix) en probeer de "blink" schets (wijzig het PIN-nummer. Gebruik de ATTINY-afbeelding als referentie! u hebt de voorgeflitste ATTINY een LED nodig en een ~ 220Ohm weerstand daarvoor)
Maak een kleine breadboard-opstelling om alles te controleren. Als je alles goed hebt gedaan, gaat de LED knipperen en ben je klaar om te gaan
GEREEDSCHAP
- Soldeerbout - wat soldeer - een kleine draadknipper - een dremel of ander roterend gereedschap (alleen voor het snijden van de PCB!) - wat hotglue- pincet- draden
MATERIALEN
- prototyping PCB (~4cmx6cm zal het doen)- 2x LDR- 5x 10k weerstand (2x voor de LDR's en 2x voor de transistors BE, 1x LED) - 1x 330Ohm weerstand (1x NEOPIXELS)- 2x LDR- 1x LED (kleur van uw keuze, in plaats van het zwenkwiel)- 3x NEOPIXEL WS2812- 2x Transistor (BD137 of vergelijkbaar)- 2x Diode (1N4001 of vergelijkbaar)- 2x micromotor (bijv. van een Hubsan micro-quadcopter)- 1x ATTINY85 + optioneel (aanbevolen) 8PIN IC Socket- 1x 1s LIPO (ik gebruikte een 140Ah van een oude RC-helikopter)- enkele pinheaders/sockets- shrinktube (LDR-behuizing)
Laten we verder gaan met het bouwen van de hardware…
Stap 2: Hardware
Als je de schema's bekijkt die ik heb bijgevoegd, is de hardwareconfiguratie vrij eenvoudig. Dus als je schema's kunt lezen en een soldeerbout kunt gebruiken, is dat de helft van de truc. Kijk ook eens naar de foto's, ik heb wat aantekeningen voor je toegevoegd.
Ik geef geen plan voor het snijden van de PCB, je hebt de vrijheid om je eigen ontwerp te maken (wees creatief en laat ons je Tiny Bots zien). De plaatsing van alle elektronische componenten is ook aan jou. Enkele tips van mijn kant:
Probeer de motoren precies uit te lijnen (let op de hoek!) we gebruiken alleen de motoras in plaats van wielen. (dit zal minder energie verbruiken) Ik raad aan om de motoren onder de batterij (gewicht) te plaatsen en de LDR's aan de voorkant (45 ° onder een hoek) te gebruiken in combinatie met op LED (ik probeer deze combinatie te gebruiken om obstakels te vermijden, verder testen nodig).
Verder raad ik aan om een kleine aan/uit jumper te maken zodat de batterij niet zo snel verloren gaat.
Als er iets niet duidelijk is of als je vragen hebt, stel ze gerust. Het zal niet veel zin hebben om van dit kleine project een proefschrift te maken.
Stap 3: Software
Allereerst download en installeer ADAFRUIT Neopixel Library
Hier is mijn code met enkele belangrijke beschrijvingen (ik heb ook het schetsbestand toegevoegd). Ik heb niet elke stap becommentarieerd omdat ik denk dat het niet nodig is.
Upload de schets naar je ATTiny85 en veel plezier met je nieuwe speeltje
Ideeën voor de functie "persoonlijkheid" + misschien codevoorbeelden zijn zeer welkom:-)
Als er vragen zijn, stel ze gerust.
Ik hoop dat je genoten hebt van mijn korte instructable en de kleine reis naar de wereld van ATTINY's.
/* ATTINY85-Rata eenvoudige ATTINY85 aangedreven lichtvolgende robot. Versie 2.0, door Auer Markus */
#erbij betrekken
#erbij betrekken
//motoren
#define LMOTOR 0 #define RMOTOR 1 //LEDs #define PIXELPIN 2 #define NUMPIXEL 3 //LDRs #define LLDR A2 #define RLDR A3
//andere emo = 0; vlotter kaliber; booleaanse emostaat; lange oude millis; //definieer NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);
ongeldige setup()
{//upscale klok anders zul je wat timingproblemen tegenkomen (de neopixel lib is geschreven voor 16MHz) #if gedefinieerd (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set(clock_div_1); #stop als
//PINMODE pinMode (LMOTOR, UITGANG); pinMode (RMOTOR, UITGANG); pinMode (LLDR, INPUT); pinMode (LLDR, INPUT); // initialiseer pixels PIXEL.begin(); PIXEL.show(); vertraging (500); //startreeks voor (int i=0;i
lege lus()
{ if(lightfollow() == 1) { left(); } else if(lightfollow() == 2) { right(); } else if(lightfollow() == 0) { forward(); } emotie(); }
int lichtvolg() {
int-drempel = 14; int resultaat = 0; zweven naar links = 0; zweven naar rechts = 0; int-voorbeelden = 1; //lees LDR's voor (int j = 0; j<samples; j++){
links = links + analoog lezen (LLDR); rechts = rechts + (analogRead (RLDR) * calib);
}
// bereken het resultaat (uit welke richting komt het licht?)
if((links/samples) > ((right/samples)+treshold)) {resultaat = 2;}
else if((links/samples) < ((right/samples)-treshold)) {resultaat = 1;}
anders {resultaat = 0;}
resultaat teruggeven; } void forward () { // Forward analogWrite (LMOTOR, 230); analoogWrite(RMOTOR, 230); PIXEL.setPixelColor(0, PIXEL. Color(0, 0, 255)); PIXEL.setPixelColor(2, PIXEL. Color(0, 0, 255)); PIXEL.show(); }
leegte links() {
//LINKS analoogWrite (LMOTOR, 150); analoogWrite(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(); }
ongeldig rechts() {
// RECHTS analogWrite (LMOTOR, 255); analoogWrite(RMOTOR, 150); PIXEL.setPixelColor(0, PIXEL. Color(0, 100, 0)); PIXEL.setPixelColor(2, PIXEL. Color(0, 0, 255)); PIXEL.show(); }
//dit is voor verdere experimenten, ik probeer deze een beetje persoonlijkheid te geven:-) ik ben aan het testen wat ik zou kunnen doen, maar nog geen goede ideeën.
ongeldige emotie () { int emotimer = 2500; int duur = willekeurig (250, 750); if (millis() - oldmillis > emotimer) { oldmillis = millis(); emo = willekeurig (1, 4); } if (millis() - oldmillis > duur) { emostate = !emostate; } if (emostate == true) { switch (emo) { case 1: PIXEL.setPixelColor(1, PIXEL. Color((255), (255), (255))); PIXEL.show(); pauze; geval 2: PIXEL.setPixelColor(1, PIXEL. Color((255), (0), (0))); PIXEL.show(); pauze; geval 3: PIXEL.setPixelColor(1, PIXEL. Color((0), (255), (0))); PIXEL.show(); pauze; standaard: PIXEL.setPixelColor(1, PIXEL. Color(willekeurig (0, 255), willekeurig (0, 255), willekeurig (0, 255))); PIXEL.show(); pauze; } } else { PIXEL.setPixelColor(1, PIXEL. Color(25, 0, 0)); PIXEL.show(); } }
Aanbevolen:
Hoe maak je een goedkoop Attiny Arduino-bord: 4 stappen (met afbeeldingen)
Hoe maak je een goedkoop Attiny Arduino-bord: Nou, meestal krijg ik problemen als ik Arduino nodig heb in sommige projecten waar ik weinig I / O-pinnen nodig heb. Dankzij het Arduino-Tiny-platform kan het Arduino-programma worden gebrand in de Avr-tiny-serie zoals Attiny 85/45Arduino-Tiny is een open source set van ATtiny
Een ATtiny programmeren met Arduino: 7 stappen (met afbeeldingen)
Programmeer een ATtiny met Arduino: Hieronder volgen aanwijzingen voor het programmeren van de ATtiny-microcontrollers met behulp van de Arduino IDE. In gewoon Engels is dit hoe u 8-pins Atmel-chips programmeert zoals u normaal een Arduino zou doen. Dit is cool omdat de ATtiny klein is, en - nou ja - dit maakt het mogelijk
Linux Powered USB TableClock: 10 stappen
Linux Powered USB TableClock: Linux Power USB Tafelklok is Raspbian Lite Linux powered tafelklok. Het is gemaakt om vooral te worden gebruikt door nachtbrakers zoals ik die snel de tijd willen zien, maar het is een te helder LCD-scherm om de tijd op een mobiele telefoon te controleren. Het ziet er cool uit op mijn setup
Hallo trein! ATtiny 1614: 8 stappen (met afbeeldingen)
Hallo trein! ATtiny 1614: Voor mijn Fab Academy-les moet ik een bord maken met een microcontroller, een knop en een LED. Ik zal Eagle gebruiken om het te maken
Balance Box Game - Arduino Powered: 4 stappen (met afbeeldingen)
Balance Box Game - Arduino Powered: Het Balance Box-spel is gemaakt voor een uitdagingsevenement, het moet waterpas door een hindernisbaan of over een bepaalde afstand worden gedragen om de uitdaging te winnen. Een Arduino wordt gebruikt om de hoek van de box en activeer een alarm zodra de ingestelde hoek