Meshtastic är ett mesh-protokoll som använder LoRa-teknik. Det är särskilt utformat för vandrare, backpackers, cyklister och andra friluftsentusiaster för att hjälpa dem att hålla kontakten utan mobilnät. Meshtastic-enheter bildar ett tillfälligt, självorganiserande ad-hoc-meshnätverk där varje enhet både sänder och tar emot, vilket möjliggör kommunikation över stora områden utan centraliserad infrastruktur.
Meshtastic-enheter använder LoRa-teknik för långdistanskommunikation med låg strömförbrukning. Det gör dem mycket lämpliga för camping- och vandringsscenarier där det kanske inte finns mobiltäckning. Meshtastic-enheter kan skicka textmeddelanden, GPS-positioner och annan information mellan enheter i nätverket.
Meshtastic-enheter kan konfigureras och hanteras via en mobilapp eller ett datorprogram. Användare kan skapa sina egna nätverk, tilldela enhetsroller och skicka meddelanden mellan enheter i nätverket. Meshtastic är ett open source-projekt och communityn utvecklar kontinuerligt nya funktioner och förbättringar.
Jag har installerat Meshtastic med onlineverktyget, och jag har också installerat det via VS Code och PlatformIO.
Kompilera och ladda upp Meshtastic-koden till enheten med PlatformIO
Den slutliga versionen verkar vara den här:
https://github.com/meshtastic/firmware/releases/tag/v2.7.15.567b8ea
Metoden nedan bygger på att jag redan har installerat git och platform-io.
Windows Power Shell:
Så du behöver byta till valfri katalog där du vill skapa projektet. Katalognamnet får inte innehålla mellanslag.
cd c:\temp\platformio\
Sedan behöver du klona repot från GitHub där Meshtastic-koden finns. Adressen är:
git clone https://github.com/meshtastic/firmware.git
cd firmware
git submodule update --init
git pull --recurse-submodules
Sedan öppnar jag VS Code,
Jag öppnar mappen.
c:\temp\platformio\firmware
Sedan behöver du öppna projektet i PlatformIO och därefter bara kompilera och ladda ner det till enheten.
Jag väntar tills PlatformIO känner igen enheten, och sedan kompilerar jag bara och laddar den till enheten.
Jag vet inte varför jag måste köra git add . även om jag inte har ändrat något, men utan det låter den mig inte byta branch. Så:
git add .
Sedan:
git commit -m "no changes"
Jag såg på webbplatsen att versionsnumret för den stabila versionen är följande:
stable version
v2.7.15.567b8ea
Så efter det:
git checkout v2.7.15.567b8ea
Sedan kompilerar jag bara och laddar upp den till enheten.
det fungerar tillsammans med PlatformIO, och längst ner i VS Code-fönstret finns en bock och en ->-symbol
Kompilera Meshtastic-koden och ladda ner den till din enhet med onlineverktyget
https://flasher.meshtastic.org/
Jag tog ett foto på mitt hobbybord: till höger finns en liten låda med många komponenter: transistorer, Arduinos, sensorer, lysdioder, potentiometrar, tryckknappar, kablar, chips, förstärkare, kondensatorer och andra småsaker. Bakom det finns ett spikbord med saxar, diverse tänger, förstoringsglas och pincetter som hänger så att de alltid är i ordning. På höger sida av bordet finns också en lödkolv och tillhörande material i en plåtlåda: lödvätska, rengöringssvamp för spetsar och lödplåt. Framför finns ett magnetbord med hållare som håller komponenterna som ska lödas på plats eftersom jag ibland löder. Till vänster finns en multimeter och diverse kablar, tejp och fler verktyg. Jag tycker att bra belysning också är viktigt.
Eftersom jag två gånger satte in 18650-batteriet på baksidan av laddningsenheten började jag fundera på hur jag skulle kunna förhindra detta. Jag hittade en handledning på webben, där en utveckling presenteras, med steg-för-steg-förbättringar. Adressen är:
Från detta har jag bara valt ut den sista skyddskretsen:
Jag gjorde en isometrisk bild av detta, eftersom jag inte har någon aning om placeringen av MOSFET-transistorns stift.
Här är ett foto på kretsen, du kan se vilken typ av ledningar jag har använt och hur jag har lödt komponenterna till kortet.
En annan bild på samma krets. Jag kopplade faktiskt 18650 korrekt först. Ingen ånga steg upp från det. Jag var ganska lättad. Jag var tvungen att samla allt mitt mod innan jag satte 18650-batteriet åt fel håll. Nu har jag en ny multimeter, som också har en strömmätningsfunktion. Rätt vänt upp var laddningsströmmen cirka 14,3 mA, fel vänt upp var det ingen ström alls. Så det fungerar nu. Jag lödde en annan kopia av den här ledningen ikväll, så om jag har två kompassremmar kan jag skydda båda från att sätta i batteriet fel. väg in i fallet!
I samband med Arduino-experimenten med blomvattning ville jag att samma mängd vatten alltid skulle gå till de fyra blomkrukorna. Jag föreställde mig att det skulle vara enkelt att göra, men det är det inte. Av någon anledning går vattnet alltid för mycket till en blomkruka, och den andra blomkrukan har ingenting. Jag föreställde mig att om jag gjorde hål av samma storlek skulle det fungera. Först gjorde jag en testversion av plastblock genom att limma, och genom att sticka med en nål gjorde jag hål av samma storlek som möjligt, en lite liknande idé som droppanordningar för infusion på sjukhus. Det fungerade inte, ett hål var alltid lite större och sedan gick vattnet bara till en kruka. Det är därför jag bestämde mig för att om jag provade 3D-utskrift skulle hålen vara exakta. Det fungerade fortfarande inte. Hur det såg ut på insidan såg ut som hälften.
Så såg stl-modellen ut från utsidan. Jag sparade stl-filen av den 3D-modellen till molnservern, eftersom filen var för stor kunde jag inte skicka den som en e-postbilaga. När jag ritade modellen med Unigraphics-programmet, numera heter programmet Siemens NX, var det också en bra övning i 3D-modellering för mig. Till exempel var jag tvungen att komma ihåg att en 3D-skrivare inte kan ha godtyckliga utskjutande delar, eftersom den alltid skriver ut ett lager plast ovanpå ett annat lager, och när den plasten är lite varm kan den klumpa ihop sig lite och förlora sin form. Siemens NX är mycket lämplig för modellering av speciella vågiga och böjda ytor.
Jag hittade utskriftstjänsten på webbplatsen www.tori.fi. www.tori.fi är främst en onlineförsäljning av begagnade varor, ungefär som det som brukade vara i Gula Sidorna. 3D-modellen kostade mig cirka 15 euro, och den kom med posten ganska snabbt. Hur som helst, den 3D-utskriftsexperimentet var inte värt besväret eftersom min princip inte riktigt fungerar. Vattendispensern måste ha en annan form. En fungerande form finns på webbplatsen:
Som ett impulsköp köpte jag en mycket billig LIDAR. Delvis också för att jag redan sett från en YouTube-bloggare att det är möjligt att ansluta några lidarer till Arduino. Och även om robotkonstruktionen fortfarande verkar vara ett för stort projekt för mig, ja, jag kan fortfarande ha drömmar. ... att använda servomotorer, en Arduino och andra sensorer för att göra en så smidig leksak som kan köra runt i min lägenhet, och naturligtvis skulle lidaren vara robotens öga, så att den inte skulle krascha in i dörrar och skada sig, men min robot skulle alltid stanna säkert före något hinder. Detta är fortfarande en ren dröm. Hindret är brist på tid och kanske också tålamod. Jag skulle förmodligen behöva ganska många veckor i rad för att bara fokusera på detta, men jag kan inte spendera alla helger på detta, jag har trots allt många andra hobbyer och andra obligatoriska hushållssysslor. Hur som helst, det här lilla projektet skulle kunna vara ett litet steg framåt på den långa vägen mot att göra min egen robot. Det här är länken till var jag köpte den här underbara enheten.
Det finns också en referens på Lidars försäljningssida för att hitta rätt programsnuttar för att avkoda signalen. Denna Discord-diskussionsgrupp blev uppmärksammad eftersom en amerikan publicerade hemliga foton och annan information om kriget i Ukraina, tydligen bara för att skryta om hur mycket han visste. På den specifika kanalen mb_1e2tydlidar-s4b finns en man som heter VIDICON som har undersökt denna lidar djupt. Tydligen har säljaren inte tillhandahållit någon dokumentation om den här enheten. Inte för att säga att det inte är otypiskt för kinesiska leverantörer. VIDICON har tydligen lämpliga signalanalysatorer för att gradvis räkna ut vad alla dess och bytes av datapaket betyder som enheten skickar ut. Wow, jag har stor respekt för att sådana gurus som VIDICON finns i den här världen. Förresten, även om koden kommer från github, var det för mig inte direkt en en-till-en-analys, men jag var tvungen att experimentera lite, vilken typ av baudrate den fungerar med visade sig vara 153600. Som tur var hade min dator redan python installerades med VS Code, men jag var tvungen att lägga till de extra modulerna pygame, serial, math och enum. Jag kan inte komma ihåg, något liknande som sudo apt-get install -y enum var nödvändigt eller kanske motsvarande på en Windows-maskin.
Programmet som listas här är inte exakt samma som github-programmet, men utöver baudrate ändrade jag pygame-kommandot set_at, vilket bara producerar en mycket svag prick på skärmen, och ersatte det med en rektangel pygame.draw.rect, som syns mycket bättre. Jag provade också pygame.draw.circle, men det är helt enkelt för långsamt, det gör många horisontella linjer på skärmen. Jag ändrade också förstoringsfaktorn, distancef = distance / 40, och när jag vill att fler detaljer ska markeras, min egen ansiktsprofil som ett exempel, ställer jag in denna faktor till 3. Jag är dock ganska obekant med pygame och hela programmet är som hebreiska för mig, särskilt den här klassen State(Enum). Jag måste fortfarande bekanta mig med det.
LIDAR-anslutningsschema till datorns USB-port
Testar LIDAR genom att gå runt i min lägenhet
Detta verkar vara en ganska vanlig typ av Arduino-projekt. Jag är fruktansvärt lat på att vattna mina blommor, glömmer ofta bort det i veckor, och jag vill att blomman ska vattnas automatiskt med en pump när vattnet tar slut. Installationen inkluderar en Arduino Uno, vattenpump, vattenslang, vattennivåsensor och Arduino-adapterkort, samt ett blått relä.
Arduino-programkod