Arduino Micro Quadcopter: 6 trin

Arduino Micro Quadcopter: 6 trin

Indholdsfortegnelse:

Anonim

(ONGOING Project, i øjeblikket nødt til at lodde kredsløbet)

Dette er Arduino-baseret, 3D-printet Micro Quadcopter-projekt til 8,5 mm diameter DC-motorer. Men hvis du har nogle erfaringer (eller bare har en times fritid), kan du tilpasse designet til at passe til en anden størrelse motorer.

Jeg gør dette under min fritid mens jeg studerer på universitetet, og derfor synes jeg det skal tage lidt tid at afslutte (eksaminer nærmer sig!).

Jeg besluttede at kontrollere Quadcopter via Bluetooth ved hjælp af en Android-telefon / tablet. I fremtiden kan jeg designe en smule for at styre den ved hjælp af Wifi eller nogle radiokommunikation. Jeg vil også skrive og udgive en Android App til kontrol med bluetooth.

Så lad os komme i gang @!

P. S. Roboten er dedikeret til M.O.N.T.E. (Mobil Omnidirektionel Neutralisering og Terminering Eradicator) morder robot fra The Big Bang Theory: D

forsyninger:

Trin 1: Ramme og plast

Jeg ville have rammen til at være lys og stærk og besluttede derfor at bruge en 3D-printer. Dette har også spart mig masser af tid. Hvilken printer du skal bruge, vil jeg lade dig afsted, da jeg ikke ejer en 3D-printer selv og bruger den, der er på universitetet. Den samlede wight af designet var omkring 10 - 15 g (Universitetet havde ingen skalaer …), men det vil variere afhængigt af printeren og plastik

Til designet brugte jeg et gratis webdesignværktøj TinkerCAD, som nok er det bedste designværktøj til begyndere eller til mindre projekter.

Jeg tilføjede filerne her, så du kunne gå og udskrive det med det samme. Men hvis du vil se ind i designet fra alle vinkler, så besøg Thingiverse. På samme måde kan du besøge TinkerCAD for at ændre mit tidligere design som du kan lide det (skift Quadcopter?).

For en enkelt quadcopter skal du udskrive en Quadcopter_bottom_3.stl og en Quadcopter_top_2.stl. Jeg prøvede at udskrive alt selv og bemærkede, at printeren jeg havde, ikke udskrev skruerne meget godt (jeg kunne ikke passe skruerne i hullerne), så jeg foreslår ikke engang at udskrive dem også … Du kan selvfølgelig forsøge at gøre det tilføjer jeg også Quadcopter_screw_2.stl hvis du er nysgerrig … jeg redesignede bunddelen, så du kunne holde fast i den øverste del og så kunne du bare bruge nogle plastikbånd til at holde alt sammen.

Trin 2: Resten af ​​delene + Pris

microcontroller

Vi har brug for nogle små chip / microcontroller bord til denne Micro Quadcopter. En billig mulighed er at bruge Arduino Nano, som fra Kina koster ~ £ 1-2. For at mindske vægten kan alternativer være Arduino Beetle eller Arduino USB chip, som er en kinesisk kopi af original Beetle (Billigere, arbejder (testet) på samme måde, og stik er lettere at lodde). Du kan også følge denne vejledning til at programmere bare chips fra ATMEL ATmega328 / 168, som du kan få gratis fra ATMEL-webstedet (Hvis du er studerende skal du gå til Atmel -> prøver -> bestille en prøve) eller ebay ellers. Hvad angår prototyping vil jeg bruge Arduino Nano, da det er lettere at håndtere. Jeg tror, ​​at det næste trin ville være enten at bruge bare metal Atmel-chip eller se på Arduino Beetle BLE, da du også kan finde dem billigt nogle steder, men de har kun 2xPWM-udgang, og det kan derfor også være nødvendigt at bruge en registerskifter. Vægten af ​​hver chip varierer afhængigt af mikrocontroller: Arduino Micro ~ 13g, Arduino Beetle ~ 5g, bare chip + krystal ~ 4-5g (?).

Motorer

