De ingenieurs over van MIT's Hoog/laag-Tech hebben een grote verzameling van tutorials die in de nitty krijgt stenig van dit proces op basis van breadboarding en jumper draden. Deze tutorial zal zich richten op een meer permanente oplossing voor degenen die zich steeds vaker met behulp van de Tinys op. Het veronderstelt ook een niet-beginners niveau ervaring met solderen van techniek, maar u hoeft niet als een robot in een Shenzhen te laten werken.
Tinys zijn beschikbaar via de meeste van de gebruikelijke verdachten als het gaat om postorder halfgeleider leveranciers en soms in veel op eBay. Bij het bestellen, zorg ervoor dat de DIP-versie te krijgen. Als u de oppervlakte bevestiging verscheidenheid bestelt, bent u uit geluk als het gaat om deze tutorial.
We zullen de discussie de op Tiny 45/85 en 2313 beperken omdat deze eenheden soortgelijke genoeg pinouts hebben om te minimaliseren van componenten en zij een breed scala van het geheugen en in/out configuraties vertegenwoordigen. (Aangezien ik voor het eerst de Tinys op gevonden, ik heb doorgemaakt projecten gebruik ongeveer een half dozijn Tiny 45's en ik ben niet een industrieel ingenieur.) Als je kijkt naar de tweede afbeelding, ziet u de pin-configuraties voor deze twee eenheden. De belangrijke pinnen hier zijn grond, Reset, Vcc, MISO (In Master / Slave Out), MOSI (Out Master / Slave In) en SCL of SCK (die zijn twee manieren om te zeggen "Seriële klok.") Merk op dat bijna al deze pinnen zijn op dezelfde plaats op de twee pakketten met uitzondering van grond, die op de 45/85 op pin 4 en op de 2313 is is op pin 10. In een permanente oplossing, als u liep pin 4 aan de grond op de 2313, zou het worden aangesloten op de pinnen gereserveerd voor de externe klok, die problemen kan veroorzaken. We gaan dit probleem oplossen met behulp van een jumper.
Het eerste ding om te doen, zoals altijd, is om te verzamelen van uw materialen. Voor dit Instructable, zult u het volgende nodig:
-Een Arduino board. Unos, Megas en Duemillanoves moet alle werk maar ik gebruik een Uno. Het is de enige die ik ken zal zeker hier werken.
-Een Arduino Protoshield (ongeveer $18 RadioShack met variërende prijzen rond de interwebs.) Dit is een geweldig hulpmiddel voor eenmalige schild gebouw. Het is ongeveer halverwege tussen een brood van bestuur en een aangepaste PCB combineren de beste aspecten van beide. (Ik veronderstel dat u kunt een PCB off-the-shelf perf-geperforeerd met koptekst pinnen, maar er zijn problemen met oriëntatie als u dat doet. Ik zal niet ingaan op de mechanica van deze benadering.) Zie de derde afbeelding.
-Een 20-Pin DIP socket (ook in de derde afbeelding.)
-Een meer DIP socket (pin-nummer is niet belangrijk hier, zolang er ten minste twee aan elke zijde zijn-u zult offeren dit.) U kunt ook een off-the-shelf kop pin trui zal werken
-At ten minste twee break-off kop pinnen, niet-stapelen.
-1 10 microfarad condensator.
-Hook up draad. (Ik gebruik liever de soort waarmee elektriciens draad telefoonlijnen in de muren van uw huis terug wanneer mensen nog steeds land lijnen gebruikt. Het gaat om de juiste maat en kunt u uw werk consistent kleurcode.)
Tools:
-Laag wattage solderen ijzer en natuurlijk hars-core soldeer. (Ik gebruik extra hars wanneer ik werk.)
-Diagonale Snipping tangen/draad-stripper (misschien wel twee aparte instrumenten)
-Heat sink
-A naald-neus buigtang kunnen ook van pas komen
0
Allereerst de 20 Pin DIP socket vastklikt op de Proto-schild, zoals in de 4e afbeelding solderen. Probeer te netter erover dat ik was. (Ik was hergebruik van het schild uit een ander project en had enkele soldeer bruggen over aangesloten perfs die een tijdje duurde te schonen). Zorg ervoor dat u niet alle aangrenzende perfs overbruggen.
Voeg vervolgens uw hook-up draad zoals in de 5e en 6e beelden. Zoals ik al zei, ik graag kleurcode dingen, dus rood vanaf 20 (Vcc) pin gaat op de Arduino + 5v, zwarte gaat van Pin 10 (Gnd op de 2313) met Arduino Gnd, geel gaat van Pin 1 (Reset) tot en met 10 van de Arduino, groene draden gaan van Pin 17 (MOSI) tot en met 11 van de Arduino, Pin 18 (MISO) tot en met 12 van de Arduino en van Pin 19 (seriële klok) tot en met 13 van de Arduino. Ook, haak omhoog een extra zwart draad tot en met de tweede open première op pin 10 draaien naar de buitenste niet opvolgende middellage perf gat grenzend aan pin 5, verlaten van een beetje meer lood dan normaal, maar niet het soldeer in de strip nog gewoon het einde en het doorlopen van dat gat.
Nu zetten we de jumper, die de twee pinnen van de module-off kop, op pin 4 (Gnd op de ATtiny 45/85) en naar de buitenste niet opvolgende middellage perf hole grenzend aan pin 4. De kop pinnen invoegen zodat de lange metalen uiteinden stok naar boven, niet naar beneden via de board als de andere stapelen headers vooraf gekoppeld aan de Raad van bestuur. Soldeer de pin dat hecht aan de pin 4 eerst sporen, dan buig de draad van de grond steken door het gat niet opvolgende middellage première op pin 5 over contact opnemen met de resterende kop-speld. Soldeer deze twee samen zoals in afbeelding 7.
De reset 10 Microfarad condensator toevoegen over het resetten van de Arduino en de resterende grond pin aan die kant, ervoor zorgend om Let op de polariteit ("-" met Gnd) zoals in afbeelding 8. Gebruik het koellichaam tussen de Raad van bestuur en het lichaam van het GLB zodat u niet het bak terwijl het solderen. (De geur van verbrande electrolytics is gewoon verschrikkelijk.)
Op dit punt zult u wilt uw jumper-verbindingslijn maken als u niet kopen of er rond leggend. Om een snelle en vuile jumper-connector, nemen uw "offer" DIN-aansluiting en de laatste twee pinnen op een rij bukken zodat ze aanraken en soldeer ze samen (ook in afbeelding 8, aan de linkerkant.) Vervolgens neem uw knipsels en knip de rail center van de duik vanaf het einde dat je gewerkt, dan scheiden van de twee pinnen van de aansluiting door te snijden op de derde pin vanaf het einde, waardoor uw gesoldeerd pinnen in tact moet. Schuif uw jumper connector naar beneden over de kop van de twee pinnen die stick omhoog van het bord zoals in afbeelding 1 (Ja, 1-het is min of meer volledig op dit punt dus ik dat als de hoofdafbeelding gebruikte.) Deze jumper is gewoon om te worden gebruikt bij het programmeren op Tiny 45/85 chips, dus wanneer u programmeert een ATTiny-2313 verwijderen.
Nu, voor het programmeergedeelte.
Ik ga ervan uit dat u weet wat u doet met een Arduino hier. De eerste stap in deze fase is te downloaden van de volgende twee bestanden:
één voor de 2313 en één voor de 45/85. De eerste heeft ook de kernen voor de chips op Tiny 84/44, maar deze programmeur zal niet werken met deze twee rassen. De pinouts zijn veel te verschillend. Als u probeert te sluiten in dit krijgt u resultaten uit het niets te verwarrend voor een klein beetje vuur op uw werkbank.
Zodra u hebt gedownload en uitgepakt van deze "kernen", zoals ze worden opgeroepen, opent u het bestand op uw computer waarin uw Arduino schetsboek en maak een folder, genaamd "Hardware", als men niet reeds bestaan en kopieer de uitgepakte bestanden in de map van uw hardware: de hele attiny-map en de map arduino-kleine-0100-0010 de submap tiny. (Opmerking: Ik houd deze op mijn desktop en kopiëren in één filter tegelijk als ik ze nodig hebt. Anders het submenu u zult worden selecteren hen krijgt lange en headachey.) Als u de Arduino omgeving liepen tijdens de installatie van de kernen, moet u waarschijnlijk beter weten, maar geen kwaad gedaan. Sluit het af en blazen. Als je niet, lanceer het enkel. (We gaan ervan uit dat je al hebt de Raad van bestuur geïnstalleerd en uitgevoerd.) Zodra het milieu wordt uitgevoerd, alleen voor de heck ervan, kijk onder "Tools > bestuur >" en u moeten zien een bos van opties die er nooit vóór waren. Voor het moment, gewoon laten de werkelijke Arduino board u geselecteerd (of als om wat voor reden de verkeerde is geselecteerd, selecteert u de juiste is.)
Nu zitten de kleine IC op naar de 10 pins aansluiting die u eerder in het schild gesoldeerd. Pin 1 op deze IC wordt gekenmerkt door een kleine divot op de bovenkant van de chip. Plaats de IC zodat deze pin is het dichtst bij de reset-schakelaar. (Ik zal worden met behulp van een kleine 85 op voor dit Instructable.)
Voor het volgende deel van de tutorial is het belangrijk om dingen te doen in de volgorde opgegeven of anders krijg je enkele rare fouten als u probeert te programmeren uw op Tiny.
We gaan nu iets netjes die eigenlijk snijdt de functionaliteit van de Arduino tot een fractie van zijn vermogen te doen. Met behulp van de Raad van bestuur als een programmeur in-systeem, je bent vrij veel het omzeilen van de processor die is ingebouwd in de Arduino (eigenlijk is als het gebruiken als een schakelbord route signalen, maar dat is echt een soort ondergeschikte werkzoekende voor de wat een Arduino kunnen doen.) Open in de Arduino omgeving, "bestand > voorbeelden > ArduinoISP" en deze uploaden naar je Arduino board.
Vervolgens zorgvuldig het invoegen van het schild in je Arduino board (zie afbeelding 9).
Vervolgens opent u een nieuwe schets en kopieer en plak de volgende code:
/*
TinyBreather
"Sleep Light" effect voor een LED enigszins vergelijkbaar met een computer monitor power-indicator wanneer het gaat in slaapstand.
Deze voorbeeldcode is in het publieke domein.
*/
int helderheid = 0; Hoe helder de LED is
VOID Setup {}
pinMode (0, OUTPUT);
}
void loop)
{
delay(10);
de helderheid van pin 0 instellen:
voor (int helderheid = 0; helderheid < 255; helderheid ++) {}
analogWrite (0, helderheid);
vertraging (5);
}
wacht 30 milliseconden het dimmen effect zien
delay(30);
voor (int helderheid = 255; helderheid > 0; helderheid--) {}
analogWrite (0, helderheid);
vertraging (5);
}
wacht 30 milliseconden het dimmen effect zien
delay(30);
delay(10);
}
stoppen met het kopiëren van de schets hier
Zodra u deze nieuwe schets ingevoegd in het milieu, uitgezocht "Tools > bestuur > op Tiny85 (w / Arduino als ISP)" en de schets compileren. Het zou moeten werken zonder incidenten. Zodra u een schone compile hebt, uploaden van de schets (dit is eigenlijk door de Arduino op uiterst klein, niet voor de Arduino.) Ik kan bijna garanderen dat u krijgt het volgende foutbericht weergegeven:
avrdude: Geef PAGEL en BS2 signalen in het configuratiebestand voor deel ATtiny85
Twee keer in een rij, in feite. Maak je geen zorgen, dat is eigenlijk een goed teken. Nu zullen we het testen door middel van een LED en plaatsen van het in het schild met de positieve (langer) leiden in socket 11 en de negatieve lood in Gnd aan dezelfde kant. (Opmerking: beste praktijken zou waarschijnlijk dicteren dat je een beperking van de huidige weerstand ergens tussen de LED en het circuit, maar ik heb genoeg van hen liggen dat ik niet erg riskeren de smokeshow voor deze demonstratie.) De resultaten moeten zijn vrij veel wat je ziet in de video hier:
http://Youtu.be/zlhP15mu9Bo
U zou kunt hetzelfde circuit onafhankelijk van het schild/Arduino, u gewoon uitvoeren een gereglementeerde stroombron (+ 5v) pin 8 van uw geprogrammeerde IC-met grond tot en met 4 en verbinding maken met de LED via pin 5 en op de grond. Net als de Arduino, de op kleine het laatste programma blijft laden u in het al een tijdje.
Het proces is veel hetzelfde voor de op Tiny 45 behalve natuurlijk je zou selecteren "Op Tiny 45 (w / Arduino als ISP)" zoals door de Bestuur naar programma. Als u te selecteren de op Tiny 2313 voor uw project, het proces zou vrij veel het zelfde behalve wij willen verwijderen van de jumper-connector, Controleer of de juiste set van kernen is geïnstalleerd in de map "Hardware" en bijvoorbeeld wijzigen van de pin-toewijzingen in de schets van "0" naar "5" -analogWrite (0, helderheid): wordt analogWrite (5, helderheid); Zie afbeelding 2 zin hiervan te maken.
De meeste van de controle-opdrachten die u zou gebruiken voor de Arduino zijn beschikbaar bij de op Tiny, maar enkele van de opdrachten van de hoger-functie (dingen als het nemen van controle van de Output Control Registers en de interne klokken) niet heel direct poort omdat de timers, en natuurlijk de uitgangen zijn niet hetzelfde.) Volgens Hoog/laag-Tech, moeten de volgende Arduino-opdrachten worden ondersteund:
pinMode()
digitalWrite()
digitalRead()
analogRead()
analogWrite()
shiftOut()
pulseIn()
Millis()
Micros()
delay()
delayMicroseconds()
SoftwareSerial (werd vernieuwd in Arduino 1.0)
Ik heb al deze en anderen gebruikt. Tone() lijkt bijvoorbeeld te werken zonder problemen.
Dus de volgende keer dat u hebt een groot Arduino project maar niet aan wilt permanent toewijzen uw Arduino, zeggen, een open deur waarschuwing of een knipperende wenskaart, overwegen de op Tiny lijn en als je verslaafd raken, zal zij moeite waard de tijd te maken van deze programmeur hardware in plaats van te slijten uw breadboard.