Firmware bootloader arduino pro micro. Arduino firmware för cnc-maskin

Till exempel, om arduinen är långt borta och det är obekvämt att gå runt, kan du fästa Ethernet-modul på WIZnet W5100-chippet

1. Vi tar några enkla arduino och flashar den med arduino isp-skissen från exemplen

2. anslut så här

Tavlan som blinkar

Tavlan blinkar

SS ->
mosi ->
miso ->
sck ->

återställa
51
50
52

Jag har till exempel Nano Blinkande Mega 2560

3. i arduino ide, klicka på filen - inställningar, ange där i ytterligare länkar för styrelsechefen är det: https://per1234.github.io/Ariadne-Bootloader/package_codebendercc_ariadne-bootloader_index.json

4. i arduino ide, klicka på verktyg - boards - board manager - klicka nedan Ariadne Bootloader - Installation

5. klicka på Tools - Board - och välj i Ariadne Bootloader-sektionen erforderlig avgift(som vi ska flasha. Jag har denna mega 2560)

6. välj verktyg - programmerare - arduino som isp

7. kontrollera allt igen - det borde vara så här:

8. verktyg - bränn starthanteraren (ett par gånger om fel uppstår)

9. stäng av programmeraren, stick nätverkskort. standard ip 192.168.1.128. för att ändra det måste du flasha neteeprom-skissen en gång - writeNetworkSettings, efter att ha förskrivit de nödvändiga IP-adresserna där

10. Efter det måste du försöka flasha genom nätverket - för detta måste du också göra några konstiga åtgärder. inkludera i Arduino IDE via fil - inställningar utförlig utdata:

11. öppen önskad skiss som Blink från exemplen:

12. klicka på kompilera - och leta efter var arduino dumpar temporära filer under kompileringen. Jag har den här

13. öppet kommandorad i den här mappen och kör:

"C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avr-objcopy.exe" -I ihex Blink.ino.hex -O binär Blink.ino.bin

14. tryck sedan på reset och efter ett par sekunder kör vi tftp -i 192.168.1.128 PUT Blink.ino.bin på samma ställe

15. Att återställa varje gång är obekvämt och för detta behöver vi en skissfil - exempel - ethernetreset - resetserver. detta är en speciell liten webbserver på port 8080 som kommer att återställa arduino http://192.168.1.128:8080/password/reset när så begärs:

För automatisering, streckade jag av en batchfil - släpp den bara i din skissmapp och dra .ino-filen till den - den laddar upp den till dig. först, bara redigera - ange din server och lösenord:

@echo off set ip=192.168.1.128 set passwd=parol mkdir "%~dp0build" del build /F /S /Q set home=%HOMEDRIVE%%HOMEPATH% set targetfn=%~n1%~x1 "C:\Program Filer (x86)\Arduino\arduino-builder.exe" -compile -logger=maskin -hårdvara "C:\Program Files (x86)\Arduino\hardware" -hårdvara "%home%\AppData\Local\Arduino15\paket" -verktyg "C:\Program Files (x86)\Arduino\tools-builder" -verktyg "C:\Program Files (x86)\Arduino\hardware\tools\avr" -tools "%home%\AppData\Local\Arduino15 \packages" -built-in-libraries "C:\Program Files (x86)\Arduino\libraries" -bibliotek "%home%\Documents\Arduino\libraries" -fqbn=Ariadne-Bootloader:avr:ariadne2560:configuration=blink_shield -ide-version=10610 -build-sökväg "%~dp0build" -warnings=ingen -prefs=build.warn_data_percentage=75 -verbose "%targetfn%" "C:\Program Files (x86)\Arduino\hardware\tools\ avr\bin\avr-objcopy.exe" -I ihex build/%targetfn%.hex -O binär build/%targetfn%.bin powershell -Kommando "Invoke-WebRequest http://%ip%:8080/%passwd% /reset rem 6 sek fördröjning P ING 127.0.0.1 -n 6 >NUL 2>&1 || PING::1 -n 6 >NUL 2>&1 tftp -i %ip% PUT build/%targetfn%.bin paus

@ eko av

set ip = 192.168.1.128

ställ in passwd=lösenord

mkdir "%~dp0build"