Jeg brugte selv lidt dyrere motorer herfra. De skal være meget hurtigere end de originale Hubsan X4 motorer. Jeg planlægger at bruge specialfremstillet hardware, så jeg har brug for hurtige motorer til at løfte vægten. Hvis jeg skulle købe en ny motor indstillet nu, ville jeg højst sandsynligt købe dem fra samme butik, men dem der siger hurtighed: sindssyg. Der er også nogle få af dem, så vælg dem med de bedste anmeldelser. Forskellen er ganske signifikant med hastighed: Sindssyg, da de kan nå maksimalt 3,2 A i stedet for 2,75 A med hastighed: hurtig (på en eller anden måde siger, at tryk er 40 g / motor for begge motortyper). For dem, du ikke har råd til dyr bil, er der altid et alternativ fra ebay eller endda billigere fra Kina. De flyver selvfølgelig ikke så hurtigt, i hvert fald antager jeg det fra præstationskurver. Jeg har ikke prøvet mig selv, men max strøm er 1,85 A og kraften er 34g / motor, hvilket er lavere end på tidligere motorer. (Total vægt ~ 20g)

Bluetooth

Til projektet brugte jeg det sædvanlige HC-06 Bluetooth-modul. Det fungerer kun som en slave, hvilket er, hvad vi har brug for, hvis vi vil styre det ved hjælp af en smart telefon. Som du kan se fra det tilføjede billede, bøjede jeg forbindelsesstykkerne og forkortede dem derefter. Jeg kan se nærmere på en mulighed for at tilføje et Bluetooth 4.0-modul senere, som har modstående forbindelser, så du behøver ikke at gøre det. (Samlet vægt ~ 5g)

MPU

Til projektet brugte jeg MPU6050, som jeg allerede havde købt for længe siden. Det har kun 3 akse Gyroskop og kun et 3-akset Accelerometer. I senere udgivelser kunne jeg bruge nogle dyrere MPU'er, som ville have barometer og et magnetometer. (Samlet vægt ~ 1,4 g)

Batterier

For motorer og elektronik skal du bruge to 1S 3,7V LiPo batterier. Den ene bruges til at tænde motorerne og en anden kun elektronikken. At finde et batteri til elektronik er nemt. Vælg simpelthen det mindste tilgængelige batteri på markedet (fx 1s 3,7V 100mAh (3g)). Du kan også købe dem fra HobbyKing temmelig billigt.

At få et batteri til motoren er mere besværligt. Der er et par vigtige punkter at bemærke, når de køber dem, kapacitet (mAh), max tilladt udledning (C) og gennemsnitlig udladningshastighed (C). Jo større kapacitet, jo længere quadcopteren vil køre på en enkelt ladning, og jo større udladningshastighed, desto større kraft vil den kunne levere til motorerne (større strømme for konstant og til spidsbelastning). Der er ofte en tommelfingerregel, at multiplikation af både udladningshastighed og kapacitet vil give den strøm, som batterierne kan levere. For eksempel har du et batteri med 500 mAh og 10 C af gennemsnitlig / konstant udladning. 500 mAh * 10 C = 5 A. Således kan et sådant batteri i gennemsnit levere 5 A. Så tilføj omkring 20% ​​sikker margen, og du skal være god at gå. Nå, det kan fungere i nogle tilfælde, men vi har ekstremt kraftfulde motorer, og dermed udladningshastigheden skal være meget højere end det. Jeg forsøgte tidligere Turnigy nano-tech 650mAh 1S 15c (13g) med absolut ingen held. De formåede kun at fuldføre en enkeltmotor og ikke engang skruede op 4 motorer en smule, hvilket betød, at udladningshastigheden simpelthen var for lille (kapaciteten var sikkert nok). Jeg kiggede derefter på Turnigy nano-tech 1s 260mAh 35-70C (14g) batterier. De formåede at køre alle 4 motorer, men på det tidspunkt, da jeg købte dem, kostede de halvdelen af ​​den pris, du ser her. Jeg foreslår at kigge på HobbyKing for lignende eller alternative batterier, f.eks. Turnigy nano-tech 300mah 1S 45 ~ 90C (9g) eller endda Turnigy Graphene 600mAh 1S 65C (15g), som synes at være meget lovende. Hvis du har få $ / £ ekstra, køb Graphene batterier, da de er lettere sammenlignet med alternative batterier med samme kapacitet og giver meget højere udladningshastigheder (i hvert fald på papiret). Jeg prøvede dem ikke selv, men det ville være rigtig interessant at se, hvordan de sammenligner i virkeligheden, da jeg tror, ​​at den 35C udladningshastighed, der i øjeblikket er givet, er lidt lille også.

