Tuesday 31 October 2017

Moving Gjennomsnittet Dspic


Evil Mad Scientist Laboratories Bruke et ADXL330 akselerometer med en AVR microcontroller Det siste tiåret har sett mer enn en størrelsesorden nedgang i prisen på akselerometre. enheter som kan måle fysisk akselerasjon (ofte i mer enn én retning). Historien antyder at når en brukbar teknologi gjør en fallende prisfall, følger uventede applikasjoner, og that8217s akkurat hva som har skjedd i dette tilfellet. Fra null og oppsummering akselerasjon, kan du bruke en akselerometer til å finne hastighet, og fra det avlede relativ posisjon informasjon. Ved å måle akselerasjonen på grunn av tyngdekraften kan man også bestemme retningen (teknisk tilbøyelighet) 8211 du kan fortelle hvilken vei det peker på. De er ganske nyttige ferdigheter for en brikke. Og så som bulkpriser for små tre-akse akselerometre i tre skalaer har begynt å nærme seg 5, har de begynt å dukke opp i alle typer massemarkedsapplikasjoner som du kanskje ikke har spådd: bærbare datamaskiner (for harddiskbeskyttelse), smarte telefoner og kameraer (for orientation8211 f. eks. portrett mot landskap på iPhone), kameraer for bildestabilisering, og ganske synlig i kontrollerne for Nintendo8217s Wii-system. Med alt dette løftet kan du tenke at en akselerometer er et vanskelig dyr å utnytte. Det viser seg ikke å være tilfelle. I dette lille prosjektet demystiserer vi det mektige akselerometeret og viser deg hvordan du skal begynne å spille med en. I ånden av hobbyistelektronikk gjør vi dette på den enkle måten8211 uten å designe en PCB eller til og med lodde noen overflatemonterte komponenter. Merk: En oppdatert versjon av denne artikkelen er nå tilgjengelig her. Prosjektet vårt består av to hovedelementer: akselerometerbrikken og en mikrokontroller som leser ut dataene og viser den. Let8217s første fokus på akselerometeret. We8217ll bruker ADXL330, som er et veldig populært lite XYZ akselerometer laget av Analog Devices. It8217 er faktisk samme chip som du vil finne som akselerometeret inne i Nintendo Wiimote-kontrolleren. Kjøpt en om gangen, på egen hånd, koster denne brikken ca 11,50 fra Digi-Key. og prisen går ned til ca 7,25 i stor mengde. (Hvis du er Nintendo, er prisen enda lavere.) En av ulempene til nye og fancy utstyr som disse er at de pleier å komme i uvanlige pakker. ADXL330 er bare tilgjengelig i en 16-pin LFCSP that8217s en plastpakke 4 mm x 4 mm, med pins som kan ses gjennom et godt forstørrelsesglass. Selv om det er vanskelig å jobbe med it8217s, er det faktisk en god løsning for å spille med dette: få et breakout bord. Dette breakoutbordet fra SparkFun leveres komplett med en ADXL330 akselerometer loddet på plass. De relevante tilkoblingene til brikken er brutt ut i en rekke med 0,18243 avstandshull (som jeg har fylt ut med en seks-pinners topptekst) og de tre følsomhetsakser av brikken er tydelig merket med lyse markeringer på silkscreen layer8211 en fin touch . Styret er Sparkfun SKU: SEN-00692. 35. Ja, det koster en god bit mer enn den bare brikken selv, men prisen er rettferdig og bekvemmelighetsfaktoren kan bli beat. (Hvis prisen virkelig er et problem, er det et potensielt alternativ å faktisk bruke Nintendo8217s kjøpekraft til din fordel: Demonter en wii nunchuk-kontroller (20) for å komme på samme akselerometer som lever i det. Du kan til og med skille Wiimote fra seg selv, hvis du kan få en god pris på enheten. Under alle omstendigheter vil det være mye vanskeligere å få tilkoblingene til brikken enn å kjøpe et anstendig breakoutkort.) Accelerometeret har faktisk et veldig enkelt analogt grensesnitt. Vi trenger bare å koble til fem pins på den. Først vil det kreve kraft. Den trenger 1,8-3,6 V (og bakken), og bare for å holde diskusjonen vår enkel, let8217s planer om å bruke 3V for everything8211 bruker enten en enkelt litiummyntecelle to alkaliske AA-celler i serie. Chipen har også tre analoge utganger8211 en for hver retning. På disse utgangene representerer 1,5 V (egentlig halvveis mellom kraft - og jordskinner) null akselerasjon, og avvik fra det, enten høyere eller lavere, representerer høyere eller lavere akselerasjoner. Brikken er følsom for akselerasjoner på - 3 g i hver retning. (Det er en sjette pin på breakoutbordet, som er for en selvtestfunksjon på ADXL330 som vi ikke skal bruke.) Deretter trenger vi en enkel mikrokontroller for å lese ut de analoge utgangene og behandle dem. We8217re bruker Atmel ATmega48, et medlem av ATMega4888168-serien av AVR mikrokontrollere. Hvis du er nybegynner for programmering AVR-mikrokontroller, har du et ekstra trinn og litt lesing å gjøre her. (Og som det viser seg, er dette faktisk et utmerket eksempel på et 8220first8221 mikrokontroller prosjekt for alle.) For å komme opp til fart, vennligst les LadyAda8217s opplæring. Som forklart i opplæringen, trenger du en AVR-programmerer (for eksempel USBtinyISP. 22) og en arbeidsinstallasjon av (gratis) AVR-programvareverktøyet. Nå kommer vi til å faktisk bygge opp maskinvaren. Det første trinnet er å bygge et enkelt målbrett for ATmega48 et brett hvor brikken kan programmeres. Som forklart i denne artikkelen, trenger vi en stikkontakt for AVR-en (28-pin 0.38243 DIP), en 6-pins DIL-header, en batteriholder (i dette tilfellet litiummyntecelle eller 2 X AA) og et stykke prototypingpennbrett å bygge alt på. Dessuten har vi også akselerometerbryterbordet selvfølgelig. Fra batteriet (venstre side) henger vi den positive ende til de angitte pinnene (Vcc, V) på mikrokontrolleren (3 steder), ISP-headeren og ADXL330-bryterbrettet. Den negative siden av batteriet er vår effektive bakke, og få kablet opp til bakken av mikrokontroller (2 steder), ISP-header og ADXL330-bryterbrettet. De fire resterende pinnene på ISP-kontakten (2 x 3-header) må også kobles til de tilsvarende pinnene på mikrokontrolleren: MOSI, MISO, SCK og RESET. Vi har hoppet over å tegne ledningene her for å holde diagrammet fra å se slik ut. Forhåpentligvis lærte du kobling-de-prikkene lenge før lodding. P Koble deretter utgangene på ADXL330-kortet til ADC-inngangene til mikrokontrolleren som vist. X-utgang til pin 28, Y til pin 27, Z til pin 26. Til slutt legger vi til noen indikatorer: to lysdioder (en rød, en blå) for hver av de tre aksene. Den store ideen er at når det ikke er akselerasjon i (si) X-aksens retning, er begge LEDene av. Når den oppdager akselerasjon på en måte, lyser den røde LED-lampen (og lyser opp, jo vanskeligere akselerasjonen er), og den lyser blå for akselerasjon i motsatt retning. (Naturligvis fungerer de andre to aksene på samme måte.) For å gjøre dette, utfører vi pulseringsmodulasjonen fra de tre timere (timer 0, timer 1 og timer 2) på mikrokontrolleren. Hver timer har to utganger, kalt 8220output sammenligne8221 pins A og B, som går til de to lysdiodene. De seks utgangene heter OC0A, OC0B, OC1A, OC1B, OC2A og OC2B, og er koblet til lysdiodene som vist i diagrammet. AVR kan direkte kjøre LED-er av enten farge, uten seriemotstand, når de drives av en litiummyntecelle. Det viser seg imidlertid at AVR ikke kan programmeres i kretsen hvis de røde lysdiodene er tilkoblet som vist, men uten seriemotstandene. (At8217s på grunn av forskjellen i LED-spenning for de to farger.) Hvis du bruker et alkalisk batteri til å kjøre denne kretsen, vil du kanskje sette en liten motstand (30 ohm) i serie med de blå lysdiodene også. To mindre detaljer, ikke vist i diagrammene. For det første er ADXL330 breakout board socketed8211 Jeg kuttet fra en dip-chipkontakt for å lage en holder til break-board-6-pinners topptekst, slik at det ikke må løses permanent til dette oppsettet. For det andre, la jeg til en liten strømbryter av batteriholderen som lar deg slå på eller av kretsen enkelt. Du kan laste ned firmwareprogrammet (C-kode) for AVR her (11 kB. ZIP-fil). It8217 er et veldig enkelt AVR-GCC program, lisensiert under GPL. Den leser i tre analoge innganger i rekkefølge, og lyser de seks displaydiodene avhengig av verdiene som den leser. Når you8217ve har fått AVR programmert, bør den være klar til å gå og vise utganger som avhenger av akselerasjonen. Når du svinger den rundt, selv fort, kan du se lysdiodene som reagerer på bevegelse i de forskjellige retningene. Hvis du ikke svinger brettet helt rundt, så ser du bare den steady-state gravitasjonsakselasjonen. Du kan kalle det en presisjonssensor, og det kan fortelle deg hvilken vei som er oppe. Hvis vi vipper styret til venstre eller høyre, slik at X-aksen nå peker litt opp eller ned (litt med eller litt mot tyngdekraften), kan du se X-aksel LED-paret, som er til venstre, bytt fra rødt til blå: Hvis vi i stedet vipper brettet frem og tilbake, slik at Y-aksen er langs eller mot tyngdekraften, ser du det samme for midtparet lysdioder: Til slutt er Z-indikatorparet til høyre blått til du setter styret opp og ned 8211 eller rist det opp og ned. Så det er det: en fungerende 8220Hello world8221 for en akselerometer, helt opp til blinkende lysdioder. Vår C-kode er bevisst enkel, og klar til å mod. Hva kan du gjøre med det Snart vil din lille homebrew robot8211 eller kanskje gigantisk ond dødsmaskin8211 kunne fortelle hvor langt det har vært, hvilken vei det står overfor, og hvilken vei er oppe. Vi tror at dette er en nyttig byggestein, og vi vil være interessert i å se hvilke andre nye ting folk bygger med den. Merk: En oppdatert versjon av denne artikkelen er nå tilgjengelig her. Post navigasjon God jobb, det er ikke så mange accelerometer grensesnitt artikler der ute. Jeg har et spørsmål, er dette akselerometeret i stand til å bli brukt til vibrasjonsmålinger. Du sier at hvis du svinger den rundt, så fort, kan du se lysdiodene som reagerer på bevegelse i de forskjellige retningene. Jeg jobber for tiden med å designe et system som registrerer hjulplattformer på jernbanevogner, og lurte på om et slikt system ville plukke opp en slik vibrasjonsavvikelse. Kan du beskrive mengden bevegelse som kreves for å skifte lysdiodene. En video av deg som rister systemet rundt (sakte, lett 8211 rask, hard) ville være fantastisk Du kan sikkert bruke akselerometeret for vibrasjonsmålinger. Det spesielle svaret på lysdiodene er veldig enkelt å endre, og hvis du vil, kan du gjøre displayet mye mer følsomt enn jeg har her. Utmerket, det er flott. Dette kan hjelpe meg i min uendelige søken etter stabilisert video fra en sykkelfeste. Er det noen måte å ta - 3V og kjøre en 6-12V lineær aktuator med rask jevn bevegelse Hvis ja, så kunne jeg kvitte seg med alle mine aluminiumsleilinger, fjærer, for kule. Takk at det sikkert kunne gjøres. Chip-utgangen er 0-3 V, forresten (eller - 1,5 V fra 1,5 V), ikke - 3 V. Hvilken type stasjon avhenger av hvilken type aktuator du bruker, men det virker ikke som en stor utfordring å gjør hva som helst slags nivåoversettelse og høytidsbuffer du trenger. Flott arbeid først alle. Ved I8217m jobber på mitt siste år prosjektet bruker DsPIC P30F6014A å lese i analoge utganger av adxl330 x, y, z pins. Jeg har få spørsmål om 1) Hva er den beste referansespenningen som kan velges for DsPic P30F6014A når du kobler adxl330 for å få bedre resultater 2) Outxpedansen av adxl330 er 32k, PIC amp Atmel prosessorer krever 10k eller mindre. Hvordan gikk du om dette Noen antyder å bruke OPAM ikke-invertering. Din hjelp er veldig verdsatt. Send meg e-post på keleisteinyahoo. co. uk 1) Bruk en spenningsreferansechip. TI lager en rekke gode, for eksempel. 2) Atmel-chipsene krever ikke 10k eller mindre, citerer de bare å anbefale det for raskeste respons, og i denne sammenheng er 32k ikke langt fra 10k i alle fall. for ditt tilfelle ser du ut til å ha brukt 3volts for din referansespenning. Tilkoblet du vref-til bakken Hva med å utlede 3volts ved hjelp av spenningsdeler, er det noen komplikasjoner Utmerkede ting Holde det opp Hei, takk for denne gode opplæringen. It8217s mitt første forsøk på en AVR, og jeg klarte å få det til å fungere (fantastisk), men can8217t finne en ting ut. Led8217s viser ingen forskjell mellom myk rysting og hard rysting. Ive har tidligere gjort et oppsett med en Arduino og Nunchuck (som til slutt er den samme maskinvaren som denne opplæringen, hvis jeg forstår godt) og det gir en veldig fin forskjell mellom myk og hard shaking. Skulle dette oppsettet også gjøre det, eller vil jeg kunne ikke ha erfaring i C, så har jeg det vanskelig å prøve å forstå og omkonfigurere skriptet, så noen ledetråder til hvor du skal se og hvordan du kan endre hvilken del av koden som ville bli mye verdsatt. Også et annet spørsmål, ville det være et problem å kjøre dette på 4,5 V eller mer I8217d liker å få mer lys ut av det. Mange takk Når du bygger riktig, bør dette prosjektet gi jevn skifting LED output8211 kan oppdage og vise små vinkler. Hei, takk for svaret ditt. Jeg didn8217t betyr at overgangen ikke er jevn 8211 lysstyrken endres veldig jevnt når vi tipper enheten, hvilken styrke jeg også kunne endre i koden med (opprinnelig) 2 multiplikatoren. Det jeg mente, er imidlertid akselerasjon, i stedet for tilt. Hvis jeg plutselig beveger enheten rett opp, gir den en rask flimmer, noe som alltid er det samme, hvor som i Arduino-oppsettet blir det plutselige oppdraget merket mye mer detaljert, og det er en forskjell i lysstyrkenivå med oppadgående bevegelser av annen intensitet. Jeg håper I8217m blir klart Høres ut som en programvareforskjell. Dette programmet gir sanntidsutgang, uten gjennomsnitt eller utjevning. Se på algoritmen som brukes i den andre, hvis du vil gjenskape den atferden. quotArduinoquot er ikke veldig forskjellig fra quotAVRquot 8212 samme kode vil kjøre på denne prosessoren om du gir den et nytt merkenavn eller ikke. hei jeg jobber med ADXL 330 for å overvåke menneskeaktiviteten. VENNLIGST HJELP AV Å gi IDEA OM HÅRVARE DETALJER peterece1987yahoo hei venner jeg har spørsmål, kan jeg måle avstand fra ett punkt til sluttpunkt ved ADXL330 hvis svaret ditt ja. hvordan kan jeg gjøre jeg integrere to ganger fra Accelaration, vennligst hjelp meg8230 Jeg ville denne modulen i ubåt for å måle distance8230 I8217m ser på å intigrating adxl330-brikken i mitt L3-universitetsprosjekt. Det jeg trenger å vite er at chippen kan fornemme når den snurras rundt om dagen, det er flatt på en overflate og twistedturned som om det var en sving i midten av brikken. Jeg håper denne forklaringen er fornuftig :) Nei. Det du leter etter er kalt en kvotert gyroquot-chip. En del av prosjektet mitt involverte å bruke akselerometeret for å koble til PIC16f877 slik at vi kan lese acceleratio for 3-akse (X, Y og Z) fra PIC16f877 til PC. hvis du har koden til å lese dataene jeg ville være veldig glad hvis det vil være i stand til å sende meg koden og også hvis du har kretsen av forbindelsen bilde til adxl330. Dette er mest interessant. Kjenner du oppløsningsverdiene for de forskjellige acc-sjetongene som er tilgjengelige. Hvis man skulle bruke 1 vs 10 vs 50 chips i en matrise, kan du øke oppløsningen (nøyaktighet) av avlesningene. Jeg er interessert i å måle tyngdekraften i høy grad, kanskje 10-8 av 1G, typisk for tyngdekraftsmålere. IPhone bruker en ST LIS331DL-chip: -2g, men hvis jeg leser spesifikasjonene riktig, har den bare 8 bits så at8217s 128 deler per 1g, ikke en god oppløsning. Hvis jeg leser det så ille, så kan det ta lastebillastning for å komme ned til det jeg leter etter. Er det noe mer nøyaktig gtDu vet at oppløsningsverdiene for de forskjellige acc-chipsene er tilgjengelige. Sensorene er analoge. Bitoppløsningene som vi diskuterer er interne til mikrokontrolleren og er ikke relatert til sensorutgangene. Hii Takk for gode artikler om akselerometre for nybegynnere. Vel, det er et problem jeg vil diskutere. Er det mulig å merke lesingen av et punkt for eksempel (x6, y5 og z2) gjennom et akselerometer. Egentlig jobber jeg med et prosjekt der en robot kan merke lesingen av et punkt og lagre det i mikrokontrolleren og da kan det besøke punktet igjen når det er befalt. Enhver veiledning om dette vil virkelig hjelpe meg. Takk Med mindre du hadde noe veldig sterkt tyngdekraftsdannende materiale ved opprinnelsen til denne plottet, ville denne spesifikke brikken kunne fortelle deg hvor et punkt i rommet er. Det kan fortelle hvilken vei i alle tre dimensjonene brikken skråner, men den kan ikke gi deg relative avstander fra en opprinnelse. Vel, jeg tar det tilbake. I den aller første delen av artikkelen diskuteres det at du kan beregne hastighet og deretter avstand basert på akselerasjon, men jeg ville ikke kalle det quoteasyquot å gjøre i en liten robot, IMHO. Så er det noen måte at vi kan få koordinatene til et punkt i rommet. Selv om plassen blir begrenset som (-10 til 0 til 10). Eller er det noen annen sensor eller kanskje noen logikk av algoritmen som kan programmeres inn i kontrolleren. For det andre kan jeg ikke finne ut det ovennevnte C-programmet for AVR-kontrolleren. Jeg tror jeg er litt svak i C-kontroller programmering. så kan du bare dele oss trinnvis logikken som er brukt i programmet, slik at jeg kan programmere den til PIC eller 8051 i samling. amp Takk for hjelpen din. SitSo er det noen måte at vi kan få koordinatene til et punkt i spacequot. Det korte svaret (igjen): Nei. Selv om plassen blir begrenset som (-10 til 0 til 10). Eller er det noen annen sensor eller kanskje noen logikk av algoritmen som kan programmeres i controller. quot Hvis du har en robot som er programmert til å flytte til et bestemt sted, og deretter flytte til et annet punkt basert bare på koordinater, alt du trenger å gjøre er å holde oversikt over koordinatene til hvor du starter, og deretter flytte til der du vil gå. Hvis you8217re på 0,0, og ønsker å flytte til 2,0, programmerer du boten til å flytte til 2,0, og så lagrer det faktum at it8217 er på 2,0. For å flytte til -5, -8, ville boten måtte flytte -7 enheter X og -8 enheter Y. Gjenta ad infinitum. Du kan ikke bruke et akselerometer for å finne ut hvor du er på nettverket. Du følger bare med på det når du går (på grunnnivå) Takk for ditt svar. Jeg har det denne gangen, Kan du vær så snill å forenkle det ovennevnte programmet laget i C. Jeg mener at du bare forteller oss logikken bak dette programmet. Vel, jeg tror er at akselerometeret gir en puls hver gang den vipper i hvilken som helst retning. Så kontrolleren er programmert slik at når akselerometerene leses høyt, sender de en puls til led8217s. Har jeg rett, og hvordan programmerer du den for at den sterke ledningen blinker, slik at når accelerometeret er tiltet kraftig, led8217s også lyser opp sterkt. I8217m ikke sikker på hvordan du skal svare på dette. Du sier, det er mulig å merke lesingen av et punkt for eksempel (x6, y5 og z2) gjennom en akselerometer. Quot akselerometeret leser akselerasjon 8212 ikke quotpointsquot uansett hva de er. Hvis du mener, quotcan en akselerometer måle hvor i rommet det er. Svaret er ganske enkelt quotno. quot Jeg var nysgjerrig på dette også, da jeg bygger et lignende prosjekt. Jeg ser at du hadde merket mikroprosessoren med tre inngangspinner og tre utgangspinner, for å representere X-, Y - og Z-planene på det ene akselerometeret. Men jeg så også merkede pins. Er det flere inngangspinner og utgangsspinner som kan håndtere flere akselerometerbrikker Hvis ikke, er det en annen mikroprosessor som kan Eventuelle råd du kan gi på dette vil bli verdsatt. gt8230you hadde merket mikroprosessoren med tre inngangspinner og tre utgangspinner, gtto representerer x-, y - og z-planene for det ene akselerometeret. X-, Y - og Z-merkene er bare på akselerometerutgangene, ikke på mikrokontrollerinngangene. Men jeg så også merkede pins. Er det flere inngangspinner og utgangsspinner som kan greie flere akselerometerpiller Hvis ikke, er det en annen mikroprosessor som kan ikke være sikker på hvorfor du8217d vil ha utgangsspinner for dette. Det er seks analoge innganger på denne spesielle AVR, slik at du kan lese ut hele utgangen av to akselerometre. Andre AVRer, og andre mikrocontroller-typer også, noen ganger har flere eller færre analoge innganger. Vil du være kjent med en bestemt modell som har 15 (eller flere) innganger 8211 til å håndtere 5 akselerometre Takk igjen for innspillingen din. Dette har hjulpet enormt. Du kan se på xmega-sjetongene, noen av dem har opptil 16 akselerometre. Vi skrev nylig om dem her. Last ned MPLAB IDE Hva er MPLAB IDE MPLAB er et integrert utviklingsmiljø (IDE) som er gratis. integrert verktøysett for utvikling av innebygde applikasjoner som bruker Microchip8217s PIC og dsPIC mikrokontrollere. MPLAB IDE kjører som en 32-biters applikasjon på MS Windows, er enkel å bruke og inneholder en rekke gratis programvarekomponenter for rask applikasjonsutvikling og superladet feilsøking. MPLAB IDE fungerer også som et enkelt, enhetlig grafisk brukergrensesnitt for ekstra Microchip og tredjeparts programvare og maskinvareutviklingsverktøy. Flytte mellom verktøy er et snap, og oppgradering fra gratis programvare simulator til maskinvare feilsøking og programmeringsverktøy er gjort i et blunk fordi MPLAB IDE har samme brukergrensesnitt for alle verktøy. Merk: Kompilatoren vil være nødvendig for å installere etter installasjonen, opptil hvilken språkkompiler som c, montering du installerer og hvilken familie mikrochip mikrokontrollere som 12f, 18f, 32f Microchip mplab v8 er i bruk. Slik bruker du MPLAB IDE Last ned MPLAB IDE. og bruk veiledningen i MPLAB IDE brukerhåndboken nederst på denne siden for å utforske hvor enkelt det er å lage et program. Skriv samlingskode, bygg og monter prosjektet med MPLAB8217s veivisere, og test deretter koden din med den innebygde simulatoren og debuggeren. Når du er klar til å teste ditt eget program, velger du en av våre billige debuggerprogrammerere for å programmere en enhet og analysere maskinvaren din. Støttekode i C Velg MPLAB C Compilers, de svært optimaliserte kompilatørene for PIC18-serien mikrokontrollere, høyytelses PIC24 MCUer, dsPIC digitale signalstyrere og PIC32MX MCUer. Eller bruk en av de mange produktene fra leverandører av tredjeparts språkverktøy. Mest integrert i MPLAB IDE for å fungere gjennomsiktig fra MPLAB prosjektleder, redaktør og debugger. MPLAB IDE-funksjoner: MPLAB C-kompilatorer (gratis studentutgaver tilgjengelig for nedlasting) MPLAB REAL ICE-kredsløbsemulator MPLAB ICD 2 og MPLAB ICD 3 kretsløpere og ingeniørprogrammerere for utvalgte Flash-enheter PICkit 2 og PICkit 3 Debug Express-økonomibildeprogrammerere PICSTART Pluss utviklingsprogrammerer MPLAB PM3 enhetsprogrammer Tredjepartsverktøy. inkludert HI-TECH, IAR, Byte Craft, B. Knudsen, CCS, Micrium, microEngineering Labs, Labcenter, MATLAB, Segger. En rekke billige startkort, demonstrasjons - og evalueringssett. Fullstendig integrert feilsøking med høyre museklikkmenyer for breakpoints, spor og redigeringsfunksjoner Tabbed editor-alternativ eller separate kildevinduer Opptakbare makroer Kontekstsensitiv fargeutheving for montering, C og BASIC-kodelesbarhet Mus over variabel for å umiddelbart evaluere innholdet i variabler og registre Angi breakpoints og tracepoints direkte i editoren for å umiddelbart gjøre endringer og evaluere deres effekter Grafisk prosjektleder Versjonskontrollstøtte for MS Source Safe, CVS, PVCS, Subversion Programmerer tekstredigerer MPLAB SIM. høyhastighets programvare simulator for PIC og dsPIC enheter med perifere simulering, kompleks stimulus injeksjon og register logging Fullfunksjons debugger MPASM og MPLINK for PIC MCUer og dsPIC DSC enheter HI-TECH C PRO for PIC101216 MCU Familier som kjører i lite modus CCS PCB C Compiler Labcenter Elektronikk Proteus VSM kryddersimulator Mange kraftige plugins inkludert AN851 Bootloader programmerer AN901 BLDC Motorstyringsgrensesnitt AN908 ACIM Tuning-grensesnitt KeeLoq supportNRF24L01 virkelighetsområde test I dag jobbet jeg med et prosjekt ved hjelp av NRF24L01-brikkesett og bestemte meg for å verifisere testområdet for denne lille enhet som du kan kjøpe som en pause på ebay. Jeg kjøpte et par for noen tid siden og kjøpte nylig en annen til mine nye prosjekter. Modulene er forskjellige, men har samme pinout, så det er enkelt å endre dem for testing. Begge modulene er ny versjon, NRF24L01 og ikke den gamle versjonen NRF24L01. Den nye versjonen er i stand til å gjøre 250KBPS lav hastighet og den gamle ikke. Den nyeste er svart på venstre side av bildet, virker bedre kvalitet og litt kortere. Så jeg prøvde dette først på to Arduino drevet av lipobatteri. Første Arduino fungere som klient sende nyttelast (8 byte) med ACK aktivert. Den andre Arduino viser bare nyttelastet som mottas, men send ikke tilbake noe (unntatt ACK, men modulen gjør dette i maskinvare, så ingenting å gjøre execpt aktivere denne modusen). Så gikk jeg ut i et rent område. Etterlater mottakeren på et tidspunkt og begynner å bevege seg med klienten i hånden min til den begynte å vise at den mistet ACK på OLED-skjermen. Ganske overrasket, Det begynte å miste ACK fra ca 30 meter og modulleverandører hevder at det fungerer til 100 meter. Vel som vanlig i IT, nådde teoretisk ytelse aldri. Så jeg bestemte meg for å prøve med 2. modulene (den grønne på høyre side av bildet). Det var bedre jeg succeded å gå for ca 50 meter. Det dårlige er at jeg ikke husker hvor jeg kjøpte disse modulene, skam på meg. Denne konklusjonen sier at hver modul ikke har samme rekkevidde og ytelse. Hvis du kan velge, ta den grønne, ca 30 bedre, bare godt å vite. For å teste videre bestemte jeg meg for å kjøpe de samme modulene med antenne, så jeg kan se rekkeviddeforskjellen. Og jeg kjøpte også de nye modulene med Power Amplifier og Noise Suppression (PA-LNA) som hevdet rekkevidde til 1KM, wooooh, må teste det. Rediger 8. september. Jeg lyktes til å forbedre rekkevidden med en nyttelaststørrelse på ca 8 byte (jeg hadde 12 før), dette ga meg 80 meter i friluftsliv, I8217m ganske fornøyd med dette spekteret. Dette er veldig interessant at lavere nyttelaststørrelse høyere rekkevidde, men det gir sanser. Så hvis du trenger rekkevidde og flere data å sende, kan ideen sende to pakker, hvis strøm ikke er et problem selvsagt. Forresten, i hus med vegger eller andre vil redusere rekkevidden. Rediger av 12. september. Jeg mottok de nye modulene. Opphisset, så jeg plugget dem inn på testkortene mine, legg en lipo på brett og gi den opp. NRF24L01-antennemodulen ga meg gode resultater i huset, ikke mer 8220dead zone8221 og testing utenfor gjorde meg også gode resultater. Men veien min er nå ikke nok 8220long8221 til å gjøre ekte tester i friluft, jeg kan ha mer enn 100 meter i åpen utsikt, så det går langt fra 100 meter, og andre hus er på vei og testen er annerledes. Jeg må finne en stort felt rundt for testing av friluft -). Jeg vil oppdatere dette innlegget så snart jeg har testet. Her er bildet av modulene under, jeg vil gjøre mer test med dem og fortsette å blogge på den. Post navigasjon Hei Charles, takk for at du har delte med full informasjon. Jeg er i tvil, jeg jobbet med nrf24l01 modul som fungerer fint. Nylig kjøpte jeg nrf24l01 pa lna langdistansemoduler, vil disse modulene fungere med samme nrf24l01-kode eller eventuelle endringer jeg trenger å gjøre i koden når jeg prøvde pa lna-moduler med samme kode det fungerte, men avstanden er ikke engang 5mtrs, jeg var overrasket med dette området som det antar å gi 1000mts i åpent område. Tilgi meg for min engelsk. Ja, koden er den samme for PA LNA, for eksempel kontakten. I8217 har gjort noen test med alle de forskjellige modulene, og det jeg merket så langt er at modulen med integrert antenne på PCB kan nå ca 50 meter, modulene med eksterne antennestenger, jeg kan oppnå ca 150 meter uten noe problem, min andre overraskelse (dårlig) var PA LNA, det var ca 250 meter, så fra min synsvinkel, bruk modulene med ekstern antenne, det er den beste priceistance. Jeg ville være glad hvis noen kan bekrefte mine tester, det burde være veldig interessant å se andre brukere reell avstand. For mine tester brukte jeg nyttelast på 2 byte ved 250KBPS-hastighet, i utendørs, rent, rent område. Takk for svaret Charles, jeg gjorde en test i Indore med nrf24l01 med ut antennemodul, med en betongvegg i mellom, nådde det 8 8211 10mtrs uten tap av tap. Jeg vil svare med åpen område test med på en dag eller 2. Jeg skjønner nrf24l01palna vil gi meg minst 30mtrs i Indore, men ingen suksess. Hei Charles I dag har jeg utført åpen område test med nrf24l01 modul med integrert antenne, fikk 45 til 50mtr med rundt 5 pakke tap under flytting. hvis jeg ikke beveger meg og vender mot mottakeren, så er det ikke noe tap av pakken. Jeg kan ikke finne denne modulen med ekstern antenne i mitt land. Ja, jeg har akkurat de samme resultatene, høres bra ut og er riktig hvis vi har begge de samme. Takk for hodet oppe. I8217m lurer på om kutte PCB-antennen og erstatte den med liten ledningsant antenne, kunne forbedre rekkevidden, nå som jeg har testkort og fastvarefil hallard. mearduiled Jeg vil prøve å gjøre mer testing. Tro at den grønne versjonen har 10 pins (inkludert 2VCC amp 2 GND i stedet for 1) så må vi forsyne strømmen til begge pinner eller bare 1 Godt poeng, jeg tok et bilde fra ebay-leverandøren og la ikke merke til det. Den jeg egentlig har har ikke 10 pins, men 8 så det kom ikke til meg. Men ser bildet jeg kan se at de 2 nye pinnene er for gnd, men sannsynligvis ikke obligatorisk å koble dem, siden GND allerede er til stede. Jeg tror det beste svaret kunne være, 8220testing8221 Jeg har testet begge modulene, den svarte og den grønne, og funnet den grønne modulen (med 8216question mark8217 PCB-antennen, i motsetning til 8216zig zag8217 PCB-antennen) for å være mye mer pålitelig. Faktisk fant jeg det nesten umulig å få noen pålitelige pakker i det hele tatt gjennom de svarte modulene. Innendørs rekkevidde for den grønne modulen er imidlertid ganske begrenset (lt5 meter) og ganske følsom for posisjon. Jeg ville gjerne vite om å feste en ledningsantenn til PCB ville forbedre rekkevidden. Og i så fall er det beste resultatet ved sendingen, eller på mottakersiden Hvis jeg finner noe fra mine tester, vil jeg legge dem inn her. Nøyaktig, den grønne modulen er langt bedre, men I8217m virkelig overrasket over 5M innendørs rekkevidde, I8217ve har mer enn dette. Hvilken hastighet bruker du og hva er din spillelastestørrelse for overføringer? Jeg har ikke testet ennå med loddetråd i stedet for PCB-antenne. Takk for denne informasjonen, det er veldig nyttig. Hva ville effekten på intervallet være hvis en 24l01-modul med en antenne brukes på masterenheten, og det brukes vanlige 24l01-moduler (uten antenne) på slaveenhetene. Har du gjort noen tester ved hjelp av denne konfigurasjonen, vil rekkevidden øke eller må slaveenheter bruker også modulen som inneholder en antenne for merkbare resultater. I mitt tilfelle vil slaveenhetene sende data til master-enheten mesteparten av tiden. Hvis rekkevidden er effektiv, kan dette redusere kostnadene enda mer. Jeg vil gjerne vite om det ville fungere før jeg bestemmer hvilke moduler som skal kjøpes. Thanks and kind regards Yes I8217ve done this kind of test (but very quickly so this information could not be accurate) and as far as I remember what I noticed was: For example, let admin simple module No Antenna get 100 range. Receiver And Emitter with Antenna get about 200 range (so twice of no antenna) the best choice. Receiver with antenna and Emitter without antenna get about 130 range (so 30 on increasing distance) Receiver without antenna and Emitter with antenna get about 130 range (so 30 on increasing distance) So we can conclude that one antenna increase range, whatever on the Emitter or Transmitter If someone done same tests, I8217d like to share. I also have both the black and green styles of nRF24l01 transceivers, and have had similar issues where the green seems to be a bit more reliable. My bigger problem with testing these isn8217t how far they reach, but how close they can get without failing. While testing I have to have one on my desk, and the other in another room on a long cable. If they are too close to each other they don8217t work. Another proximity problem is with all of the other 2.4Ghz transmitters in the area, including my neighbors houses. One of my testing schemes was to have the remote transmitter on the other end of my house, and use a bluetooth serial transmitter to get the feedback from the nRF24l01 at that end. Oops The bluetooth transmitter interfered with the nRF until I put it on a long cable about 5 feet away. The WIFI router at the end of my desk also interferes with this, as does my neighbors. I have to be picky about channel selection so I don8217t get stomped on by the WIFI routers using the same basic frequencies. The scanner example is quite illuminating, and goes pretty well with a testing app I8217ve used for WIFI signal strength on my tablet. It is a challenge testing when discovering that there are a lot more 2.4Ghz signals floating around than just what the nRF24l01 is transmitting. And that all the other devices interfere with what I8217m trying to receive. Distance-wise I have found that the green transceivers are good for about 100 feet through the walls of my house, and the black for about 70 feet. FYI 8211 I got both styles through EBay. Thank you for your comment, I just discovered the site you are talking about, this is a great site for buyers like me, I think I Will order soon Correct on 10 pins modules the wiring is different and I was not aware of that. The adapter seems the good solution and quite cheap. Let us Know of this module has better range than the others. Could be interesting. I wanted to build a project and I have found on the website the item 8220MK NRF24L01 SI24R01 power enhanced version 2.4G wireless module8221 ( wayengineerindex. phpmainpageproductinfo038cPath7580038productsid3442 ). Any idea what MK stands for And SI24R01 I couldn8217t reach much through the web however. Is it the same one you got, the black, supposedly longer range one And if that8217s the case, how different is it from this one wayengineerindex. phpmainpageproductinfo038cPath7580038productsid865 Idea is they have so many choices and I am looking for low power, high range and most probably available in high volume. Could you direct me from you ordered from Thanks for the post and your comments by the way, it answered a lot of the questions I had. Humm, it seems that the 1st module you describe is the new one, I was not aware that there was new model. I do not know the difference but seems to need take care to drive it. May be you can achieve more distance with it, need to be tested. So as special 8220driving8221 is needed I suggest you use the 2nd one, that way you will be sure that existing libraries are working well. May be testing the 2nd then when all is working try with the 1st one to test if it continue to work. Sure that is the way I will process if I need to test the 1st one. very interesting post. I8217m also testing the range of the black modules at this moment and at the beginning I had many problems with lost packages. This is solved now, but the maximum distance seems to be only about 5m, which is pretty sad8230 Any idea, what might be the problem Would it be possible, that you post the full code I just ordered four green versions and hope to get better results. I also have some modules with an external antenna. In the end I want to have one module with external antenna working as a receiver and four small modules in a range of 50m around it Thanks in advance Best regards Andreas Andreas, What is important is also the size of the payload and the speed. I was able to reach 50 meter with speed about 250kbps with a payload of 8 bytes. I Will post my test code size if you want, no problem. Charles we can use wire to increase range. Le message que je viens de post est une erreur li la vrification. Merci pour la reponse. Sinon pour les questions j8217utilise la library que tu as propos et pour le hardware j8217ai essay sur le uno et le mini pro, mais le problme doit venir de l8217ide(1.0.5 et 1.5.6), vue que lors de la verification j8217ai dj les messages d8217erreur. J8217ai essay les autres codes propos en exemples(de la mme library) et ils fonctionnent sans problme. Je pense que le problme viens de moi, j8217ai l8217impression que code n8217est pas fait pour tre juste copi coll, on est surement sens complter avec les paramtres basiques, comme dj inclure la library, nn. Je connaissais rien en programmation avant de commencer la semaine avec l8217arduino donc je suis un peut dpass sur ce coup. Ce type de module peu utiliser des intermdiaires. Par exemple, les esclaves(avec des nRF24L01 de courte distance) envoient des donns au matre et qui une fois regroup envoi un autre nRF24L01(de longue distance) beaucoup plus loin qui est reli a un raspberry par exemple et permet donc de lire les donnes sur un ordi de bureau. Avec la mme ide, c8217est possible d8217utiliser un module qu8217on planque a mi-chemin pour augmenter la distance Tu utilises la librairie que je propose mais laquelle. celle dans le repo pour Arduino ou celle du Rasberry. Parce que rien que pour celle du raspberry tu as 2 versions (nrf24-bcm) qui est la mienne et une autre de Stanley (je sais c8217est le bronx ce repo mais je l8217ai fork j8217ai pas eu la main sur sa structure). Oui le code doit tre modifi a minima pour le 8220pining8221 de comment est branch ton NRF24, les parametres de com doivent aussi tre les mmes de tous les cots pour que a fonctionne. Je te conseille dans un premier temps de faire fonctionner entre 2 arduinos (ou 2 raspberry) histoire que voir que tout est ok dj. ensuite passe un Arduino 1 Raspberry. Pour rpondre ta question, oui c8217est tout a fait possible de faire un 8220relais8221, je te conseille l8217article de manicbug. c8217est le crateur d8217origine de la librairie pour Arduino Hi Charles and thank you a lot due to your effort on running real life test for nordic RF modules. if you really want to experience the maximum range you should consider tips below: pages 58,59 from datasheet saying that: note that if 8220payload bytes are set more than 15 bytes8221 and 8220Speed set to 2Mbps8221 ARD(Auto Retransmition Delay) should be 500uS or more note that if 8220payload bytes are set more than 5 bytes8221 and 8220Speed set to 1Mbps8221 ARD(Auto Retransmition Delay) should be 500uS or more note that if 8220Speed set to 250Kbps8221 ARD(Auto Retransmition Delay) should be 500uS or more even when the payload is not in acknowledge mode That way you can take the advantage of long range with 250Kbps which is still very high speed. I hope this could be used as a small contribution in paving the way of Radio Frequency Projects. Hi Iman, thanks for the tip, it could help for sure. For my projects I now use RFM12B and RFM69 so there is a long time now I8217ve not played with NRF modules. Charles hi I am working on nrf24l01. I am using atmega32 controller on both side. I got data at receiver side but it take too much time receive. Plz help me to solve this problem. Hi Anny, have you first checked the status and config registers this is the first step. then you have to check whether the payload has the true data in receiver or not after that it might be a good idea to consider this important tip: 8220even when you8217re writing code for Transmitter, you should consider setting both RXADDR0 and TXADDR for it8221 but for receiver it8217s only sufficient to set the RXADDR0. RXADDR0 is and example of using pipe0 you can change it to RXADDRn which n can vary from 0 to 5 but both Transmitter amp Receiver should have the same ADDRESS(e. g 0x12 0x12 0x12 0x12 0x12 which are 5 bytes array pointed to ADDRESS) also my region of interest is here: 1)POWER ELECTRONICS 2)Image Processing 3)C Visual Studio Design 4)C and C embedded programming 5)PIC, dsPIC, AVR 6)Control Designs 7)Mathematics and Physics if you had any problem in the subjects above, I would be glad if I could help the only way you will get longer range is setting baud rate way lower8230 you need to go down to 9600 bps (maximum value), 1200 or even lower8230 with this baud rates you will get way more than 200-300 meters8230 (I used to get 150 mtrs easily with tucws 433 rxamptx at those baud rates) Hello Charles i have the black nrf24l01 module without the antenna on it and i did a range test line of sight i got 220 ft range i couldn8217t test no more because buildings was in the way i did a youtube vide o youtubewatchvT83wWl5V6lE indoors in my apartment i got 50 ft in one direction and 60 ft from the bedroom to the hallway through brick and doors but that8217s all i just did a pin test using a blink led to see the range of it. i just order the one with the external antenna and higher range from what i have seen they should do a better range test. i post a update when ready. Hi Joseph, Thank you very much for your head up. Excellent video by the way I appreciate your share there and your interest for these modules. I8217m excited to see your new tests. Charles I use the integrated antenna Black modules, and found that range was GREATLY effected by orientation (as with most RF products). I found the best range was obtained by orienting them so that the resonator was up and the - pins were bottom, AND that the copper face antennae from each module are facing each other. Test done with sending 1 Character, I get about 40m max through light garden bushes from my house window 1Mbps. I can8217t get my NRF24L01 to set to 250Kbps, would be great if anyone could help with that Hi Peter, Thank you for the tip, I8217m sure it will help some of us Are you sure you got one 82208221 version. Because 250KBPS are available only on these modules if I remember correctly. May be it could be why. If you want to learn what you can do with this puppy please visit: mysensors. org The MySensors Arduino library is easy to use and allows relaying of messages to increase the range of your sensors. During the last year the MySensors forum has gathered much valuable information on how to use the NRF24L01 optimally. Thanks for posting this information, very useful read. I have a question which has been mentioned before back 2013, but wondering if you have made any further tests in this area. I am interested in the approximate range if the Master is a PALNA module and the a Slave is a basic cheap PCB antenna module, then used in uni-directional mode with the ACKnowldge function turned off. If you have any ideas of approximate range (open air) I have some on order from China so will be making the tests myself but curious if this is something you have an idea on. Hi Ant, Thank for your comment. Well I8217m not using these modules anymore, I switched over RFM69 so I do not have test boards on hands. But as far as I remember I tested this configuration, and I obtained about 10 better range than with no PALNA. Seems close to the less performance module which makes sense. Of course both with PALNA was far better (and most expensive) I8217ve seen analyses that suggest that the noise floor is often the limiting factor for the nRF24L01 modules, and that the PALNA variation gains you very little in terms of reception, tho it does substantially increase transmission. (ie: The PA really helps transmission, but the LNA doesn8217t help reception much because it8217s more noise limited). However the external antenna (with or without PALNA) does give you some gain for both reception and transmission, at least when the target is closer to right angles with the axis of the external antenna (do NOT point the external antenna at the other unit, that8217s the worst direction). What this means: You get good advantage going from a PALNA unit to a plain (PCB antenna) unit, but much less improvement for sending from plan to PALNA. If you are sending with ACK (which makes it bidirectional) then the latter direction is your limiting factor 8211 either the main packet or the ACK is going to drop out first with increasing distance. And from PALNA to PALNA gets major range increase (taking advantage of the PA both ways, as well as the antennas). The other factor is the power supply 8211 most of the units from China are very sensitive to even small amounts of noise on the power supply. That can vary from no reception at all, to reduced range. A cap across the power supply leads helps.

No comments:

Post a Comment