del build / F / S / Q

ställ hem = %HOMEDRIVE%%HOMEPATH%

ställ in målfn = % ~ n1 % ~ x1

"C:\Program Files (x86)\Arduino\arduino-builder.exe"- kompilera - logger = maskin - hårdvara "C:\Program Files (x86)\Arduino\hardware"- hårdvara - verktyg "C:\Program Files (x86)\Arduino\tools-builder"- verktyg "C:\Program Files (x86)\Arduino\hardware\tools\avr"- verktyg "%home%\AppData\Local\Arduino15\paket"- inbyggda - i - bibliotek "C:\Program Files (x86)\Arduino\libraries"- bibliotek "%home%\Documents\Arduino\libraries"- fqbn = Ariadne - Bootloader : avr : ariadne2560 : konfiguration = blink_shield - ide - version = 10610 - build - sökväg "%~dp0build" - warnings = none - prefs = build . warn_data_percentage = 75 - verbose "%targetfn%"

Har du någonsin tänkt på att en billig kinesisk Arduino-klon faktiskt skulle kunna fungera?
Du betalar bara ett par dollar och du får samma produkt. Låter för bra för att vara sant, eller hur?

Sanningen är att vissa av dem fungerar och andra inte.
Läs artikeln till slutet så lär du dig hur du får vilken kinesisk klon som helst att fungera på ett par minuter.

Jag använder en Arduino Uno för det här exemplet, men processen är densamma för andra modeller.
Här har vi originalet Arduino Uno och dess kinesiska kopia (Shop on,).

Låt oss göra några tester.

Min programvara från Arduino är installerad på datorn och fungerar bra. Först kopplar jag in original Arduino och allt fungerar som det ska.
Nu kopplar jag in min billiga kinesiska kopia av Arduino och datorn kan inte upptäcka enheten.

Problemet är att den kinesiska klonen inte använder ett vanligt seriellt till USB-chip, även om chippet heter CH340. Din dator kommer inte att känna igen dessa CH340-chips om du kopplar in dem.
Det är lätt att fixa.

Ladda ner programvara från kinesisk tillverkare och installera det på din dator. Denna programvara kommer att fungera på alla versioner av Windows.
Windows: http://www.wch.cn/download/CH341SER_EXE.html

Anslut nu din kinesiska klon och försök igen. Allt ska fungera. kinesisk klon bör visas i Arduino-mjukvaran och vara redo att användas. Jag laddar ner det blinkande programmet och allt fungerar bra.

Men i vissa fall kanske den kinesiska styrelsen fortfarande inte fungerar. Detta beror på att starthanteraren inte var installerad på Atmel-kontrollern.
För att lösa detta problem behöver vi en fungerande Arduino och en Arduino-klon som vi vill flasha.

Först ansluter vi en fungerande Arduino till datorn och öppnar Arduino-mjukvaran.
Vi går till Arkiv -> Exempel och väljer ArduinoISP. Vi laddar upp det till tavlan. När du har laddat ner, koppla ur Arduino.

Nu ansluter vi Arduino-klonen med ledningar till den fungerande Arduino enligt detta schema:

  • Pin 10 ansluter till Reset,
  • Kontakt 11 ansluts till kontakt 11,
  • Kontakt 12 - till 12,
  • Kontakt 13 - till 13,
  • 5 volt - till 5 volt,
  • Jord till jord.

Nästa steg är att ansluta en fungerande Arduino till en dator.

  1. Gå till Verktyg -> Styrelse och välj den kinesiska tavlan som inte fungerar. I mitt fall är det Arduino Uno.
  2. Gå nu igen till Verktyg -> Programmerare och välj "Arduino som ISP"
  3. Återigen, gå till Verktyg och välj "Burn Bootloader".
  4. Återigen Verktyg -> Programmera och installera "ArduinoISP".

Din kinesiska kopia borde nu fungera bra.

Arduino är fantastisk programvara och helt gratis att använda. Om du köper kinesiska kopior Arduino-kontroller, överväg att donera för att stödja utvecklare.

Jag hoppas att artikeln var till hjälp. Lämna kommentarer.

I denna artikel, övergången från Arduino programmering att programmera en "rå" ATtiny84 mikrokontroller med skisser som är bekanta för Arduino.