Lad os beregne, hvor længe batterierne varer. Lad os sige at bortset fra motoren bruger resten af ​​elektronikken hele 100 mA strøm konstant. Samlet strøm = 2,75 * 4 + 0,1 = 11,1 A = 11,1 * 1000 = 11100 mAh. De batterier jeg købte har en kapacitet på 260mAh, således Time (min) = 260 * 60/11100 = 1,4 min. Synes ikke meget overhovedet gør det? Jeg testede, da jeg vedhæftede quadcopteren med trådene til jorden, og det ser ud som om tallene er rimelige, jeg kunne virkelig ikke holde quadcopteren i luften selv 2 min. Nå, for længere flyrater skal du enten tilføje større batterier, bruge billigere Hubsan X4 motorer eller på anden måde sænke vægten af ​​hele grebet. (Samlet vægt ~ 16 g)

Motorstik

Motorerne bruger normalt mini JST-type stik, så du skal få nogle (4 stk) fra enten Farnell eller ebay for at kunne forbinde motorerne til hele kredsløbet. Sørg for at købe stikene som dem i billedet. Der er meget ens (f.eks. Mikro JST), men de er forskellige.

Batterikontakter

Mange af batterierne fra ebay og HobbyKing bruger micro JST-stik. Opladeren jeg brugte (givet i senere afsnit) har en lidt anderledes JST-stik (jeg ved lidt forvirrende, da alle har samme navn), så jeg besluttede at bestille nogle af disse fra ebay og lod dem solde på hvert batteri i stedet. Dette tillod også senere at forbinde batteriet godt til printkortet.

Propeller

Mange af jer ønsker måske at bruge Hubsan X4 propeller, og det kan du gøre, hvis du vil, men jeg vil bruge Walkera LadyBird rekvisitter. De er lidt dyrt, hvis du køber dem i Storbritannien (ca. 5 gange mere, når du sammenligner med originale Hubsan X4 rekvisitter), men virkelig billige fra Kina. Hvis du endnu ikke har rekvisitter, så vil jeg anbefale at bruge dem heller - hvis jeg er korrekt, læser jeg et sted, at de giver mere fremslag, og dermed giver vores lille dyr mere fart. Nåvel er Walkera LadyBird trods alt kendt for at være bedste micro quadcopter opdateret! Jeg spekulerer på, hvem der testede det, men lad os bare stole på dem for nu …) (Et par gram i alt ~ 3-5g)

Transistorer

Vi har brug for 4x MOSFET transistorer og valg af en kan være vanskelig. For det første skal de modstå den anvendte effekt og strømmen af ​​motorerne og for det andet skal tærskespændingen være ret lav, ellers vil Arduino ikke være i stand til at tænde dem fuldt ud (i tilfælde af N-type MOSFET). I mit tilfælde er den maksimale strøm 2,75 A med spænding på 3,7 V. Dette betyder, at jeg har brug for en MOSFET, som i det mindste ville modstå omkring 4 - 5 A lige (vil også varme op mindre). Jeg bestilte nogle fra Farnell (MOSFET Transistor, N Channel, 6 A, 20 V), men du er fri til at se på alternativer som MOSFET Transistor, N-kanal, 8 A, 20 V (disse er faktisk identiske med de foregående, men de få yderligere ben til at blive loddet til jorden for at fungere som en kølelegemet. Dette er ikke nødvendigt, da de tidligere ikke varmer op). Begge havde tærskelspændinger på 600mV, hvilket er godt. Hvis du skal kigge efter alternativer, så prøv ikke at gå mere end 1 V, men også hvis du vil bruge det medfølgende printkort, skal du sørge for størrelsen er den samme, plus de givne transistorer har allerede en frihjulsdioder inde vil spare plads på printkortet. (Totalvægt <1g).

modstande

Til projektet havde jeg brug for en 6x10 kOhm og 2x56 kOhm modstande (der skal besluttes, men det er ikke nødvendigt indtil slutningen), som du kan finde i enhver elektronik butik. (Totalvægt <1g)

kondensatorer

En enkelt elektrolytkondensator vil blive brugt til at glatte spændingen på batteriet, der anvendes til modtagere af størrelse 47uF, 50V. Det kan købes hos enhver elektronik butik. (Totalvægt <1g)

Oplader

Du har måske allerede en god opladere, men i tilfælde af at du ikke kan du altid få noget som dette. Det bruger JST-type stik, så du bliver nødt til at få de nævnte stik. Alternativt kan du få et chipbaseret opladermodul som dette. Dette kan være nyttigt i senere projekter, da chipet kan blive en del af kredsløbet i det tilfælde.

