INHOUDSOPGAWE:

Hoe om die Dragon Rider 500 met u AVR -draak te gebruik: 10 stappe
Hoe om die Dragon Rider 500 met u AVR -draak te gebruik: 10 stappe

Video: Hoe om die Dragon Rider 500 met u AVR -draak te gebruik: 10 stappe

Video: Hoe om die Dragon Rider 500 met u AVR -draak te gebruik: 10 stappe
Video: Hot To Hatch Dragon Egg 100% Working New Trick | Minecraft | #shorts #minecraft 2024, Julie
Anonim
Hoe om die Dragon Rider 500 met u AVR -draak te gebruik
Hoe om die Dragon Rider 500 met u AVR -draak te gebruik

Hierdie instruksies is 'n ongelukskursus oor die gebruik van sommige van die funksies van die Dragon Rider 500 van Ecros Technologies. Hou in gedagte dat daar 'n baie gedetailleerde gebruikersgids op die Ecros -webwerf beskikbaar is.

Die Dragon Rider is 'n koppelvlakbord vir gebruik met 'n AVR -mikrobeheerderprogrammeerder genaamd AVR Dragon deur Atmel. Vir meer inligting: Atmel's Wesite: https://www.atmel.com/ AVR Dragon -skakel: https://www.atmel.com/dyn/products/tools_card.asp? Tool_id = 3891 Dragon Rider 500 deur Ecros Technology: https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm Dragon Rider 500-samestelling Instrueerbaar: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A/Kom meer te wete oor die AVR-mikrobeheerders: https://www.avrfreaks.net Hierdie instruksie kan mettertyd groei, so kom af en toe terug!

Stap 1: AVR Dude

U benodig 'n paar programmeersagteware om die AVR Dragon vir programmering te kan gebruik. Ek gebruik AVRdude met die Ubuntu -bedryfstelsel (Linux) en ek is baie tevrede met die resultate. As u nie weet hoe om sagteware op te stel of te gebruik nie, kyk dan na hierdie instruksies om u op hoogte te hou: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-draak/My raaiskoot is dat as u 'n Dragon Rider 500 gekoop en bymekaargemaak het, u reeds weet hoe om 'n chip met die AVR Dragon te programmeer …..

Stap 2: ATtiny2313 - Knipper die LED's

ATtiny2313 - Knipper die LED's
ATtiny2313 - Knipper die LED's
ATtiny2313 - Knipper die LED's
ATtiny2313 - Knipper die LED's
ATtiny2313 - Knipper die LED's
ATtiny2313 - Knipper die LED's

Kom ons programmeer 'n ATtiny2313, 'n 20-pen mikrokontroleerder. Die Dragon Rider 500 het voetstukke vir verskillende AVR-mikrobeheerders in verskillende groottes. Dit sluit in: 8, 20, 28 en 40 -pen voetstukke. Afhangende van die aansluiting wat u gebruik, moet springers op die Dragon Rider -bord anders gestel word.

Jumper -instellings

Stel die springers op die Dragon Rider sodat die shunts die volgende penne verbind. (pin4 is die middelste pen vir J22 -J -24) Spelde: J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41 Dit is 'n basiese opstelling waarmee ISP (in stelselprogrammering) moontlik is.

Blinkerig Blinkerig

Om te programmeer, het niks te doen nie, tensy u iets het om te programmeer. Ek het 'n baie kort kode voorbeeld geskryf om die LED's van die Dragon Rider een vir een te laat knip. Gebruik 'n lintkabel om die LED kop (J29) aan die PortB kop (J2) te koppel.

Programmering

Ek het die C -lêer sowel as 'n makefile en die hex -lêer ingesluit. Soos ek in die inleiding genoem het, kan ek nie die sagtewarekant van programmering in die Instructable dek nie. Programmeer soos u vir die AVR Dragon, aangesien die Dragon Rider glad nie die sagteware -kant van dinge verander nie.

Stap 3: Gebruik die LCD-byvoeging

Gebruik die LCD-byvoeging
Gebruik die LCD-byvoeging

Hier is 'n eenvoudige manier om die LCD-byvoeging te gebruik. Dit sal 'Dragon Rider' op die LCD -skerm skryf.

Hardeware:

  • ATtiny2313
  • R/W -trui: R/W moet gekoppel wees aan "BIT1" op die Dragon Rider Board (sien uitleg in die samestelling Instrueerbaar)
  • J23: Hierdie trui moet geïnstalleer word vir ISP -programmering, maar dan verwyder word sodat die LCD behoorlik kan funksioneer.
  • Koppel die LCD aan PORT B met 'n lintkabel (J31 tot J2)