Vi behöver

Börjar med en enkel skiss

Vi kommer att montera en enhet med en potentiometer och en LED. Beroende på potentiometerns rotationsvinkel kommer lysdiodens ljusstyrka att ändras. Vi ansluter till Arduino på följande sätt: vi ansluter lysdioden till digital stift nr 6 (eftersom den har förmågan att generera en PWM-signal, på grund av vilken ljusstyrkan på lysdioden kommer att justeras), och potentiometern till analog stift nr 0. Skissen innehåller följande kod:

pwm-adc.ino // LED-pinnummer int ledPin = 6 ; // Analogt pin-nummer int analogPin = A0; // Läsvärde // 0..255. För att göra detta, dividera värdet med 4 analogWrite(ledPin, val / 4 ); )

Skisser på ATtiny84

Så vi har en Arduino Uno. Hur kan vi programmera vår "tinka"? För detta används en enhet som en programmerare. Det är nödvändigt för att ladda upp firmware till styrenheten. Vi kan förvandla vår Arduino till det. Och detta görs elementärt genom att ladda upp ArduinoISP-skissen.

Att göra en programmerare och montera en krets

Öppna motsvarande skiss "Arkiv → Exempel → ArduinoISP" och ladda upp den. Det är allt, förvandlingen är klar. Nu måste du montera kretsen korrekt för att blinka "tinka". Låt oss gå till skisskoden som just laddades upp. Inte ens till koden, utan till kommentaren framför den.

ArduinoISP.ino // Den här skissen förvandlar Arduino till en AVRISP // med hjälp av följande arduino-stift: // // pinnamn: not-mega: mega(1280 och 2560) // slavåterställning: 10: 53 // MOSI: 11:51 // MISO: 12:50 // SCK: 13:52 // // Sätt en lysdiod (med resistor) på följande stift: // 9: Heartbeat - visar att programmeraren kör // 8: Error - Tänds om något går fel (använd rött om det är vettigt) // 7: Programmering - I kommunikation med slaven

Anslut först lysdioderna på det sätt som beskrivs i kommentaren, och glöm inte motstånden. Efter att ha monterat kretsen och lagt på ström, kommer lysdioden som är ansluten till stift 9 "Heartbeat" att blinka, vilket indikerar normal drift. Om detta inte händer, leta efter fel i anslutningen.

Nu måste du ansluta stift 10-13 till ATtiny. För att ta reda på pinouten för den senare, låt oss vända oss till databladet, som kan laddas ner från Atmels webbplats, tillverkaren av dessa kontroller. På den andra sidan finns en bild som beskriver pinouten. Baserat på databladet och kommentarer från skissen kan vi göra följande anslutningstabell:

Arduino UNO ATtiny84
återställa 10 4
MOSI 11 7
MISO 12 8
SCK 13 9

Nu kommer vi att ansluta lysdioden och det variabla motståndet. Motståndet måste anslutas till stift #6 (PA7), eftersom detta stift kan vara en ingång för analog-till-digital-omvandlare, och lysdioden - till någon annan, till exempel till 10 (PA3).

Om pinnumrering

Det är värt att prata lite om skillnaden i stiftnumrering i Arduino och när man använder ”ren” C. I Arduino numreras stiften sekventiellt och systemstiften (kraft, jord etc.) är uteslutna, men i verkligheten är allt lite annorlunda. Alla kontrollerutgångar kan karakteriseras av två parametrar: portnummer (port A, port B, etc.) och utgångsnummer (1..8).

Du kan hitta en pinmap på Arduinos webbplats. Det ser ut så här:

För den ATtiny84 vi använder kommer numreringen att vara liknande. I Arduino-liten bibliotek, som kommer att diskuteras senare, kan du hitta följande mappningstabell:

// ATMEL ATTINY84 / ARDUINO // // +-\/-+ // VCC 1| |14 GND // (D 0) PB0 2| |13 AREF (D 10) // (D 1) PB1 3| |12 PA1 (D9) //PB34| |11 PA2 (D 8) // PWM INT0 (D 2) PB2 5| |10 PA3 (D 7) // PWM (D 3) PA7 6| |9 PA4 (D 6) // PWM (D 4) PA6 7| |8 PA5 (D 5) PWM // +----+