Pris

Sandsynligvis vil mange af jer gerne vide prisen på thingy. Nå, lad os bare regne med at bruge nogle grove beregninger, da prisen afhænger af leverandøren:

Dyre motorer:

£ 2 (Arduino) + £ 3 (MPU6050) + £ 20 (Motorer) + £ 3 (Motorbatteri) + £ 2 (Elektronik Batteri) + £ 2 (Propeller) + £ 2 (MOSFET) + £ 5 (HC-06) + £ 2 (resten af ​​elektronik + plastik) + £ 1 (stik) + £ 3 (oplader) = £45 (kun tilføjer de brugte komponenter, når de købes i multipler)

£45 - £15 = £30

Samlet pris er ikke så stor, og hvis du har stik og oplader, vil den falde betydeligt! Ved hjælp af meget hurtig motorimplementering lykkedes det mig at passe ind i £ 50 prisklasse, hvis alle dele skulle købes.

Trin 3: Vægtberegninger

Dyre motorer:

For vores quadcopter at flyve pænt er der en tommelfingerregel, at 50% af motorens maksimale kraft skal svare til vægten af ​​quadcopteren selv. Således betyder det, at quadcopteren vil være i konstant højde, når den giver 50% af sin fulde effekt. De motorer, jeg har købt, har 40g / motordrivkraft. I alt det giver op til 160g. 50% af det er 80g. Nu kan vi tilføje hele elektronikken + rammen:

15g (ramme) + 20g (motorer) + 23g (batteri) + 5g (bluetooth modul) + 5g (mikrocontroller) + 1,4g (MPU) + 2g (transistorer) + 1g (dioder) + 1g (modstande) = 73,4g, hvilket er mere eller mindre, hvad vi har brug for! Selvfølgelig vil der være en ekstra vægt fra ledninger mv. Men de er små og højst vil det øge vægten til 75g, hvilket stadig er 6% lettere end det vi havde råd til.

Billige motorer:

Samlet tryk fra motorer er 4 * 34g / motor = 136g. 50% af det er 68g. Total elektronik vil være stort set den samme, bare batteriet bliver 10g lettere, hvilket giver ca. 65g i alt med alt, hvilket stadig er lettere end 50% af stødkraften! Faktisk vil det ikke flyve så godt som med hurtigere motorer, men jo jo, du bruger mindst 4 gange billigere motorer!

Konklusion:

Quadcopteren skal flyve! Med dyrere motorer vil den flyve bedre / hurtigere, men alligevel skal begge quadcopter flyve.

Trin 4: Kredsløbsdiagram

Jeg forlod det forrige kredsløb ved hjælp af Arduino Beetle, men tilføjede også Arduino nano forbindelser. De fleste af tingene skal være de samme bare ved hjælp af Beetle Jeg fandt flere problemer. For det første er der ikke nok af dedikerede stifter. Så for eksempel bruges nogle PWM-stifter som I2C, derfor er det svært at bestemme, hvilke af forbindelserne der skal fastsættes ved hjælp af kode og hvilke som bruger de medfølgende stifter. Også jeg havde kun mulighed for at lave et ensidet printkort, så det var svært at lave forbindelser til Beetle board. Jeg endte med at bruge Arduino nano.

Arduino nano har en tobatteri-løsning, og Beetle gør det ikke. Dette er meget vigtigt, da Bluetooth ikke fungerer ved brug af et enkelt batteri. Hvis der benyttes to batterier, skal der anvendes en anden> 10uF kondensator mellem positive og negative stifter.

I bunden af ​​Arduino nano-kredsløbet tilføjede jeg de alternative forbindelser til transistoren, som blev brugt til printkortet i stedet for den ene, der gjorde forbindelser.

Trin 5: PCB

Det er meget nemmere at lodde alle komponenter på et allerede forberedt printkort (printkort). Desværre er det ikke altid muligt at få adgang til en maskine for at lave en. Vi havde en på universitetet, og derfor designet jeg et printkort med Mål 3001! Software. For at åbne filen *.T3001 skal du downloade Target 3001 software, som desværre kun er Windows-kompatibel. Jeg kan eksportere projektet til Eagle senere. Tilføjelse af Target3001,.xps,.tif og.src (eksport til Eagle) for dem, der har til hensigt at lave et printkort hjemme.