Sagteware

Ek gebruik die LCD-biblioteek van Peter Fleury om die LCD in 4-bis-modus te bestuur. Besoek Peter se tuisblad om die biblioteek af te laai. U moet seker maak dat lcd.c saamgestel is met u kode en dat u die volgende veranderinge aan lcd.h aanbring:

Ons gebruik die interne RC -ossillator, dus moet XTAL ingestel word op 1MHz:

#definieer XTAL 1000000

  • Poortinstellings moet aangepas word by PORTB:
  • #definieer LCD_PORT PORTB

  • Pinout vir 4 data lyne moet aangepas word:
  • #definieer LCD_DATA0_PIN 4 #definieer LCD_DATA1_PIN 5 #definieer LCD_DATA2_PIN 6 #definieer LCD_DATA3_PIN 7

  • Pinout vir RS, RW en E moet aangepas word:
  • #definieer LCD_RS_PIN 3 #definieer LCD_RW_PIN 1 #definieer LCD_E_PIN 2

    Die hoofprogram is baie eenvoudig danksy die werk wat Peter Fleury in sy LCD -biblioteek gedoen het.

    #include #include "lcd.h" int main (void) {lcd_init (LCD_DISP_ON); // Initialiseer LCD met die wyser af lcd_clrscr (); // Maak die LCD -skerm lcd_gotoxy (5, 0) skoon; // Beweeg wyser na hierdie plek lcd_puts ("Dragon"); // Sit hierdie string op die LCD lcd_gotoxy (6, 1); // Beweeg wyser na hierdie plek lcd_puts ("Ruiter"); // Plaas hierdie string op die LCD vir (;;) {// Doen niks vir ewig nie (boodskap word reeds op LCD vertoon)}}

    Kode aangeheg

    Die aangehegte kode bevat Peter Fleury se LCD -biblioteek (lcd.c en lcd.h) met sy toestemming. Dankie Peter! Die enigste verandering wat ek daaraan aangebring het, is om die regte penne in die definisies te plaas. Besoek sy webwerf om die pakket af te laai: https://www.jump.to/fleury Ek het 'n PM gestuur na Jorg op avrfreaks.net, maar het nooit 'n antwoord van hom gekry nie. Daar is 'n paar veranderinge in die vervaardigingslêer om aan te pas by die gebruik van Linux en die draak. Dankie aan julle albei, stel my asseblief in kennis van julle voorkeure dat ek julle werk deel.

    Stap 4: 28-pins UC ISP-programmering (ATmega8)

    28-pins UC ISP-programmering (ATmega8)
    28-pins UC ISP-programmering (ATmega8)
    28-pins UC ISP-programmering (ATmega8)
    28-pins UC ISP-programmering (ATmega8)

    Die volgende demontrasie van die projek sal gebruik maak van 'n ATmega8, 'n 28-pins avr. Hier is die basiese jumperstel vir ISP-programmering van die 28-pen mikrobeheerders.

    Jumper -instellings

    Stel die springers op die Dragon Rider sodat die shunts die volgende penne verbind. (pen4 is die middelste pen vir J22 -J -24) Spelde: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42

    Tegniese informasie

    • Deur J11 en J12 op hierdie manier aan te sluit, kan u die penne as I/O -penne gebruik. Die alternatief sou wees om hierdie penne te lei om 'n verbinding met die eksterne kristal te maak.
    • Deur J13 op hierdie manier aan te sluit, kan ons dit as die resetpen gebruik. Die alternatief lei hierdie pen na die PORTC -kop vir gebruik as 'n I/O -pen. (dit het baie nadele, insluitend die onvermoë om hierdie chip met behulp van ISP te programmeer).
    • J16 en J22-J24 is op hierdie manier verbind om die toepaslike penne (Reset, MISO, MOSI en SCK) na die ISP-kop van die AVR Dragon te stuur.

    Stap 5: Gevorderde LCD en knoppie gebruik: die groot klok

    Gevorderde LCD en knoppie gebruik: die groot klok
    Gevorderde LCD en knoppie gebruik: die groot klok

    Dit is 'n prettige projek wat gebruik maak van die LCD -skerm en knoppies. Ons het te doen met die funksies van Real Time Clock en persoonlike karakters op die LCD. Op die foto onderaan kan u die tyd 7:26:07 in groot getalle op die LCD -skerm sien. Elke getal gebruik 'n 2x2 -rooster van die karakters wat vertoon word om die groot getal aan te dui. Dit maak gebruik van 'n lettertipe wat oorspronklik deur Xtinus geskryf is vir die XBMC -projek. Die knoppies word gebruik om die klok in te stel. Links verhoog die ure, Up verhoog die minute, Right wissel tussen 12 en 24 uur, en Enter stel die sekondes terug op nul. Die klok hou nie baie tyd nie, aangesien ons die baie onakkurate interne ossillator gebruik, maar hierdie program kan maklik verander word om 'n baie meer akkurate eksterne kristal te gebruik. Sien dit in aksie in die video hieronder. 'N Verduideliking van hoe hierdie kode werk, is in orde, maar ek het nie nou die tyd nie. Koppel die LCD -kop (J31) vir eers aan PORTD (J4) en die knoppie -kop (J30) aan PORTB (J2). Maak seker dat beide SW1 en SW2 af is. Koppel die AVR Dragon aan 'n usb -kabel en steek die ander kant van die kabel in u rekenaar. Skakel SW2 aan en programmeer die ATmega8 met die programmeersagteware van u keuse (hex -lêer hieronder; versmeltings wat in die fabrieksinstellings gebrand is) OPMERKING: Om die knoppies links en omhoog te gebruik, moet u die shunts van J22 en J24 verwyder. dit terwyl die krag af is.

    Stap 6: Hoogspanningsprogrammering

    Ek het die High Voltage Parallel Programming gebruik om 'n ATtiny2313 op te wek waarop ek die verkeerde lontinstellings gestel het. Ek het dit 'n tweede keer nodig gehad toe ek aan hierdie instruksies gewerk het, want ek het per ongeluk die lfuse -instelling wat ek wou, in die hfuse -register geskryf … oops. Hoëspanning parallelle programmering is 'n handige hulpmiddel om tot u beskikking te wees! Hieronder is 'n lys van my jumperinstellings: GEBRUIK OP U EIE RISIKO, HIERDIE TYPE PROGRAMMERING KAN U HARDWARE BESKADIG AS U NIE WEET WAT U DOEN NIE !! Parallelle programmering met hoë spanning: ATtiny2313 in aansluiting U3: SW1 - OFFSW2 - ONJ5, J6, J7 - verbind pin1 en pin2XTAL1 - verbind pin1 en pin2J16 - Verbind pin1 en pin22x5 IDC -kabels: PROG_CTRL na PORT D, PROG_DATA na PORT BA J8-J13, J18, J19, J20, J22-J28, J24) Vir ander skyfies moet u die instellings wat u benodig, kan uitvind in die gebruikershandleiding van Atmel vir hul STK500.

    Stap 7: Uitbreiding buite die raad

    Uitbreiding buite die raad
    Uitbreiding buite die raad

    Ek vind dit redelik maklik om met 'n broodbord te koppel. Dit bied baie meer buigsaamheid in die prototipering en ontwikkeling van kode terselfdertyd. Hieronder sien u 'n paar broodborde wat aan die Dragon Rider gekoppel is. Ek verbind die lintkabels aan die een kant aan die toepaslike poorte. Aan die ander kant gebruik ek springdrade om die regte ICD -geleier met die broodborde aan te sluit.

    Stap 8: Gevolgtrekking

    Daar kan nog baie meer by hierdie instruksies betrokke wees. Net vanaand voltooi ek 'n adapter waarmee u die 6-pins programmeerkop kan gebruik sonder om die draak uit die Dragon Rider te verwyder. Ek sal inligting gee oor hoe u dit self kan bou … binnekort. As u ander dinge het wat u dink moet bygevoeg word, laat 'n opmerking.

    Stap 9: Voeg 'n 6-pins ISP by

    Voeg 'n 6-pins ISP by
    Voeg 'n 6-pins ISP by
    Voeg 'n 6-pins ISP by
    Voeg 'n 6-pins ISP by
    Voeg 'n 6-pins ISP by
    Voeg 'n 6-pins ISP by

    Ek bou gewoonlik 'n 6-pins ISP-kop vir al my projekte in, sodat ek die chip kan herprogrammeer indien nodig en dit nie van die projekbord hoef te verwyder nie. Die draakryder het ongelukkig nie 'n 6-pen ISP-kop beskikbaar nie, maar ek het uitgevind hoe ek dit beskikbaar kan stel.

    Waarskuwing !

    Dit is 'n hack. As u nie presies weet hoe dit werk nie, moet dit nie doen nie

    U is gewaarsku. Ek het my eie adapterbord en 3-pins-trui geskep om die 6-pins ISP-kopstuk te voorsien. Wat u doen, is om die Dragon Rider op die program te stel en 'n 8-pins mikrobeheerder. Met 'n 3-pins-aansluiting spring ek met J8 om penne 1 en 3. aan te sluit. Dit lei die kloksein na die PortB-aansluiting. Ek voer dan 'n springkabel van die PortB -kop na my adapterbord en voila! Daar is foto's hieronder …. asseblief, asseblief, asseblief, moenie dit doen nie, tensy u werklik verstaan wat u doen, aangesien u u AVR -draak kan beskadig of erger as u dit verkeerd doen.

    Pinout: PortB ISP1 42 13 34 NC5 NC6 57 NC8 NC9 610 2

    Stap 10: RSS -leser met seriële verbinding en LCD

    RSS -leser met seriële verbinding en LCD
    RSS -leser met seriële verbinding en LCD
    RSS -leser met seriële verbinding en LCD
    RSS -leser met seriële verbinding en LCD

    Ek speel voort met hierdie ontwikkelingsbord. Hierdie keer het ek 'n gedeelte van 'n middag deurgebring aan die ontwikkeling van 'n RSS -lesing (meestal aan die luislangkant). Ek dink nie dat dit sy eie instruksies regverdig nie, so ek voeg dit hier by.

    Hardeware

    Ons gebruik die Dragon Rider 500 as 'n ontwikkelingsbord. Dit bied al die hardeware wat u benodig (as u al die byvoegingsstelle het). Dit gesê, u kan dit beslis doen met u eie hardeware -opstelling:

    • ATmega8 -mikrobeheerder (of enige met 'n USART en genoeg penne vir alle verbindings
    • 'N Manier om die mikrobeheerder te programmeer (ek gebruik die AVR Dragon)
    • MAX232 -chip vir seriële kommunikasie
    • DB9 -aansluiting
    • HD44780 LCD skerm
    • Kristal (ek het 'n 8MHz kristal gebruik)
    • Verskeie kapasitors en weerstande

    Hieronder word 'n skematiese voorstelling gegee. Op die Dragon Rider sal ons kreatiwiteit moet gebruik om die verbindings te lei. Normaalweg kan poort D direk aan die LCD -kop gekoppel word. Dit is nie hier die geval nie, want die USART wat benodig word vir die seriële verbinding gebruik PD0 en PD1. Verder kan poort B nie gebruik word nie, want PB6 en PB7 word gebruik vir die eksterne kristal. Hieronder is my oplossing vir hierdie probleem. Ek steek 'n lintkabel in die kopstukke vir die LCD, poort B en poort D, en gebruik dan jumperdrade om die regte roetes te maak. Moenie vergeet om die spanning aan te sluit en aan die LCD -kop te koppel nie.

    Sagteware

    Die sagteware vir hierdie projek bestaan uit twee dele: die firmware vir die mikrobeheerder en die python -script om die RSS -feeds te skrap en dit oor die seriële verbinding te stuur. /fleury). Dit is kragtig en bondig, veelsydig en maklik om te verander vir u hardeware -opstelling. As u na die koplêer aangeheg kyk (lcd.h), sal u sien dat ek in die 4-bis-modus werk met poort D as databitse, en poort B as die kontrolebits. Die konsep van hierdie firmware is redelik eenvoudig:

    • Sodra die mikrobeheerder aangeskakel is, vertoon dit "RSS Reader" en wag dit dan op reeksdata.
    • Elke greep seriële data wat ontvang word, veroorsaak dat 'n buffer van 16 tekens na links skuif en die byte by die buffer voeg, en dan die buffer vertoon.
    • Drie spesiale opdragte word deur die mikrobeheerder aanvaar: 0x00, 0x01 en 0x02. Dit is 'n duidelike skerm, skuif na lyn 0 en gaan na lyn 1 onderskeidelik.

    Python ScryptI het 'n pyton -skrif geskryf om die RSS -data te skraap en dit oor die seriële verbinding te stuur. Dit vereis die python -module "pyserial" wat u waarskynlik op u stelsel sal moet installeer om dit te laat werk. Die RSS -feed kan bo -aan die pyton -lêer gekonfigureer word. Let op dat u 'n naam vir die voer sowel as die voer -url moet invoer. Daar is drie voorbeelde, ek is seker dat u die kan volg vir die regte sintx

    • Monteer die hardeware
    • Program die mikrobeheerder (dragon_rss.hex kan gebruik word as u dit nie self wil saamstel nie). Sekeringsinstellings vir ATmega8 met 'n 8 MHz kristal: lfuse = 0xEF hfuse = 0xD9
    • Skakel die Dragon Rider aan en maak seker dat die seriële kabel ingeskakel is (LCD moet lees: "RSS Reader")
    • Voer die python -program uit (python serial_rss.py)
    • Geniet dit

    Aanbeveel: