Stap 4: Maak een makefile
Veronderstellend hebt u reeds een Arduino schets die u wenst te programmeren in het apparaat, ga naar de map van de schets. In mijn geval, is het project met de naam RGBShades:
cd ~/sketchbook/RGBShades
Een makefile te maken:
gedit Makefile
De inhoud van de makefile hangt af van de exacte specificaties van uw processor, wat bootloader die u wilt installeren, enz. Als uw hardware functioneel identiek aan een bestaande compatibel is met Arduino board is, kan het echter eenvoudig:
BOARD_TAG = pro5v328ARDUINO_PORT = /dev/ttyUSB*ISP_PROG = avrispmkIIISP_PORT = usbinclude /usr/share/arduino/Arduino.mk
In het bovenstaande geval is de BOARD_TAG die geselecteerd van de default definitie van de boards.txt in de Arduino software. Het komt overeen met de Arduino Pro Mini met ATmega328 op 5V en 16MHz. De ARDUINO_PORT zullen meestal/dev/ttyUSB0 als uw apparaat de enige is USB-serieel apparaat aangesloten op dit moment, maar het jokerteken sterretje kunt u andere poort nummers omdat soms het verschijnt als een ander nummer. Als er andere USB-seriële apparaten moet u zal kijken wat poorten worden al gebruikt, en kies de manier die wordt weergegeven wanneer uw apparaat-te-worden-geprogrammeerd is aangesloten.
De Makefile hieronder is wat we eigenlijk gebruiken voor het RGBShades-project:
ARDUINO_QUIET = 1BOARDS_TXT = ~/sketchbook/hardware/RGBShades/boards.txt BOARD_TAG = RGBShades ARDUINO_PORT = /dev/ttyUSB* AVRDUDE_OPTS = -q ISP_PROG = avrispmkii ISP_PORT = usb include /usr/share/arduino/Arduino.mk
De BOARDS_TXT verwijst naar een gebruikersspecifieke bestand dat sommige alternatieve parameters en bootloader opties selecteert. De alternatieve boards.txt-bestand bevat de RGBShades van de BOARD_TAG. Een paar andere opties worden toegevoegd aan het verminderen van de hoeveelheid tekst scrollen door tijdens het programmeren van apparaten. Tamelijk groot: de standaard AVRDUDE_OPTS zal het uitschakelen van verificatie (met de optie -V), dus het is een goed idee om het AVRDUDE_OPTS zelf instellen. Dit zal ervoor zorgen oplezen van de geüploade programma en ervoor te zorgen dat uw apparaat met succes werd geprogrammeerd. In de praktijk zagen we een mislukte programma eens elke 50-100 pogingen, dus verificatie altijd een goede garantie is.
Het RGBShades board.txt bestand is hieronder opgenomen voor de volledigheid:
##############################################################RGBShades.name=RGB ShadesRGBShades.upload.protocol=arduinoRGBShades.upload.maximum_size=32256RGBShades.upload.speed=115200RGBShades.bootloader.low_fuses=0xFFRGBShades.bootloader.high_fuses=0xDERGBShades.bootloader.extended_fuses=0x05RGBShades.bootloader.unlock_bits=0x3FRGBShades.bootloader.lock_bits=0x0FRGBShades.bootloader.path=optibootRGBShades.bootloader.file=optiboot_atmega328.hexRGBShades.build.mcu=atmega328pRGBShades.build.f_cpu=16000000LRGBShades.build.core=arduinoRGBShades.build.variant=eightanaloginputs##############################################################
Aangezien de RGBShades-code ook een externe bibliotheek (FastLED vereist) werd dit zoals gewoonlijk geïnstalleerd in de map ~/sketchbook/libraries/.
Vervolgens maken we een script automatiseren van het programmeringsproces.