Det trykte og loddet resultat ser ud som i det viste billede. Jeg har tilføjet røde cirkler, der viser de lodde transistorer, gule cirkler, der viser JST-stikene til motorerne, grøn cirkel, der markerer batterikonnektoren, giver kun strøm til motoren, og den blå cirkel markerer batterikontakterne, og giver strømmen til resten af ​​elektronikken (Arduino, MPU6050, etc.). Som du kan se, er der nogle rettelser lavet ved siden af ​​begge strømforsyningerne. Du behøver ikke at gøre det, da printkortet blev opdateret efter den første arbejdsmodel. Grundlæggende var problemet, at PCB'en først havde en enkelt strømforsyning. Under testen viste det sig, at Bluetooth-modulet konstant afbrudt fra telefonen, da batterispændingen faldt til lave niveauer (<3V). Ikke kun det, men Arduino havde også problemer med det, som blev afhjulpet ved at sænke udbrændt spænding. Du kan nemt gøre det selv, da det kun kræves at ændre en enkelt fil i Arduino IDE, men det er mere en hack som jo højere frekvensen, jo højere spænding er nødvendig. I sidste ende kan noget andet gå i stykker i fremtiden, eller du kan miste al tilgængelig strøm osv. Alligevel har implementeringen af ​​tobatterier fungeret pænt, især at batteriet kun strømmer rundt omkring 3g.

Når du lader på motorstikkene, skal du sørge for, at de er loddet på den rigtige måde! På hver side vender en af ​​stikket mod hinanden på en anden måde. Kontroller enten, hvilket er positivt, hvilket er negativt eller forbinde motorer inden lodning og lodning ifølge billedet (rød / hvid trådfarve er positiv og sort / blå er negative terminaler)

På den anden side af printet tilføjede jeg et grønt firkant, der viste de ikke-obligatoriske 1x02-stik. Jeg troede, det ville være rart at kunne forbinde noget med quadcopteren i fremtiden, så jeg lavede tilgængelige PWM og analoge stifter let tilgængelige. Jeg markerede desuden det positive stik på begge batterier.

Trin 6: Kode

Jeg skrev et bibliotek og et eksempelprogram ved hjælp af mbed for en quadcopter, som du kan finde herinde. Mbed er meget hurtigere end Arduino, og den har mere hukommelse, så den kunne bruges til større quadcopter. Her tilpassede jeg alt til Arduino, plus brugte de tilgængelige biblioteker.

Læsning af batterispænding

Som referencepunkt bruger Arduino strømforsyningsspændingen, så hvis vi tilsluttede to modstande i serie mellem kraft og jord og læser spændingen i midten, ville det altid være konstant. Her bruger vi et tobatteri-system, således er der to metoder til at læse spændingen på motorbatteriet.

1) Vi kan altid holde batteriet, strømforsyning af elektronik opladet. Det betyder, at vi altid sikrer, at spændingen på den er omkring 4,2V. Denne fremgangsmåde vil kræve opladning af begge batterier hele tiden. Hvad ville der ske, hvis vi også ville overvåge elektronikbatteriet?

2) Brug interval spændingsreference. Dette er lig med 1,1V på Atmega328, men vi skal da sikre, at det, der er forbundet til A0, ikke går mere end 1,1V. Derfor har jeg tilføjet X kOhm modstand i serie med Y kOhm modstand for at skabe et potentielt splittet kredsløb. Koden til læsning og udjævning af batterispændingen er:

#define ALPHA 0.1 #define MULTIPLIER 6.67 float motorBatteri; void setup () {pinMode (A0, INPUT); analogReference (INTERN); // Indstil intern referencekilde for 1.1V // float tmp = analogRead (A0) / 1023.0 * MULTIPLIER; // lave enheder SpændingsmotorBatteri = 5,0; } tomgangssløjfe () {motorbatteri = glatbatteri (motorbatteri, analogreference (A0) / 1023,0 * multiplier, alpha); } float smoothBattery (float prevEntry, float newEntry, float alpha) {return (1-alpha) * prevEntry + alpha * newEntry; }

MPU6050

MPU6050 bibliotek er tilgængeligt af Jeff Rowberg 2012. Den medfølgende eksempels kode MPU6050_DMP6 bruges som hovedkode til projektet.

Hvis du har besluttet at bruge min ramme og motorer, har du sandsynligvis ikke brug for at ændre koden mere, da PID-controlleren allerede var indstillet til mere eller mindre god ydeevne. Men hvis du bruger en anden ramme, skal du indstille nye værdier for PID-controlleren. Det tager lidt tid, hvis du gør det for første gang.