Beroende på syftet med varje kontrollfot kan de analoga stiften (de med ADC-ingång) är numrerade i skissen enligt ADC-kanalen. Till exempel kan stift med fysiskt nummer 11 vara en ingång för den andra kanalen i ADC (ADC2), så i skissen kommer det att kallas A2.

Nu måste vi lära ut Arduinos programmeringsmiljö för att förstå det faktum att vi använder en annan kontroller.

Att lära sig utvecklingsmiljön

Först och främst måste du ladda ner det lilla arduino-biblioteket, som innehåller allt du behöver. Därefter går vi till Arduino-inställningar och titta på platsen för mappen med skisser.
Gå till den här mappen och skapa en ny där med namnet "hårdvara". Och i den finns en annan, "liten". Kopiera innehållet i det tidigare nedladdade arkivet till den här mappen. Och sista åtgärden- byt namn på filen "Prospective Boards.txt" till "boards.txt". Låt oss nu starta om utvecklingsmiljön och gå till menyn "Verktyg → Styrelse".
Du kan se att många nya objekt har lagts till.

Programmering av ATtiny84

Välj som önskad enhet"Service → Board → ATtiny84 @ 8 MHz (intern oscillator; BOD disabled)" eftersom vi inte har en extern kvarts som ställer in frekvensen på styrenheten. Som programmerare väljer du - "Tjänst → Programmerare → Arduino som ISP".

Som en kod tar vi koden vi redan har skrivit för lysdioden och trimmermotstånd och ändra pinnumren där.

attiny.ino // LED-pinnummer int ledPin = 2 ; // Analogt pin-nummer int analogPin = A2; // Läs värdet från den analoga ingången till denna variabel int val = 0 ; void setup()( // Ställ in stiftet på LED till utgången pinMode(ledPin, OUTPUT) ; ) void loop() ( // Läsvärde val = analogRead(analogPin) ; // val innehåller ett värde från intervallet 0..1023, och intervallet av värden för analogWrite // 0..255. För att göra detta, dividera värdet med 4 analogWrite(ledPin, val/ 4 ); )

Resultat

Vi fick en enhet som liknar det som kunde göras på Arduino, men använde en billig och kompakt mikrokontroller för det.

Så du kan ta bort en del av ansvaret i ditt stort projekt i separata mikrokontroller, kombinera dem, byt ut dem och gör en massa intressanta, kompakta saker.

Här kan du ladda ner firmware för CNC på Arduino. All firmware är skriven i Arduino IDE.

Ladda ner firmware

Firmware för MKS DLC controller, CNC Shield för CNC maskin

Här kan du ladda ner firmware för CNC på MKS DLC, CNC-sköld. CNC Shield - expansionskort för Arduino UNO, Nano. Den fasta programvaran laddas via Arduino IDE, liknande Arduino firmware.

Ladda ner firmware

Beskrivning och installation av Arduino firmware för CNC

Firmware för arduino-brädor skrivet på bearbetningsspråket i utvecklingsmiljön Arduino 1.0.2 i operativ system Windows.

Arduino firmware källkod för att styra 3 stegmotorer via COM-port

För att komma igång med Arduino måste du installera det nödvändiga programvara. För att göra detta, gå till den officiella Arduino-webbplatsen och ladda ner distributionspaketet från den här sidan. På Arduinos officiella webbplats kan du hitta många exempel på firmware för brädet, samt lära dig de grundläggande principerna för att arbeta med brädet. Kör nu installationsfilen, välj en mapp, godkänn licensavtal Och så vidare. Efter installationen visas Arduino-ikonen på skrivbordet. Nu kan du ansluta vårt Arduino-kort till datorn, för detta använder vi USB-kabel 2.0-kontakt USB A - USB B. Vi väntar på att Windows ska hitta och installera ny hårdvara. Nästa, låt oss springa Arduino program och välj önskad COM-port genom att välja Verktyg->Serial Port i huvudmenyn.

Att välja en skiss för Arduino

