Taula de continguts:
- Pas 1: AVR Home
- Pas 2: ATtiny2313: parpelleja els LED
- Pas 3: fer servir el complement LCD
- Maquinari:
- Programari
- Codi adjunt
- Pas 4: Programació ISP de 28 pins UC (ATmega8)
- Pas 5: Ús avançat de LCD i botons: el rellotge gran
- Pas 6: programació d’alta tensió
- Pas 7: Expandir-se més enllà del Consell
- Pas 8: Conclusió
- Pas 9: afegir un ISP de 6 pins
- Es tracta d’un hack. Si no sabeu exactament com funciona això, no ho feu
- Pas 10: Lector de RSS mitjançant connexió en sèrie i pantalla LCD
- Maquinari
- Programari
Vídeo: Com utilitzar el Dragon Rider 500 amb el vostre drac AVR: 10 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:16
Aquest instructiu és un curs ràpid sobre com utilitzar algunes de les funcions del Dragon Rider 500 d’Ecros Technologies. Tingueu en compte que hi ha una guia de l’usuari molt detallada disponible al lloc web d’Ecros.
El Dragon Rider és una placa d’interfície que s’utilitza amb un programador de microcontroladors AVR anomenat AVR Dragon per Atmel. Per obtenir més informació: Atmel's Wesite: https://www.atmel.com/ Enllaç AVR Dragon: https://www.atmel.com/dyn/products/tools_card.asp? Tool_id = 3891 Dragon Rider 500 by Ecros Technology: https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm Muntatge de Dragon Rider 500 Instructible: https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A / Obteniu més informació sobre els microcontroladors AVR: https://www.avrfreaks.net Aquesta instrucció pot créixer amb el temps, així que reviseu-la de tant en tant.
Pas 1: AVR Home
Necessiteu un programari de programació per utilitzar AVR Dragon per a la programació. Faig servir AVRdude amb el sistema operatiu Ubuntu (Linux) i estic molt content dels resultats, que no s’ocuparan de les complexitats del programari de programació. Si no sabeu com configurar o utilitzar el programari de programació, consulteu aquesta instrucció per posar-vos al dia: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-dragon / La meva suposició és que si heu comprat i muntat un Dragon Rider 500 ja sabeu com programar un xip amb l'AVR Dragon ….. endavant!
Pas 2: ATtiny2313: parpelleja els LED
Programem un ATtiny2313 que és un microcontrolador de 20 pins. El Dragon Rider 500 té preses de corrent per a diversos microcontroladors AVR de diferents mides. Aquests inclouen: endolls de 8, 20, 28 i 40 pins. Depenent del sòcol que utilitzeu, els ponts del tauler Dragon Rider s'han de configurar de manera diferent.
Configuració del pont
Poseu els ponts al Dragon Rider de manera que les derivacions connectin els següents pins. (pin4 és el pin central per a J22-J-24) Pins: J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41 Aquesta és una configuració bàsica que permet ISP (en programació del sistema).
Blinky Blinky
La programació no serveix de res tret que tingueu alguna cosa per programar. He escrit un exemple de codi molt breu per parpellejar el LED del Dragon Rider un a la vegada. Utilitzeu un cable de cinta per connectar la capçalera LED (J29) a la capçalera PortB (J2).
Programació
He inclòs el fitxer C, així com un fitxer makefile i el fitxer hexadecimal. Tal com he esmentat a la introducció, no puc cobrir la part del programari de la programació a l’Instruible. Programa com ho faries per a l'AVR Dragon, ja que Dragon Rider no altera en absolut el costat del programari.
Pas 3: fer servir el complement LCD
Aquí teniu una manera senzilla d’utilitzar el complement LCD. Això escriurà "Dragon Rider" a la pantalla LCD.
Maquinari:
- ATtiny2313
- Jumper R / W: R / W s'hauria de connectar a "BIT1" a la placa Dragon Rider (vegeu l'explicació a l'assemblea instructiva)
- J23: Aquest jumper s'ha d'instal·lar per a la programació de l'ISP, però després s'ha d'eliminar perquè el LCD funcioni correctament.
- Connecteu la pantalla LCD al PORT B mitjançant un cable de cinta (J31 a J2)
Programari
Estic utilitzant la biblioteca LCD de Peter Fleury per conduir la pantalla LCD en mode de 4 bits. Mireu Peter's Homepage per descarregar la biblioteca. Haureu d'assegurar-vos que lcd.c es compila amb el vostre codi i que feu els canvis següents a lcd.h:
Estem utilitzant l’oscil·lador RC intern, de manera que cal configurar XTAL per a 1 MHz:
#define XTAL 1000000
#define LCD_PORT PORTB
#define LCD_DATA0_PIN 4 #define LCD_DATA1_PIN 5 #define LCD_DATA2_PIN 6 #define LCD_DATA3_PIN 7
#define LCD_RS_PIN 3 #define LCD_RW_PIN 1 #define LCD_E_PIN 2
El programa principal és molt senzill gràcies al treball que Peter Fleury va fer a la seva biblioteca LCD.
#include #include "lcd.h" int main (void) {lcd_init (LCD_DISP_ON); // Inicialitzar LCD amb el cursor desactivat lcd_clrscr (); // Esborreu la pantalla LCD lcd_gotoxy (5, 0); // Mou el cursor a aquesta ubicació lcd_puts ("Drac"); // Poseu aquesta cadena a la pantalla LCD lcd_gotoxy (6, 1); // Mou el cursor a aquesta ubicació lcd_puts ("Rider"); // Poseu aquesta cadena a la pantalla LCD per (;;) {// No feu res per sempre (el missatge ja es mostra a la pantalla LCD)}}
Codi adjunt
El codi adjunt inclou la biblioteca LCD de Peter Fleury (lcd.c i lcd.h) amb el seu permís. Gràcies Peter! L'única modificació que hi he fet és establir els pins adequats a les definicions. Visiteu el seu lloc per descarregar el paquet: https://www.jump.to/fleury També he inclòs un fitxer de make que faig servir escrit per Eric B. Weddington i Jorg Wunsch. Vaig enviar un PM a Jorg a avrfreaks.net, però mai no vaig rebre resposta d'ell. Hi ha alguns canvis al makefile per adaptar-lo a l’ús de Linux i el Dragon. Gràcies a tots dos, si us plau, indiqueu-me les vostres preferències per compartir el vostre treball.
Pas 4: Programació ISP de 28 pins UC (ATmega8)
La següent demostració del projecte utilitzarà un ATmega8 que és un avr de 28 pins. Aquí teniu el conjunt bàsic de ponts per a la ISP que programa els microcontroladors de 28 pins.
Configuració del pont
Poseu els ponts al Dragon Rider de manera que les derivacions connectin els següents pins. (pin4 és el pin central de J22-J-24) Pins: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42
Informació tècnica
- Connectar J11 i J12 d'aquesta manera us permet utilitzar aquests pins com a pins d'E / S. L’alternativa seria encaminar aquests pins per establir una connexió amb el cristall extern.
- Connectar J13 d’aquesta manera ens permet utilitzar-lo com a pin de restabliment. L’alternativa enrutaria aquest pin a la capçalera PORTC per utilitzar-lo com a pin d'E / S. (això tindria molts inconvenients, inclosa la impossibilitat de programar aquest xip mitjançant ISP).
- J16 i J22-J24 es connecten d'aquesta manera per encaminar els pins adequats (Reset, MISO, MOSI i SCK) a la capçalera ISP de l'AVR Dragon.
Pas 5: Ús avançat de LCD i botons: el rellotge gran
Aquest és un divertit projecte que fa ús de la pantalla i els botons LCD. Tractarem funcions de rellotge en temps real i caràcters personalitzats a la pantalla LCD. A la imatge de la part inferior es pot veure l’hora de les 19:26:07 que es mostra en gran nombre a la pantalla LCD. Cada número utilitza una quadrícula de 2x2 dels caràcters que es mostren per mostrar el nombre gran. S'utilitza un tipus de lletra escrit originalment per Xtinus per al projecte XBMC. Els botons s’utilitzen per configurar el rellotge. Esquerra augmenta les hores, Puja augmenta els minuts, La dreta commuta entre les 12 i les 24 hores i Retorn restableix els segons a zero. El rellotge no manté molt bon temps, ja que estem utilitzant un oscil·lador intern molt imprecís, però aquest programa es pot modificar fàcilment per utilitzar un cristall extern molt més precís. Vegeu-ho en acció al vídeo següent. Hi ha una explicació de com funciona aquest codi, però no tinc temps ara mateix. De moment, connecteu la capçalera LCD (J31) a PORTD (J4) i la capçalera del botó (J30) a PORTB (J2). Assegureu-vos que teniu SW1 i SW2 a la posició apagada. Connecteu l'AVR Dragon a un cable USB i connecteu l'altre extrem d'aquest cable a l'ordinador. Activeu SW2 i programeu l'ATmega8 amb el programari que desitgeu (fitxer hexadecimal a sota; fusibles gravats a la configuració de fàbrica). això mentre el poder està apagat.
Pas 6: programació d’alta tensió
He utilitzat la programació paral·lela d’alta tensió per ressuscitar un ATtiny2313 on he configurat els fusibles incorrectes. Ho necessitava una segona vegada quan treballava en aquest instructable perquè accidentalment vaig escriure el paràmetre lfuse que volia al registre hfuse ….. oops. La programació en paral·lel d’alta tensió és una eina molt útil per tenir a la vostra disposició. A continuació es mostren una llista de la configuració dels meus ponts: USEU AL VOSTRE RISC, AQUEST TIPUS DE PROGRAMACIÓ POT DANYAR EL vostre HARDWARE SI NO SABEU EL QUE FEREU. Programació paral·lela d’alta tensió: ATtiny2313 al sòcol U3: SW1 - OFFSW2 - ONJ5, J6, J7 - connectar pin1 i pin2XTAL1 - connectar pin1 i pin2J16 - Connectar pin1 i pin22x5 Cables IDC: PROG_CTRL a PORT D, PROG_DATA a PORT BAll altres ponts desconnectats J8-J13, J18, J19, J20, J22-J28, J24) Per a altres xips, hauríeu de ser capaços d’esbrinar la configuració que necessiteu a la guia d’usuari d’Atmel per al seu STK500.
Pas 7: Expandir-se més enllà del Consell
Em resulta molt fàcil connectar-me amb una taula de treball. Això permet una major flexibilitat en la creació de prototips i desenvolupament de codi al mateix temps. A continuació, veureu un parell de taules de connexió connectades al Dragon Rider. Connecto els cables de cinta als ports adequats en un extrem. A l’altre, faig servir cables de pont per connectar el conductor ICD adequat amb les taules de suport.
Pas 8: Conclusió
Hi ha molt més que podria implicar-se en aquest instructiu. Només aquesta nit completo un adaptador que us permet utilitzar la capçalera de programació de 6 pins sense treure el drac del Dragon Rider. Posaré informació sobre com construir-ne un de prop … en breu. Si teniu altres coses que creieu que cal afegir, deixeu un comentari.
Pas 9: afegir un ISP de 6 pins
Normalment construeixo una capçalera d’ISP de 6 pins a tots els meus projectes per poder reprogramar el xip si cal i no haver de treure’l del tauler de projectes. El pilot de dracs, malauradament, no disposa d’una capçalera d’ISP de 6 pins, però vaig descobrir com fer-ne una disponible.
Atenció !
Es tracta d’un hack. Si no sabeu exactament com funciona això, no ho feu
He estat avisat: he creat la meva pròpia placa adaptadora i un pont de 3 pins per subministrar la capçalera isp de 6 pins. El que feu és configurar el programa Dragon Rider i el microcontrolador de 8 pins. Amb un sòcol de 3 pins, estic saltant J8 per connectar els pins 1 i 3. Això encamina el senyal del rellotge al connector PortB. Llavors executo un cable de pont des de la capçalera PortB fins a la meva placa adaptadora i voilà! Hi ha imatges a continuació … si us plau, si us plau, si us plau, no ho feu tret que entengueu realment el que feu, ja que podríeu danyar el vostre drac AVR o pitjor si ho feu malament.
Pinout: PortB ISP1 42 13 34 NC5 NC6 57 NC8 NC9 610 2
Pas 10: Lector de RSS mitjançant connexió en sèrie i pantalla LCD
Continuo jugant amb aquest tauler de desenvolupament. Aquesta vegada vaig passar una part de la tarda desenvolupant una lectura de RSS (sobretot en el pitó de les coses). No crec que garanteixi la seva pròpia instrucció, així que l’afegeixo aquí.
Maquinari
Estem utilitzant el Dragon Rider 500 com a tauler de desenvolupament. Això proporciona tot el maquinari que necessiteu (suposant que teniu tots els kits de complement). Dit això, segur que ho podeu fer amb la vostra pròpia configuració de maquinari:
- Microcontrolador ATmega8 (o qualsevol que tingui un USART i prou pins per a totes les connexions
- Una manera de programar el microcontrolador (faig servir el drac AVR)
- Xip MAX232 per a les comunicacions en sèrie
- Connector DB9
- Pantalla LCD HD44780
- Cristall (he utilitzat un cristall de 8 MHz)
- Condensadors i resistències variats
A continuació es proporciona un esquema: al Dragon Rider haurem d’utilitzar una mica de creativitat per encaminar les connexions. Normalment, el port D es podria connectar directament a la capçalera LCD. Aquest no és el cas aquí perquè l'USART necessari per a la connexió sèrie utilitza PD0 i PD1. A més, el port B no es pot utilitzar perquè s’utilitzen PB6 i PB7 per al cristall extern. La imatge que es mostra a continuació és la meva solució a aquest problema. Connecto un cable de cinta a les capçaleres de la pantalla LCD, el port B i el port D i, a continuació, faig servir cables de pont per fer les rutes adequades. No oblideu connectar el voltatge i la terra a la capçalera LCD.
Programari
El programari d’aquest projecte es divideix en dues parts, el firmware per al microcontrolador i l’escriptura python per rascar els canals RSS i enviar-los per la connexió en sèrie. / fleury). És potent i concís, versàtil i fàcil de modificar per a la configuració del maquinari. Si mireu el fitxer de capçalera adjunt (lcd.h), veureu que estic funcionant en mode de 4 bits amb el port D com a bits de dades i el port B com a bits de control. El concepte d’aquest firmware és bastant senzill.:
- Un cop engegat, el microcontrolador mostra "RSS Reader" i, a continuació, espera les dades de sèrie.
- Cada byte de dades de sèrie rebudes fa que un buffer de 16 caràcters es desplaci cap a l'esquerra i afegeixi el byte al buffer i, a continuació, mostri el buffer.
- El microcontrolador accepta tres ordres especials: 0x00, 0x01 i 0x02. Es tracta d'una pantalla neta, es mou a la línia 0 i es mou a la línia 1, respectivament.
Python ScryptI va escriure un script pyton per rascar les dades RSS i enviar-les per la connexió sèrie. Això requereix el mòdul python "pyserial" que probablement haureu d'instal·lar al vostre sistema perquè això funcioni. El canal RSS es pot configurar a la part superior del fitxer pyton. Tingueu en compte que heu d'introduir un nom per al feed i també per a l'URL del feed. Hi ha tres exemples, estic segur que podeu seguir-ne la sintaxi adequada. Feu que tot funcioni
- Muntar el maquinari
- Programa el microcontrolador (es pot utilitzar dragon_rss.hex si no vols compilar-ho tu mateix). Configuració de fusibles per a ATmega8 mitjançant un cristall de 8 MHz: lfuse = 0xEF hfuse = 0xD9
- Enceneu el Dragon Rider i assegureu-vos que el cable sèrie està endollat (la pantalla LCD hauria de llegir: "Lector RSS")
- Executeu el programa python (python serial_rss.py)
- Gaudeix
Recomanat:
Joguines adaptables a l'interruptor: un drac caminant que respira l'aigua i accessible: 7 passos (amb imatges)
Joguines adaptables a l’interruptor: drac passejant que respira l’aigua: l’adaptació de les joguines obre noves vies i solucions personalitzades per permetre als nens amb capacitats motores limitades o discapacitats del desenvolupament interactuar amb les joguines de forma independent. En molts casos, els nens que necessiten les joguines adaptades no poden
Controleu el disseny del vostre model de tren amb el vostre telèfon mòbil: 11 passos (amb imatges)
Controleu la disposició del vostre model de tren amb el vostre telèfon mòbil!: Controlar un disseny de model de tren amb controladors d’accelerador i de sortida de cable pot ser un bon començament per a principiants, però suposa un problema de no portabilitat. A més, els controladors sense fils que arriben al mercat només poden controlar alguns locom
Rellotge de lluna amb drac: 8 passos (amb imatges)
Moon Clock With Dragon: *** L'entrada al meu blog https://blog.familie-fratila.de/bone-dragon-moonlight-clock/ *** Fa un temps vaig construir un rellotge per a la meva sala d'estar, ja que No he trobat res a comprar que tingués dissenys almenys tolerables :-) Per descomptat, el meu fill, que veia això, tenia una necessitat
Controleu el vostre avió RC amb l’acleròmetre del vostre telèfon: 15 passos (amb imatges)
Controleu el vostre avió RC amb l’acleròmetre del vostre telèfon: alguna vegada heu volgut controlar el vostre avió RC mitjançant la inclinació d’un objecte? Sempre he tingut la idea a la part posterior del cap, però mai l’he seguit fins aquesta setmana passada. Els meus primers pensaments eren utilitzar un acceleròmetre de triple eix, però ja he
Drac Sine-ese: 10 passos (amb imatges)
Sine-ese Dragon: Sine-ese Dragon és una peça de decoració per a la llar ambiental que utilitza moviments mecànics i llums per indicar-vos la previsió meteorològica per als propers tres intervals de tres hores. Per definició, ambient descriu l'entorn immediat d'alguna cosa; per tant