Stabiliserende motorer

I styresystemerne er en PID-controller en meget populær måde at stabilisere systemet på. Her vil vi gerne stabilisere pitch og rulle af MPU6050. Jeg brugte biblioteket PID_v1 til dette formål. I koden nedenfor vil jeg opsætte begge motorer og PID controller. Jeg vil derefter tilføje en funktion til stabilisering af motoren afhængigt af den krævede hastighed.

#define FL_MOTOR 3 #define FR_MOTOR 9 #define BR_MOTOR 10 #define BL_MOTOR 11 // -------------------------------- -PID ------------------------------------ // Definer variabler vi forbinder til dobbelt rollSetpoint, rollInput, rollOutput; dobbelt pitchSetpoint, pitchInput, pitchOutput; // Definer de aggressive og konservative Tuning Parametre

dobbelt konspp = 1, consKi = 0,05, consKd = 0,25; PID pitchPID (& rollInput, & rollOutput, & rollSetpoint, consKp, consKi, consKd, DIRECT); PID rollPID (& pitchInput, & pitchOutput, & pitchSetpoint, consKp, consKi, consKd, DIRECT); void setup () {// ------------------------------ PID ------------ ---------------------- pitchInput = 0.0; rollInput = 0.0; pitchSetpoint = 0,0; rollSetpoint = 0,0; // drej PID på pitchPID.SetMode (AUTOMATISK); rollPID.SetMode (AUTOMATISK); pitchPID.SetOutputLimits (-20, 20); rollPID.SetOutputLimits (-20, 20); // ------------------------------------------------ ------------------- for (int i = 0; i <4; i ++) {targetSpeed ​​i = 0; } pinMode (FL_MOTOR, OUTPUT); pinMode (FR_MOTOR, OUTPUT); pinMode (BR_MOTOR, OUTPUT); pinMode (BL_MOTOR, OUTPUT); void loop () {pitchPID.Compute (); rollPID.Compute (); int actSpeed ​​4; stabilisere (targetSpeed, actSpeed, rollOutput, pitchOutput); // targetSpeed ​​= actSpeed; // skal dette være her eller ej} tomt stabilisere (int * currSpeed, int * actSpeed, float rollDiff, float pitchDiff) {// faktisk hastighed beregnes som følger + - halv rollDiff + - halv pitchDiff actSpeed ​​0 =) currSpeed ​​0 + (rollDiff / 2) - (pitchDiff / 2); actSpeed ​​1 = (int) currSpeed ​​1 + (rollDiff / 2) + (pitchDiff / 2); actSpeed ​​2 = (int) currSpeed ​​2 - (rollDiff / 2) + (pitchDiff / 2); actSpeed ​​3 = (int) currSpeed ​​3 - (rollDiff / 2) - (pitchDiff / 2); for (int i = 0; i <4; i ++) {hvis (actSpeed ​​i <0) actSpeed ​​i = 0; }} void runIndividual (int * actSpeed) {analogWrite (FL_MOTOR, actSpeed ​​0); analogWrite (FR_MOTOR, actSpeed ​​1); analogWrite (BR_MOTOR, actSpeed ​​2); analogWrite (BL_MOTOR, actSpeed ​​3); }

Bluetooth modul

Kommunikation fra quadcopteren til telefonen sker via HC-06 Bluetooth-modul. Det gode ved det er, at der ikke er behov for at hakke noget rundt, da modulet bruger seriel RS232 kommunikation til at snakke med Arduino, så du vil bruge den på samme måde som du ville Arduino Serial library. Til dette formål skal du bruge Arduino SoftwareSerial bibliotek. I koden nedenfor vil jeg sende den hastighed, der skal indstilles for alle motorer.

SoftwareSerial mySerial (7, 8); // RX, TX void setup () {mySerial.begin (9600); } void loop () {if (mySerial.available ()) {myReading = mySerial.parseInt (); for (int i = 0; i <4; i ++) {targetSpeed ​​i = myReading; } // spyling af noget, der ikke blev læst mens (mySerial.available ()) mySerial.read (); }}

Tilføjelse af bits sammen

Hvad angår hele koden, arbejder jeg altid på det, så jeg besluttede mig ikke for at tilføje det her. Du kan finde den nyeste version af kode i GitHub. Jeg vil underrette i denne vejledning, når koden er færdig. I øjeblikket skal jeg konfigurere korrekte PID-konstanter …