Beroende på konfigurationen av CNC-maskinen och de uppgifter som den måste utföra, välj en skiss från listan ovan. Vi går till motsvarande sida. En kort beskrivning för varje skiss anger för vilka drivrutiner för stegmotorer och andra komponenter (spindel, laser, TTL, kopplingskrets, etc.) denna firmware är avsedd. Dessutom anges för vilka ändamål den kan användas. Till exempel används olika skisser för laserskärande ornament och lasergravyr, även om hårdvarudelen kan vara densamma.

Bygga och ladda ner firmware för Arduino

Kopiera källa firmware för att styra CNC-maskinen i fönstret redigera IDE Arduino. Nu trycker vi på knappen Ladda ner. Vi väntar på att Arduino-programmet ska kontrollera, kompilera och installera firmware på Arduino-kortet. Låt oss försöka kontrollera om den fasta programvaran fungerar. För att göra detta måste du ansluta motorerna och starta Port Monitor i Arduino-programmet. Portmonitorn finns på Service huvudmeny. I Port Monitor-formuläret anger du kommandot:
1000,2000,3000;
Och vi trycker på knappen Skicka. Vi tittar på hur motorerna roterar i olika hastigheter. När motorerna slutar snurra kommer Arduinos firmware att sända TUSB till dator, kommer detta att visas i Port Monitor. Det fanns ett meddelande innan OK.

Efter att ha köpt Arduino Pro Mini-kortet står vissa användare inför ett firmwareproblem, för för att flasha det här kortet måste du köpa en annan speciell programmerare. I detta avseende är du intresserad av hur du kan flasha ett kort utan en programmerare? Lyckligtvis är detta enkelt nog att göra. I den här artikeln kommer vi att ta en detaljerad titt på hur man flashar eller återflashar en Arduino. Pro Mini. Låt oss ta reda på det. Gå!

För att blinka behöver du en Arduino Uno. Först och främst måste du ansluta GND till jord, UCC till positiv, RXI och NX0 till samma ingångar på Uno, och GRN för att återställa. Det skulle vara bäst att lägga på en trevoltsspänning. När strömmen sätts på tänds den röda lysdioden på kortet. Glöm inte att ta ut ATMEGA-kontrollern ur Uno först.

Nu måste du ansluta kortet till datorn. Starta sedan Sketch på din PC. När du befinner dig i verktygets huvudfönster öppnar du "Arkiv"-menyn och klickar på "Exempel" och håller muspekaren över avsnittet "Grundläggande" och klickar på "Blinka" i listan som visas. Efter det gå till topppanel och öppna menyn Verktyg. Välj posten "Betalning" i den. I listan över kort måste du markera raden "Arduino Pro Mini (5V, 16MHz) w/ATmega328" istället för den som är markerad som standard. Glöm inte heller att ange den nödvändiga com-porten i inställningarna.

Klicka sedan på knappen "Ladda ner" i programmet. Så snart in slutsats ordet "boot" kommer att visas, tryck på "reset" på brädet. Du kommer att se ett meddelande på skärmen att nedladdningen är klar. Redo. Blinkningen slutfördes.

Låt oss nu titta på hur man gör samma sak, bara genom Nano. Öppna Sketch och gå till menyn "Arkiv", välj avsnittet "Swatches". I listan som visas klickar du på "ArduinoISP". Sedan måste du gå till "Verktyg", välja "Bord" och bocka för "Arduino Nano".

Komplett Firmware Nano med ArduinoISP-skissen. Kontrollera porthastigheten i inställningsfunktionen. Detta kommer att vara hastigheten under Firmware Pro mini. I standard Sketch är hastigheten 19200.

Med Nano redo, börja montera brödbrädan för att flasha Pro Mini. Anslut +5V till Vcc, anslut GND till samma ingång, D10 till RST och D11, D12 och D13 till samma ingångar på Pro Mini.

Nu måste du ansluta Nano till PC. Innan du fortsätter med blinkningen, se till att du använder lika hastigheter port, med fokus på hastigheten från Sketch. Hitta textfilen "boards" i mappen "arduino". Öppna den och hitta raden:

pro5v328.name=Arduino Pro Mini (5V, 16MHz) med ATmega328

Om du använder en annan version, välj lämplig. Kontrollera den inställda hastigheten. Du bör också kontrollera inställningarna textfil"programmerare".