Inhoudsopgave:
- Stap 1: AVR Kerel
- Stap 2: ATtiny2313 - Knipper de LED's
- Stap 3: De LCD-add-on gebruiken
- Hardware:
- Software
- Code bijgevoegd
- Stap 4: 28-pins UC ISP-programmering (ATmega8)
- Stap 5: Geavanceerd LCD- en knopgebruik: de grote klok
- Stap 6: Hoogspanningsprogrammering
- Stap 7: uitbreiden buiten het bord
- Stap 8: Conclusie
- Stap 9: Een 6-pins ISP toevoegen
- Dit is een hack. Als je niet precies weet hoe dit werkt, doe het dan niet
- Stap 10: RSS-lezer met seriële verbinding en LCD
- Hardware
- Software
Video: De Dragon Rider 500 gebruiken met uw AVR Dragon: 10 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
Dit instructable is een spoedcursus in het gebruik van enkele van de functies van de Dragon Rider 500 van Ecros Technologies. Houd er rekening mee dat er een zeer gedetailleerde gebruikershandleiding beschikbaar is op de Ecros-website.
De Dragon Rider is een interfacekaart voor gebruik met een AVR-microcontrollerprogrammeur, de AVR Dragon van Atmel. Voor meer informatie: Atmel's Wesite:https://www.atmel.com/ AVR Dragon-link:https://www.atmel.com/dyn/products/tools_card.asp?tool_id=3891 Dragon Rider 500 door Ecros Technology:https://www.ecrostech.com/AtmelAvr/DragonRider/index.htm Dragon Rider 500 montage Instructable:https://www.instructables.com/id/Assembling-the-Dragon-Rider-500-for-use-with- the-A/ Leer alles over de AVR-microcontrollers: https://www.avrfreaks.net Deze instructable kan met de tijd groeien, dus kom zo nu en dan terug!
Stap 1: AVR Kerel
U heeft programmeersoftware nodig om de AVR Dragon te gebruiken voor het programmeren. Ik gebruik AVRdude met het Ubuntu-besturingssysteem (linux) en ik ben erg blij met de resultaten. Deze instructable gaat niet in op de fijne kneepjes van programmeersoftware. Als je niet weet hoe je programmeersoftware moet instellen of gebruiken, bekijk dan deze instructable om je op de hoogte te houden: https://www.instructables.com/id/Getting-started-with-ubuntu-and-the- AVR-dragon/Mijn gok is dat als je een Dragon Rider 500 hebt gekocht en in elkaar hebt gezet, je al weet hoe je een chip moet programmeren met de AVR Dragon… en verder!
Stap 2: ATtiny2313 - Knipper de LED's
Laten we een ATtiny2313 programmeren, een 20-pins microcontroller. De Dragon Rider 500 heeft aansluitingen voor verschillende AVR-microcontrollers van verschillende grootte. Deze omvatten: 8, 20, 28 en 40 pins sockets. Afhankelijk van welke socket je gebruikt, moeten jumpers op het Dragon Rider-bord anders worden ingesteld.
Jumper-instellingen
Stel de jumpers op de Dragon Rider zo in dat de shunts de volgende pinnen verbinden. (pin4 is de middelste pin voor J22-J-24) Pinnen:J5 - 23J6 - 23J7 - 12J16 - 23J22 - 41J23 - 41J24 - 41Dit is een basisconfiguratie die ISP (In System Programming) mogelijk maakt.
Blinky Blinky
Programmeren heeft geen zin, tenzij je iets te programmeren hebt. Ik heb een heel kort codevoorbeeld geschreven om de LED's van de Dragon Rider één voor één te laten knipperen. Gebruik een lintkabel om de LED-header (J29) aan te sluiten op de PortB-header (J2).
Programmeren
Ik heb het C-bestand toegevoegd, evenals een makefile en het hex-bestand. Zoals ik in de intro al zei, kan ik de softwarekant van programmeren in de Instructable niet behandelen. Programmeer zoals je zou doen voor de AVR Dragon, aangezien de Dragon Rider de softwarekant helemaal niet verandert.
Stap 3: De LCD-add-on gebruiken
Hier is een eenvoudige manier om de LCD-add-on te gebruiken. Dit zal "Dragon Rider" naar het LCD-scherm schrijven.
Hardware:
- ATtiny2313
- R/W Jumper: R/W moet worden aangesloten op "BIT1" op het Dragon Rider Board (zie uitleg in de montage Instructable)
- J23: Deze jumper moet worden geïnstalleerd voor ISP-programmering, maar vervolgens worden verwijderd om het LCD-scherm correct te laten functioneren.
- Sluit het LCD-scherm aan op POORT B met behulp van lintkabel (J31 tot J2)
Software
Ik gebruik de LCD-bibliotheek van Peter Fleury om het LCD-scherm in 4-bits modus aan te sturen. Bekijk Peter's Homepage om de bibliotheek te downloaden. U moet ervoor zorgen dat lcd.c is gecompileerd met uw code en dat u de volgende wijzigingen aanbrengt in lcd.h:
We gebruiken de interne RC-oscillator, dus XTAL moet worden ingesteld op 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
Het hoofdprogramma is heel eenvoudig dankzij het werk dat Peter Fleury deed in zijn LCD-bibliotheek. CODE:
#include #include "lcd.h"int main(void){ lcd_init(LCD_DISP_ON); // Initialiseer LCD met de cursor uit lcd_clrscr(); // Wis het LCD-scherm lcd_gotoxy (5, 0); // Verplaats de cursor naar deze locatie lcd_puts ("Dragon"); //Plaats deze string op het LCD lcd_gotoxy(6, 1); // Verplaats de cursor naar deze locatie lcd_puts ("Rider"); // Zet deze string op het LCD-scherm voor (;;) {// Doe niets voor altijd (Bericht wordt al weergegeven op LCD)}}
Code bijgevoegd
De bijgevoegde code bevat met zijn toestemming de LCD-bibliotheek van Peter Fleury (lcd.c en lcd.h). Bedankt Pieter! De enige wijziging die ik eraan heb aangebracht, is om de juiste pinnen in de Defines in te stellen. Bezoek zijn site om het pakket te downloaden: https://www.jump.to/fleury. Ik heb ook een makefile toegevoegd die ik gebruik, geschreven door Eric B. Weddington en Jorg Wunsch. Ik heb Jorg een PB gestuurd op avrfreaks.net maar heb nooit een reactie van hem ontvangen. Er zijn een paar wijzigingen in de makefile om aan te passen aan het gebruik van Linux en de Dragon. Bedankt aan jullie beiden, stel me alsjeblieft je voorkeuren in voor het delen van je werk.
Stap 4: 28-pins UC ISP-programmering (ATmega8)
De volgende projectdemonstratie zal gebruik maken van een ATmega8, een 28-pins avr. Hier is de basisjumperset voor ISP-programmering van de 28-pins microcontrollers.
Jumper-instellingen
Stel de jumpers op de Dragon Rider zo in dat de shunts de volgende pinnen verbinden. (pin4 is de middelste pin voor J22-J-24) Pinnen: J11 - 23J12 - 23J13 - 12J16 - 23J22 - 42J23 - 42J24 - 42
Technische informatie
- Door J11 en J12 op deze manier aan te sluiten, kunt u die pinnen gebruiken als I/O-pinnen. Het alternatief zou zijn om deze pinnen te routeren om een verbinding te maken met het externe kristal.
- Door J13 op deze manier aan te sluiten, kunnen we hem gebruiken als reset-pin. Het alternatief zou deze pin naar de PORTC-header leiden voor gebruik als I/O-pin. (dit zou veel nadelen hebben, waaronder het onvermogen om deze chip te programmeren met ISP).
- J16 & J22-J24 zijn op deze manier aangesloten om de juiste pinnen (Reset, MISO, MOSI en SCK) naar de ISP-header van de AVR Dragon te leiden.
Stap 5: Geavanceerd LCD- en knopgebruik: de grote klok
Dit is een leuk project dat gebruik maakt van het LCD-scherm en de knoppen. We zullen te maken hebben met Real Time Clock-functies en aangepaste tekens op het LCD-scherm. In de afbeelding onderaan zie je de tijd 19:26:07 uur in grote cijfers op het LCD-scherm. Elk nummer gebruikt een 2x2 raster van de tekens die worden weergegeven om het grote nummer weer te geven. Dit maakt gebruik van een lettertype dat oorspronkelijk door Xtinus is geschreven voor het XBMC-project. De knoppen worden gebruikt om de klok in te stellen. Links verhoogt de uren, Omhoog verhoogt de minuten, Rechts schakelt tussen 12 en 24-uurs tijd, en Enter zet de seconden terug op nul. De klok houdt de tijd niet goed bij omdat we de zeer onnauwkeurige interne oscillator gebruiken, maar dit programma kan eenvoudig worden gewijzigd om een veel nauwkeuriger extern kristal te gebruiken. Zie dit in actie in de onderstaande video. Een uitleg hoe deze code werkt is op zijn plaats, maar daar heb ik nu even geen tijd voor. Sluit voorlopig de LCD-header (J31) aan op PORTD (J4) en de knopheader (J30) op PORTB (J2). Zorg ervoor dat zowel SW1 als SW2 in de uit-stand staan. Sluit de AVR Dragon aan op een usb-kabel en steek het andere uiteinde van die kabel in je computer. Schakel SW2 in en programmeer de ATmega8 met de programmeersoftware van uw keuze (hex-bestand hieronder; zekeringen verbrand naar fabrieksinstellingen). OPMERKING: Om de knoppen Links en Omhoog te gebruiken, moet u de shunts van J22 en J24 verwijderen, dit terwijl de stroom is uitgeschakeld.
Stap 6: Hoogspanningsprogrammering
Ik heb de parallelle hoogspanningsprogrammering gebruikt om een ATtiny2313 weer tot leven te wekken waarop ik de verkeerde zekeringinstellingen had ingesteld. Ik had het een tweede keer nodig toen ik aan deze instructable werkte, omdat ik per ongeluk de lfuse-instelling die ik wilde naar het hfuse-register schreef … oeps. Parallel programmeren met hoogspanning is een handig hulpmiddel om tot uw beschikking te hebben! Hieronder vindt u een lijst met mijn jumperinstellingen: GEBRUIK OP EIGEN RISICO, DIT TYPE PROGRAMMERING KAN UW HARDWARE BESCHADIGEN ALS U NIET WEET WAT U DOET!! Parallelle hoogspanningsprogrammering: ATtiny2313 in socket U3:SW1 - OFFSW2 - ONJ5, J6, J7 - sluit pin1 en pin2XTAL1 aan - sluit pin1 en pin2J16 aan - Sluit pin1 en pin22x5 aan IDC-kabels: PROG_CTRL op PORT D, PROG_DATA op PORT BA Alle andere jumpers niet aangesloten (J8-J13, J18, J19, J20, J22-J28, J24) Voor andere chips zou je de instellingen moeten kunnen vinden die je nodig hebt in Atmel's gebruikershandleiding voor hun STK500.
Stap 7: uitbreiden buiten het bord
Ik vind het vrij eenvoudig om te communiceren met een breadboard. Dit zorgt voor veel meer flexibiliteit in prototyping en het ontwikkelen van code tegelijkertijd. Hieronder zie je een aantal breadboards die zijn verbonden met de Dragon Rider. Ik sluit de lintkabels aan de ene kant aan op de juiste poorten. Aan de andere kant gebruik ik jumperdraden om de juiste ICD-geleider met de breadboards te verbinden.
Stap 8: Conclusie
Er is veel meer dat betrokken zou kunnen zijn bij deze Instructable. Vanavond heb ik een adapter voltooid waarmee je de 6-pins programmeerkop kunt gebruiken zonder de draak van de Drakenrijder te verwijderen. Ik zal binnenkort informatie geven over hoe je er zelf een kunt bouwen. Als je andere dingen hebt waarvan je denkt dat ze moeten worden toegevoegd, laat dan een reactie achter.
Stap 9: Een 6-pins ISP toevoegen
Ik bouw meestal een 6-pins ISP-header in voor al mijn projecten, zodat ik de chip indien nodig kan herprogrammeren en niet van het projectbord hoef te halen. De drakenrijder heeft helaas geen 6-pins ISP-header beschikbaar, maar ik heb ontdekt hoe ik er een beschikbaar kan maken.
Waarschuwing!
Dit is een hack. Als je niet precies weet hoe dit werkt, doe het dan niet
U bent gewaarschuwd. Ik heb mijn eigen adapterkaart en 3-pins jumper gemaakt om de 6-pins isp-header te leveren. Wat je doet is de Dragon Rider instellen om te programmeren en een 8-pins microcontroller. Met behulp van een 3-pins aansluiting overbrug ik J8 om pinnen 1 en 3 aan te sluiten. Dit leidt het kloksignaal naar de PortB-connector. Ik leid dan een startkabel van de PortB-header naar mijn adapterkaart en voila! Er zijn foto's hieronder …. alsjeblieft, alsjeblieft, alsjeblieft, doe dit niet tenzij je echt begrijpt wat je doet, omdat je je AVR Dragon zou kunnen beschadigen of erger als je dit verkeerd doet.
Pinout: PortB ISP1 42 13 34 NC5 NC6 57 NC8 NC9 610 2
Stap 10: RSS-lezer met seriële verbinding en LCD
Ik blijf spelen met dit ontwikkelbord. Deze keer heb ik een deel van een middag besteed aan het ontwikkelen van een RSS-readion (meestal aan de python-kant van de dingen). Ik denk niet dat het zijn eigen instructable rechtvaardigt, dus ik voeg het hier toe.
Hardware
We gebruiken de Dragon Rider 500 als ontwikkelbord. Dit biedt alle hardware die u nodig hebt (ervan uitgaande dat u alle uitbreidingskits hebt). Dat gezegd hebbende, kunt u dit zeker doen met uw eigen hardware-installatie:
- ATmega8-microcontroller (of een andere met een USART en voldoende pinnen voor alle verbindingen)
- Een manier om de microcontroller te programmeren (ik gebruik de AVR Dragon)
- MAX232-chip voor de seriële communicatie
- DB9-connector
- HD44780 LCD-scherm
- Kristal (ik gebruikte een 8MHz kristal)
- Diverse condensatoren en weerstanden
Hieronder vindt u een schema. Op de Dragon Rider zullen we wat creativiteit moeten gebruiken om de verbindingen te routeren. Normaal gesproken zou poort D rechtstreeks op de LCD-header kunnen worden aangesloten. Dit is hier niet het geval omdat de voor de seriële verbinding benodigde USART PD0 en PD1 gebruikt. Verder kan poort B niet worden gebruikt omdat PB6 en PB7 in gebruik zijn voor het externe kristal. Hieronder ziet u mijn oplossing voor dit probleem. Ik sluit een lintkabel aan op de headers voor het LCD-scherm, poort B en poort D, en gebruik dan jumperdraden om de juiste routes te maken. Vergeet niet om spanning en aarde aan te sluiten op de LCD-header.
Software
De software voor dit project bestaat uit twee delen, de firmware voor de microcontroller en het python-script voor het schrapen van de RSS-feeds en het verzenden ervan via de seriële verbinding. AVR-firmware Ik gebruik de LCD-bibliotheek van Peter Fleury opnieuw (https://jump.to /fleurig). Het is krachtig en beknopt, veelzijdig en gemakkelijk aan te passen voor uw hardwareconfiguratie. Als u naar het bijgevoegde headerbestand (lcd.h) kijkt, ziet u dat ik in 4-bits modus gebruik met poort D als de databits en poort B als de besturingsbits. Het concept van deze firmware is vrij eenvoudig:
- Eenmaal ingeschakeld, geeft de microcontroller "RSS Reader" weer en wacht vervolgens op seriële gegevens.
- Elke ontvangen byte seriële data zorgt ervoor dat een buffer van 16 tekens naar links verschuift en de byte aan de buffer toevoegt, waarna de buffer wordt weergegeven.
- Drie speciale commando's worden door de microcontroller geaccepteerd: 0x00, 0x01 en 0x02. Dit zijn clear screen, ga respectievelijk naar regel 0 en ga naar regel 1.
Python ScryptI schreef een pyton-script om de RSS-gegevens te schrapen en via de seriële verbinding te verzenden. Dit vereist de python-module "pyserial" die u waarschijnlijk op uw systeem moet installeren om dit te laten werken. De RSS-feed kan bovenaan het pyton-bestand worden geconfigureerd. Merk op dat u zowel een naam voor de feed als de feed-url moet invoeren. Er zijn daar drie voorbeelden, ik weet zeker dat je die kunt volgen voor de juiste syntx. Alles laten werken
- Monteer de hardware
- Programmeer de microcontroller (dragon_rss.hex kan worden gebruikt als je deze niet zelf wilt compileren). Zekeringinstellingen voor ATmega8 met een 8 MHz-kristal: lfuse= 0xEF hfuse=0xD9
- Zet de Dragon Rider aan en zorg ervoor dat de seriële kabel is aangesloten (LCD moet lezen: "RSS Reader")
- Voer het python-programma uit (python serial_rss.py)
- Genieten van
Aanbevolen:
Hoe de GPIO-pinnen en Avrdude van een Raspberry Pi te gebruiken om DIMP 2 of DA PIMP te Bit-bang-programma te gebruiken 2: 9 stappen
Hoe de GPIO-pinnen van een Raspberry Pi en Avrdude te gebruiken voor Bit-bang-programma DIMP 2 of DA PIMP 2: Dit zijn stapsgewijze instructies voor het gebruik van een Raspberry Pi en het gratis open-source commando avrdude to bit-bang -programmeer een DIMP 2 of DA PIMP 2. Ik neem aan dat je bekend bent met je Raspberry Pi en de LINUX-opdrachtregel. Je hoeft niet
Infraroodsensor gebruiken met Arduino 8 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Infraroodsensor gebruiken met Arduino: wat is een infraroodsensor (ook bekend als IR-sensor? Een IR-sensor is een elektronisch instrument dat IR-signalen scant in specifieke frequentiebereiken die zijn gedefinieerd door normen en deze omzet in elektrische signalen op de uitgangspin (meestal signaalpin genoemd) . Het IR-signaal
Mac Terminal gebruiken en toetsfuncties gebruiken: 4 stappen
Mac Terminal gebruiken en toetsfuncties gebruiken: We laten u zien hoe u de MAC Terminal opent. We zullen u ook enkele functies binnen de Terminal laten zien, zoals ifconfig, mappen wijzigen, toegang tot bestanden en arp. Met Ifconfig kunt u uw IP-adres en uw MAC-advertentie controleren
Orange Pi gebruiken zonder monitor door SSH en VNC-server te gebruiken - Ajarnpa
Gebruik Orange Pi zonder monitor door SSH en VNC-server te gebruiken: Orange Pi is als een minicomputer. Het heeft alle basispoorten die een normale computer heeft.Zoals HDMIUSBEthernetIT heeft een aantal speciale speciale poorten ZoalsUSB OTGGPIO-headersSD-kaartsleufParallelle camerapoortAls u orange pi wilt bedienen, moet u o
Hoe de Wiimote als computermuis te gebruiken Kaarsen als sensor gebruiken!! - Ajarnpa
De Wiimote als computermuis gebruiken Kaarsen als sensor gebruiken!!: Deze gids laat je zien hoe je je Wii-afstandsbediening (Wiimote) op je pc aansluit en als muis gebruikt