Het installeren van een bootloader is de eerste stap om je Arduino-projecten tot leven te brengen. Dit is een stukje software waarmee je Arduino-schetsen gemakkelijk naar het bord kunt uploaden zonder dat je speciale programmeerapparatuur nodig hebt.
Hoewel dit misschien als raketwetenschap klinkt, is het eigenlijk eenvoudiger dan je misschien denkt, zelfs voor beginners. We laten u zien hoe u in een paar eenvoudige stappen eenvoudig een bootloader op uw Arduino-bord installeert (of opnieuw installeert).
Maar eerst, wat is precies een bootloader op het Arduino-bord?
Wat is een bootloader?
Een Arduino-bootloader is een klein programma dat wordt opgeslagen in het niet-vluchtige geheugen van het bord en dat wordt uitgevoerd telkens wanneer het bord wordt ingeschakeld, wordt geüpload met nieuwe code of wordt gereset. Telkens wanneer het bootloader-programma wordt uitgevoerd, initialiseert het de hardware van het bord en laadt vervolgens de hoofdschets of het programma dat is opgeslagen in het flashgeheugen van het bord.
Het is vermeldenswaard dat alle Arduino-borden worden geleverd met een vooraf geïnstalleerde bootloader van hun fabrikanten. Soms vind je boards met defecte bootloaders direct uit de doos. Dit gebeurt echter zelden.
Waarom een bootloader gebruiken?
Er zijn verschillende situaties waarin het gebruik van een Arduino-bootloader nuttig kan zijn. Als je bijvoorbeeld een beginner bent op het Arduino-platform, kan het gebruik van een bootloader het gemakkelijker en sneller maken om nieuwe programma's naar je board te uploaden. Dit komt omdat u geen externe programmeerapparatuur, zoals een programmer of een USB-naar-serieel-converter, hoeft te gebruiken om uw code te uploaden.
Als u aan een project werkt waarvoor frequente updates van de code nodig zijn, zult u het erg handig vinden. In dit geval kan het gebruik van een bootloader u tijd en moeite besparen, omdat u de nieuwe code eenvoudig naar het bord kunt uploaden zonder externe programmeerapparatuur te gebruiken.
Bovendien, als je werkt aan een project waarvoor de Arduino nodig is om in een specifieke staat te zijn wanneer het wordt ingeschakeld, zoals het uitvoeren van een bepaald programma, kan het gebruik van een bootloader nuttig zijn. Met de bootloader kunt u de initiële status van het bord zo instellen dat het automatisch het gewenste programma uitvoert wanneer het wordt ingeschakeld.
Ten slotte biedt het een manier om de Arduino te herstellen als de hoofdschets beschadigd raakt of anderszins niet werkt.
Waarom ontbreekt mijn bootloader?
Er kunnen vier mogelijke redenen zijn waarom je board een nieuwe bootloader nodig heeft:
- Geen vooraf geïnstalleerde bootloader: Het is vrij gebruikelijk om veel stand-alone projecten van de ATMEGA328P te hebben waarbij je je chip op een PCB soldeert en de chip laat bakken. Het is dus mogelijk dat u het bord hebt vervangen door een chip zonder voorafgaande installatie van de bootloader.
- Bootloader vervangen: Je had je bootloader kunnen vervangen door een aangepaste bootloader van een derde partij die beschadigd zou kunnen zijn.
- Beschadigde bootloader: Dit is het minst waarschijnlijke scenario. In sommige gevallen kan het Arduino-flashgeheugen echter beschadigd raken.
- Uitgebreid geheugen: Als je de volledige bootloader hebt vervangen (geflashed) door je applicatie om te genieten van de resterende 2K programmageheugen, ontbreekt je bootloader definitief.
Dit is wat u moet doen.
De Arduino Bootloader installeren/opnieuw installeren
Microcontrollers worden meestal geprogrammeerd voordat ze op een printplaat worden gesoldeerd. Dit wordt meestal gedaan met behulp van In-System Programming (ISP), zoals In-Circuit Serial Programming (ICSP), waarmee de microcontroller kan worden geprogrammeerd met behulp van een externe programmeur. Veel fabrikanten van microcontrollers, zoals Atmel en Microchip, bieden hiervoor een ISP-header op hun printplaten.
Een ander Arduino-bord gebruiken
Om de bootloader op een ATmega328-microcontroller te flashen, moet je de ICSP-header op het bord gebruiken voordat je de bootloader kunt installeren met het andere bord als een ISP-programmeur.
Start de Arduino IDE, navigeer naar ArduinoISP zoals hieronder weergegeven, en upload de voorbeeldcode naar het bord dat u als programmeur wilt gebruiken. (Volg de video-tutorial voor hardware-aansluiting).
De code moet er zo uitzien, zodat u weet dat u op de goede weg bent.
Van de Hulpmiddelen tabblad, ga naar Programmeur klik dan op Arduino als ISP zoals hieronder weergegeven.
Eindelijk van de Hulpmiddelen tabblad opnieuw, klik op Bootloader branden zoals getoond.
Zodra het proces is voltooid, is het doelbord nu klaar om te worden geprogrammeerd.
Een speciale programmeur gebruiken
Er zijn veel AVR-programmeerapparaten beschikbaar voor dit soort installatie. Een goede optie die u kunt proberen, is de AVR Pocket Programmer (alleen Windows) gebaseerd op die van Dick Streefland USBklein en Limor Fried's USBtinyISP. Het biedt een eenvoudigere manier om AVR-microcontrollers te programmeren, zoals die op Arduino-boards. Afgezien van het feit dat het wordt gevoed door een USB-verbinding, is het de beste optie omdat het zo is compatibel met verschillende programmeertalen en software, waardoor het een veelzijdige tool is voor iedereen Arduino-gebruiker.
Je kunt ook andere opties proberen, zoals de officiële Atmel-ICE-programmeur voor ARM-microcontrollers, vooral als je geen Windows gebruikt.
Sluit het Arduino-bord aan op de programmer en flash de bootloader. Raadpleeg deze video-tutorial hieronder.
Het proces moet eenvoudig zijn en niet langer dan 20 seconden duren.
Opmerking: Het doelbord moet correct worden ingeschakeld voordat u deze methode probeert. Anders kun je het niet flashen .hex bestand naar uw doel.
Voor ervaren gebruikers is er een complexere manier om de bootloader te installeren via de opdrachtregel. Het is niet nodig om naar deze fase te gaan, maar het geeft je de mogelijkheid om de code aan te passen of opnieuw te compileren om een meer op maat gemaakte ervaring te krijgen.
De eerste stap in het proces is het configureren van de fuse-bits, die deel uitmaken van de AVR-chip, en het regelen van instellingen zoals het gebruik van een extern kristal. Gebruik de volgende opdracht om uw zekeringbits in te stellen:
avrdude-B 19200 -Cusbtiny-Pm328p-v-e-Uontluchten:w:0x05:M-Uzeker:w:0xD6:M-Uzeker:w:0xFF:M
Nadat de fuse-bits zijn geconfigureerd, is de volgende stap het overbrengen van een gecompileerd .hex-bestand naar het doelbord en het instellen van de lock-bits. Hiermee kunt u het programma op het bord uitvoeren. Zorg ervoor dat u zich in dezelfde directory bevindt als de optiboot_atmega328.hex bestand voordat u deze opdracht intoetst:
avrdude-B 19200 -Cusbtiny-Pm328p-v-e-Uflash:w:hexbestandsnaam.hex-Uslot:w:0x0F:M
Opmerking: Deze commando's zijn voor de Arduino Uno. U moet de zekeringbits voor uw bord in de bord.txt bestand en pas de AVRDUDE's onderdeelnummerparameters ook voor hen om te werken.
Wat ga je hierna met Arduino doen?
De Arduino-bootloader maakt het zo gemakkelijk om te programmeren, zelfs voor beginners. Je kunt nu hopelijk je eigen aangepaste schetsen uploaden naar de Arduino en de bootloader herstellen voor toekomstige Arduino DIY-projecten.