Jeffrey Cross
Jeffrey Cross

Spelar med den Arduino-kompatibla Beagle Board Trainer

Beagle Board Trainer från Tin Can Tools är ett snyggt dotterbord för Beagle Board, som erbjuder nivåskiftare för de inbyggda utgångarna som GPIO, I2C och SPI. Detta gör att du kan prata med 3.3v och 5v enheter (Beagle Board arbetar med 1,8v signalering). Tin Can Tools skickade mig en Trainer-bräda för att ta en tur.

Min favorit del av Beagle Board Trainer är det inbyggda Arduino-kompatibla delsystemet. Den har en ATMega328 laddad upp med Arduino bootloader, alla vanliga Arduino-pinnar utsatta, och du kan prata med det över Beagle Boards andra serie UART (/ dev / ttyS1).

Inställning av tränare och Beagle Board Jag lödde några kvinnliga rubriker på tränaren så att jag kunde spänna ledningar och komponenter i och leka med dem, och jag monterade tränaren enligt instruktionerna i Embedded Linux Wiki. När jag hade anslutit Trainer och Beagle Board var jag redo att installera mitt kärna och rotfilsystem.

Även om jag använder en Mac för det dagliga arbetet, behåller jag en virtuell Linux-maskin som är praktisk för projekt vars anvisningar förutsätter (eller kräver) åtkomst till ett Linux-system. Jag använder VMware Fusion, men det borde fungera lika bra med Parallels eller den fria VirtualBox på Mac eller Windows. Det kan vara möjligt att göra detta utan en virtuell maskin, men det kräver att du formaterar ett SD-kort med ext2, vilket är knepigt på ett icke-Linux-system.

Jag följde instruktionerna för att skapa ett startbart SD-kort. För att ansluta mitt SD-kort till min Linux virtuella maskin avmonterade jag det i Mac OS X och gick tillbaka till VMware, där jag valde Virtual Machine → USB → Anslut Apple Internal Memory Card Reader. När jag gjorde det kunde jag komma åt mitt SD-kort från Linux som om det var anslutet till en riktig maskin.

Min Beagle Board skulle inte starta korrekt innan jag följde stegen från en annan uppsättning instruktioner om Konfigurera boot args. När jag gjorde det här fungerade allt OK.

Sänder Arduino Sketches till Beagle Board Nu när jag hade en fungerande Beagle Board ansluten till Trainer, jag var tvungen att räkna ut hur man laddar en Arduino skiss på den. Den knepiga delen var att räkna ut hur man genererar en. Hex-fil från Arduino. Arduino IDE genererar normalt detta när du laddar det till ditt Arduino-kort, men det lämnar inte .hex-filen runt.

Jag använde Martin Oldfields instruktioner och Makefile för att använda Arduino från kommandoraden. Jag öppnade Arduino Fade-exemplet i Arduino IDE (Fil → Exempel → 1.Basics → Fade) och sparade det till min Arduino-katalog. Eftersom GND-stiftet på tränaren är så långt från de Arduino-kompatibla stiften, lade jag till ett par linjer till Fade's setup () rutin, vilket gör stift 10 till en markpinne:

pinMode (10, OUTPUT); digitalWrite (10, LOW);

Därefter skapade jag en Makefile som såg ut så här och sätter den i sketch-katalogen (/ Users / bjepson / Documents / Arduino / Fade på min dator). Du kan behöva ändra inställningen för ARDUINO_DIR, och du måste ändra den sista raden som börjar med inkludera:

ARDUINO_DIR = /Applications/Arduino.app/Contents/Resources/Java TARGET = Fade MCU = atmega328p F_CPU = 16000000 ARDUINO_PORT = /dev/cu.usb* ARDUINO_LIBS = LiquidCrystal inkluderar /Users/bjepson/src/arduino-mk-0.4/Arduino .mk

Sedan gick jag in i terminalen, använde cd för att byta till skisskatalogen och skrivet göra. När jag var klar, fanns en fil som heter Fade.hex i underkatalogen build-cli. Jag drev ner Beagle Board, sätta SD-kortet tillbaka i min dator och kopierade Fade.hex till root filsystemet. Jag kopierade också avrgal binären, vilket är ett lättalternativ för avrdude. Jag demonterade SD-kortet, pluggade det tillbaka i Beagle Board, och drev Beagle Board igen. Efter det började jag loggat in som root, använde cd för att växla till katalogen där jag kopierade avrgal och Fade.hex, sedan körde det här kommandot när jag tryckte på återställningsknappen bredvid ATMega328 (inte Beagle Board återställningsknappen): ./avrgal Fade.hex. Här är produktionen jag såg:

Uart-port används: / dev / ttyS1 Autodetektering för Fade.hex: Intel Hex förvärvar SYNC med AVR: Passerat Uppladdning och skrivning till blixt: Passed

När jag var klar kopplade jag en LED till stift 9 (den positiva, längre ledningen) och till stift 10 (negativ ledning). LED-lampan bleknade precis som det borde. Nu har jag ett Linux-system med låg effekt, med en Arduino-kompatibel kringliggande hårddisk till den. Det finns många möjligheter med den kombinationen.

Del

Lämna En Kommentar