Svenska ElektronikForumet
https://elektronikforumet.com/forum/

ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder!
https://elektronikforumet.com/forum/viewtopic.php?f=3&t=79120

Författare:  Henke_83 [ 09.53 2015-09-09 ]
Inläggsrubrik:  ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder!

Vad kul att du tittar in här - du kommer få ta del av min resa till en robotgräsklippare.
Ouchhh... vilken tid detta tog. Har fått barn och byggt hus... så det har ju blivit lite andra prioriteringar.
Tanken är väl ändå att jag ska bli klar år 2018. Vi får se hur det blir med det.
Blev ju klar med Alphan 2018 :)

Att göra - i prioriteringsordning
1. Printa ett skal till basstationen för GPS som är väderskyddat - så den kan vara utomhus 24/7 - 365 - med strömkabel.
2. Montera motorerna på ett bra sätt så att kraften utnyttjas maximalt
3. Köpa batterier för att driftsätta motorerna på "riktigt"
4. Rita en hållare för RPI, antenn och kompassometer som ska printas ut

Senast uppdaterad: 2019-04-25
Har köpt nya GPS-moduler som heter NEO M8N.
Gjort färdigt web-interface för styrningen.
FÖRSTA KÖRNINGEN PÅ GRÄSMATTAN OCH KLIPPT GRÄS!
Monteringslösning för RPI, antenn och kompass dit.

Pågående projekt:Jag kommer uppdatera inlägg 3 med uppdatering och även i tråden med nya inlägg och fortskridande status på projektet. Detta för att underlätta för mig vid uppdateringen av tråden. För dig som vill se från start - mål när detta är klart räcker det att gå till Inlägg 3.
Frågor och input: Ställs i forumdelen där jag besvarar dessa.

Om projektet:
Jag har tänkt bygga en robotgräsklippare - skillnaden mot robotgräsklipparna som finns på marknaden idag och min är att jag kommer använda mig av en autopilot som styrs via GPS och den är byggd på en cylinder istället för rotorer som är det vanliga idag. Möjlighet att ta över styrningen ska finnas så att en fjärrkontroll kan användas istället om man bara behöver kantklippa eller behöver finputsa något område på gräsmattan. På roboten kommer det även finnas en kamera som kan se en live-vy ifrån. Batteritiden har jag tänkt till mellan 30-60 min klipptid. Detta är i stora drag vad jag har tänkt åstadkomma och det är denna tråd till för er som är intresserade. I denna tråd kommer jag även lägga en komponentlista med priser längst ner för att se vad projektet kostar/kostat.

Tidsplan:
2015-07-23 – 2016-09-01 (2016-06-01 Första tidsplanen)
2015-07-23 - 2018-09-23 (här börjar ju gräset spira igen)

[ALPHA KLAR]
2015-07-23 - 2018-09-23!


Ekonomi:
Total budget för projektet är 2000:- kanske +/- någon krona. Men jag tror detta är realistiskt.
Totalt budget är nu uppe i nästan 3000:-... men kommer återkomma med en komplett lista när allt är klart.

Cylindergräsklippare:
Jag kommer använda mig av en redan befintlig gräsklippare som finns på marknaden idag - alltså inte bygga en. Detta för att kunna ägna mer tid åt programkoden och elektroniken som kommer behövas för att få detta att fungera. Anledningen till att jag valt cylindergräsklippare är att den är mer skonsam för gräsmattan och att det idag saknas automatiskt sådan (vad jag vet). Det jag har tagit hänsyn till när jag valt cylindergräsklippare är priset och vikten på ekipaget. Denna är redan inhandlad och det blev en AL-KO Comfort 38-5 för 300:-. Vikten på ekipaget är 6.0 kg och diametern på hjulen är 22 cm och klippbredd på 38 cm.
En riktigt bra upptäckt när jag fick hem gräsklipparen var att om ett hjul snurrar, snurrar cylindern och det andra däcket står still. Detta är viktigt att veta vid riktningsförändring. När gräsklipparen rullar bakåt, drivs inte cylindern - alltså frikopplar den vid backning. Också bra - då det krävs mindre energi vid backning än vid framåtåkning.

Hjärnan/Intelligensen:
En Rasperry PI version 3 kommer vara hjärnan som kommer arbeta med logiken och programspråket - till RPI kommer alla komponenter som behövs kopplas till GPIO-pinnanrna.
Programkoden kommer göras i Python och Java tillsammans Node.js då det finns bra bibliotek för mina ändamål och det är ett relativt simpelt språk för mig som är novis inom programmering.

GPS:
Som sagt kommer jag styra gräsklipparen med en GPS och en autopilot. Min tanke är att använda mig av koordinater på gräsmattan som gräsklipparen ska gå till. Beroende på hur långt det är kvar till nästa koordinat så ska den styra mot nästa koordinat. GPSerna har ju oftast en tillförlitlighet på ca någon meter men jag ska försöka komma till några dm eller t.o.m cm. Hur ska detta göras? Med hjälp av RTK och RAW-data från GPSen kan man komma ner till dm-precision, är det dessutom fri sikt för GPS-en ser jag att jag skulle kunna komma ner till cm-precision. Jag har köpt en U-blox Neo-7M-000 GPS Module för 120:-. Jag kommer vara tvungen att aktivera RAW-data ut från denna enhet eftersom det är inget som är i den köpta produkten. För att använda sig av "riktig" RTK behövs ytterligare en GPS-modul, så detta måste inhandlas. Har kontribuerat på openstreetmap hur aktivering av RAW-data från GPS-modulen fungerar - här är en länk för nyfikna. Har nu även gjort samma sak för Neo-8M modulerna. Behövde få ut RAW-datan från dessa här också och det är också upplagt på openstreetmap.

Kompass:
För att veta åt vilket håll ekipaget pekar åt kommer jag använda mig av en kompassometer som heter HMC5883L. Denna får man ut tre axlar ifrån X,Y,Z. Denna kommer hjälpa till att styra motorerna så att ekipaget svänger åt rätt håll.

Motorer:
Jag vill att ekipaget ska åka i ca 1m/s och har i en annan tråd här på forumet fått hjälp att räkna ut hur snabbt motorn ska snurra.Tråden för hjälp att välja motor.
Eftersom ekipaget kommer väga ca 7-8kg inkl. allt så behöver motorerna ha ordentligt med vridmoment. Även om det är lite lutning upp på gräsmattan kan det vara bra att ha lite extra kraft i motorn. Det kommer vara två motorer som driver hjulen, hjulen i sin tur driver cylindern på gräsklipparen.
Nedanstående motor fann jag till slut och har inhandlat 2 st - max kgcm 12,1/motor. Så det borde kunna bli 12,1*2=24,2kgcm i full kraft. 12V DC 100 RPM High Torque Gear Box Electric Motor for Speed Control för 310:-

Specar nedan:
Voltage: 12V DC
Gear ratio: 1/51
No-load speed: 100RPM
Rated Speed: 70RPM
Rated torque: 12.1kg.cm
Rated current: 2.1 Amp
Length of Motor(including spindle): 108mm
Diameter: 37mm
Shaft length: 20mm
Shaft diameter: 6mm

Motor drivare/styrkrets:
Jag har inhandlat en L293D för 31:-. Efter lite läsning upptäckte jag att denna max kan driva motorer på max 1A.
Så jag ska försöka hitta en ersättare för denna som passar till motorn. Min L293D har kommit väl till pass och jag har utfört experiment med RPI som controller och kunnat styra 2 st motorer med denna.

Min motordrivkrets kommer bli en L298N som enligt databladet ska klara peakar på 3A per kanal och den är ratad för att klara 2A per kanal. Mina motorer på peak är 2.1A så denna drivkrets bör klara det. Sedan återstår att se om den går koppla precis som L293D till RPI - för att använda den som kontroller istället för ett eget chip. Detta är ju min tanke.

Köpte enbart en IC krets L298N i min förhoppning om att denna skulle kunna användas direkt. Men till skillnad mot L293D som har inbyggda dioder har L298N inte det. Detta gör att när motorn stannar kan det finnas risk för att ström åker tillbaks från motorn in i IC-kretsen så att den brinner upp. Så jag beslutade mig för att köpa två kompletta satser ihopbyggda på ebay - dessa kostar enbart 20:- styck - och då är alla komponenter ihoplödda.

Batteri:
Alla komponenter kommer använda sig batterier, det kommer bli totalt 2 batterier. Ett batteri har inhandlats och det är för att strömsätta RPI med komponenter, det blev ett PowerBank 2200mAh Polymer Grade A för 100:-. Det kommer bli 1 batteri som strömsätter båda motorerna - detta för att underlätta vid uppladdning av batterierna och på så sätt minska vi vikten också. Kemin i batteriet kommer vara antinge Li-Ion eller Li-Ion polymer.

Ska även räkna ut hur länge PowerBank 2200mAh håller för mina komponenter och beroende på detta - bestämma hur mycket mAh det ska vara till motorerna.

Klipparen ska kunna vara ute i ca 1h. Då jag har 2 motorer på 12V och max.output är 2.1A - totalt 4.2A. För att räkna ut att jag ska denna i en timme att vara ute och köra så behöver jag ett batteri på 4.1/0,7= 5,85Ah Anledningen till att jag valt att dela med 0,7 är att batterierna inte orkar kräma ut allt som finns i dom. Så jag tror att ett batteri på 12V med minst 5850mAh ska räcka till mina motorer.

Batterier som är köpta är Samsung INR18650-25R 2500mAh - 20A
Jag har köpt 12st - tanken är att koppla dessa på i tre paralellea grupper och 4 i serier. Alltså ett 4S3P-pack.
Total kapacitet i energi är 7500mAh - beräknad för en timme var 5850mAh - så då har jag totalt 1650mAh kvar efter 1h körning.

Batterier köpta från https://eu.nkon.nl/.
Batterier kommer troligtvis köpas från https://eu.nkon.nl/ såg att någon annan här på forumet köpt därifrån.

[Batterimätning]
Behöver även mäta spänningen i batterierna så jag vet när laddaren "INTE" får vara ute mer för att inte förstöra cellerna. Då kommer gräsklipparen få köra till ett "speciellt" ställe och parkera sig där.
För att mäta kommer jag använda mig av PCF8591 ADC converter.

Montering:
Motorn sitter fäst i chassit på ovansidan, sedan har jag satt drevet i axeln. På drevet sitter det armar med kullager som snurrar hjul. På hjulen går det larvband, och här sitter även drivhjul för motorn och drivhjul för cylindern så att gräset kan klippas.

Köpta komponenter:
Raspberry PI ver2 - 378:- (cdon)
AL-KO Comfort 38-5 - 300:- (bollnäs bilvård)
DC-motor 100RPM - 310:- (ebay)
PowerBank 2200mAh Polymer Grade A - 100:-
1# U-blox Neo-7M-000 GPS Module – £8.56 (ebay.co.uk)- 120:-
2# U-blox Neo-7M-000 GPS Module – £8.56 (ebay.co.uk)- 120:- - denna försvann i postgången - har fått ersättning!
3# U-blox Neo-7M-000 GPS Module – £8.56 (ebay.co.uk)- 120:-
HMC5883L – Compass – $0.99 (ebay.com)- 9:-
L293D – motordrivkrets – 31:- (electrokit)
USB till seriell PL2303HX - 100:- (kjell)
Stiftlist 40x1 pin - 15:- (kjell)
L298N IC - motordrivkrest - 56:- (elfa)
Batterihållare för 8st AA 35:- (elfa)
Kontak till batterihållare - 13:- (elfa)
2 x L298N komplett - 40:- (ebay.com)
Pololu nav, 6 mm, M3 - 90:- (hobbytronik)
2 x Maxrad GPS-TMG-26N - 478:- (ebay.com)
2 x N male straight to IPX U.FL female 1.13 cable jumper pigtail 20cm - 78:- (ebay.com)
2 x Kopplingslåda extra hög 140 :- (clas ohlson)
1 x USB förlängning 5m - A-hane - A-hone -54:- (kopplat.se)
12 x 18650 Samsung INR 3,6V 2500mAh - 500:- (nkon.eu)
1 x PCF8591 - 69:- (tradera)
Totalt 24/10-2018: 3036:-

Författare:  Lasp [ 10.21 2015-09-09 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Mycket bra och tydlig projektbeskrivning.
Jag gillar din åtgärdsplan på din hemsida, rätt tänkt och gjort.

Fråga, kommer cylindern att rotera med hjälp av framhjulen eller kommer det att vara en separat cylinderdrivning? Kommer cylindern att lyftas upp vid tomkörning och riktningsförändring? :humm:

Författare:  Henke_83 [ 10.32 2015-09-09 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Senast uppdaterad: 2019-04-25
ALPHA KLAR - 2018-09-23!

Genom hela projektet loggar jag in via DAG till min Raspberry Pi - så denna köra jag headless och använder min PC för att skriva all kod.

Innehåll
Delprojekt 0 - Installera Raspian på RPI (klart)
Delprojekt 1 - Löda pinnar till HMC5883L (klart)
Delprojekt 2 - Få Rasperry Pi att fungera med HMC5883L (klart)
Delprojekt 3 - Löda pinnar till Ublox Neo-7M(GPS-modul) (klart)
Delprojekt 4 - Få Rasperry Pi att fungera med Ublox Neo-7M (klart) (uppdaterad 2017-03-17)
Delprojekt 5 - RAW-data inställningar med Windows och U-center v.8.18 (klart)(redigering och bilder kommer)
Delprojekt 6 - RAW-data inställningar med Linux och CLI (klart)
Delprojekt 7 - Utdata från GPSen med Pynmea2 (klart)
Delprojekt 8a - Kompilera RTKLIB för Rasperry Pi med ver.2.4.2 med patch rev11 (klart)
Delprojekt 8b - Använda RTKRCV för GPS Neo-7M under Linux
Delprojekt 9 - Använda både GPS och kompass samtidigt från RPI? (klart)
Delprojekt 10 - Testa motorerna med batterier (klart)
Delprojekt 11 - Testa motor och se hur mycket de orkar (klart)
Delprojekt 12 - Vädertäta Raspberry Pi (klart)
Delprojekt 13 - Få RTKLIB i Linux med basstation att fungera (klart)
Delprojekt 14 - Ta emot TCP-ström i Python från RTKLIB (klart)
Delprojekt 15 - Använda RTKLIB med nya antenner och få fixed position (klart)
Delprojekt 16 - Använda L298N tillsammans med RPI (klart)
Delprojekt 17 - Styra L298N med PWM från RPI (klart)
Delprojekt 18 - Styra PWM baserat på compassometer med en fixed variabel (klart)
Delprojekt 19 - Skapa en RTKLIB basstation för utomhusbruk(klart)
Delprojekt 21 - Göra en ny basstation och korrelera mot SWEPOS(klart)
Delprojekt 22 - Montera motorn på cylinderklipparen (nerlagt - se Delprojekt 23 istället)
Delprojekt 23 - Montera motorn och på cylinderklipparen(klart)
Delprojekt 24 - Få gräsklipparen att röra på sig efter förändrad konstruktion av motorplacering(klart)
Delprojekt 31 - Prototyp 1 - ALPHA KLAR, tester (klart)
Delprojekt 34 - Starta basstationen automatiskt så fort den får ström(klart)
Delprojekt 35 - Göra ett grafiskt interface för att styra gräsklipparen från mobilen(klart)

Pågående projekt
Delprojekt 20 - Testa precision jag kan få trädgården med bas och en rover - och optimera konfigurationen
Delprojekt 25 - Montera övriga komponenter på cylinderklipparen

Ej färdiga kommande delar projektet
Delprojekt 32 - Styra PWM baserat på compassometer
Delprojekt 33 - Beräkna strömåtgång för 2st Raspberry Pi
Delprojekt 36 - Markera ut en slinga med GPS-koordinator där gräsklipparen får röra sig


Delprojekt 0 - Installera Raspian på RPI
För er som behöver hjälp att komma igång med RPI att starta upp och installera har jag gjort en tutorial på min hemsida.
Kommer inte skriva något omfattande om det här i den här tråden, det finns även ett flertal guider på nätet om det. Här kommer min:
Get Raspberry Pi up and running!

Delprojekt 1 - Löda pinnar till HMC5883L
Vad? - Löda fast pinnar på HMC5

Jag köpte en HMC5883L från ebay från Kina, det kom med pinnar som skulle lödas fast. När jag gjort tester med HMC5883L utan att löda har det varit svårt att få ordentlig kontakt med chipet och jag beslöt mig därför att löda fast pinnarna på chipet.

Min lödkolv är en 9W som går på tre AA-batterier :) och jag tror den duger gott för mig som aldrig kommer göra några större lödningar.

Så här är resultat av min första lödning - jag tyckte det blev rätt bra. Även om GDA och DRDY skulle kunna fått lite till lödtenn.
Bilaga:
WP_20150909_11_10_28_Pro.jpg


Delprojekt 2 - Få Rasperry Pi att fungera med HMC5883L
HMC5833L använder sig av I2C så det första vi måste göra är att aktivera detta på Rpi, det gör vi genom att köra
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo raspi-config
under advanced options finns ett alternativ att aktivera i2c, gör det men starta inte om RPI.
Vi behöver lägga till så att modulerna laddas från början, detta görs inte automatiskt när vi aktiverar i2c. Skriv
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo nano /etc/modules
lägg till följande på varsin rad längst ner i filen.
Citera:
i2c-bcm2836
och
Citera:
i2c-dev

När du gjort detta tryck på CTRL och X tillsammans och svara sedan Y på frågan om du vill spara/skriva över filen.
Efter detta ska vi uppdatera RPI så att vi har allt som behövs för att använda HMC5883L till Python. Kör följande kommandon.
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install i2c-tools
sudo apt-get install python-smbus
sudo apt-get install python3

Nu har vi uppdaterat RPI och modulen för I2C kommer laddas, starta om RPI. Skriv
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo reboot
När detta är gjort behöver du installera bibliotek så vi kommer åt HMC5883L från python. Vi behöver två bibliotek för detta quick2wire och i2clibraries from ThinkBowl. Spara ner dessa i en lämplig katalog. Du behöver även installera git så att vi kan ladda ner desas bibliotek. Kör
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo apt-get install git
Gå till katalogen du valt och kör
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
git clone https://github.com/quick2wire/quick2wire-python-api.git
Skapa en miljövariabel för quick2wire så python kan hitta biblioteket när det behöver det.
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
nano setup.env
i denna filen lägger du till följande:
export QUICK2WIRE_API_HOME=~/project/quick2wire-python-api (här ska du ändra till den katalog du har valt att lägga denna i)
export PYTHONPATH=$PYTHONPATH:$QUICK2WIRE_API_HOME

Precis som innan i nano trycker CTRL + X för att avsluta och spara/ersätt filen med Y. Nu kan du skriva
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
. ./setup.env
Setup.env behöver köras varje gång du startar om RPI.
Skapa en katalog där du ska skapa ditt program och gå in i den katalogen
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo mkdir program
cd program
Här ska vi nu ladda ner i2clibraries som har funktioner för HMC5883L.
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
git clone https://bitbucket.org/thinkbowl/i2clibraries.git
Nu har vi gjort mjukvarudelen för HMC5883L och RPI, nu ska vi koppla ihop RPI och HMC5883L.
Stäng av RPI genom att ta bort strömförsörjningen eller skriv
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo shutdown -h now

Här har vi HMC5883L utgångar - det som är intressant för oss här är VCC - GND - SCL - SDA. Dessa kontakter ska kopplas ihop med RPIns GPIO-portar för att få kommunikationen att fungera.
Bilaga:
wp_20150911_12_15_28_pro (1).jpg

Här har vi Raspberry Pi:s 2 - GPIO-utgångar.
Bilaga:
Raspberry-Pi-GPIO-Layout-Model-B-Plus.png

Nu borde detta göra det enkelt för oss att koppla samman detta. Men första frågan är ska det vara 3.3V eller 5V matning till HMC5883L. Det ska vara 3.3V det finns alltså bara en port VCC kan kopplas till och det är GPIO NR1. Så om följande schema följs kommer det funger:

HMC5883L -- RPI
VCC --> Pin nr 1
GND --> Pin nr 6,9,14,20,25,30,34 eller 39 (koppla bara GND till en av dessa)
SCL --> Pin nr 5
SDA --> Pin nr 3
Bilaga:
WP_20150918_13_24_53_Pro.jpg


När du kopplat ihop HMC5883L med RPI kan du starta upp RPI igen.
För att kontrollera om du har en kommunikation med HMC5883L finns ett program som heter i2cdetect.
Kör följande kommando:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
i2cdetect -y 1
Följande skärm kommer visas med en markering på 1e om du gjort rätt.
Bilaga:
i2cdetect.PNG

Nu ska vi skriva lite kod för att kunna få ut utdata från HMCL5883L.
Skapa en fil som heter t.ex
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
nano compass.py
i denna filen skriver du in följande:
#Först ska vi importera biblioteket som vi tidigare laddade ner
from i2clibraries import i2c_hmc5883l
#Här anger vi vilken utport RPI ska använda, numret inom () är porten
hmc5883l = i2c_hmc5883l.i2c_hmc5883l(1)
#Kontinuerligt läge på HMC5883L
hmc5883l.setContinuousMode()
#Här är den magnetiska declinationen, dessa tal ska ändras till din egna
hmc5883l.setDeclination(5,43)
#Här anger vi att ska skriva ut HMC5883L värden som kommer från fjärde raden
print(hmc5883l)
Spara filen genom att trycka CTRL+X och svara Y för att spara/ersätta filen.
Skriv sedan följande för att köra programmet
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
python3 compass.py

Du kommer nu få följande utdata om allt är rätt:
Bilaga:
compass.PNG

Då har vi fått kontakt mellan HMC5883L och Rasperry Pi :tumupp:
Delprojekt 2 klart!

Delprojekt 3 - Löda pinnar till Ublox Neo-7M(GPS-modul)
Resultatet av gårdagens lödning ;( Blir troligtvis att jag gör om detta ikväll!

Bilaga:
WP_20150917_13_04_52_Pro (1).jpg


Delprojekt 4 - Få Rasperry Pi att fungera med Ublox Neo-7M
För att kommunicera med Ublox Neo-7M kommer jag att använda mig av seriell data, många guider på nätet föreslår USB. Eftersom RPI har ett GPIO interface med TX och RX tycker jag att detta ska användas. Vi har ju i tidigare del med HMC5883L kopplat in oss på I2C-kretsen. Nu ska vi koppla in oss på UART som det också heter.

RPI 1 och RPI 2
Serieporten på linux går under namnet /dev/ttyAMA0 och det är hit vi ska koppla vår GPS. Standard på RPI är att denna är kopplad så att du ska logga in med ett seriellt interface den vägen, men det ska vi inte göra. Så vi ska ta och avaktivera detta och göra den tillgänglig för GPS-chipet.
RPI 3
/dev/ttyAMA0 är nu upptagen av bluetooth som finns på RPI 3 - så nu har vår seriella port /dev/ttyS0 som namn istället. Som standard på RPI 3 är UART inaktiverad så vi behöver modifiera en fil som under /boot/config.txt och lägga till en rad som heter enable_uart=1.

Vi ska ändra i en fil som heter cmdline.txt så det första vi gör med denna fil är att vi tar en backup ifall något skulle bli fel.
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo cp /boot/cmdline.txt /boot/cmdline.txt.backup
Nu ska vi avaktivera en funktion i cmdline.txt detta gör i genom att editera filen
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo nano /boot/cmdline.txt
Ändra
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
till
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
Det vi har gjort är att inaktiverat två funktioner.
!!VIKTIGT ATT INTE GÖRA NÅGRA RADBRYT HÄR - ALLT SKA VARA PÅ SAMMA RAD!!


Inittab är ersatt av systemd i nyare distar till RPI - så denna punkt är troligtvis inte nödvändig längre
Sedan ska vi inaktivera ytterligare funktioner i en annan fil som heter inittab så ta en backup på denna först genom att skriva
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo cp /etc/inittab /etc/inittab.backup
Editera filen genom att skriva
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo nano /etc/inittab
Nästan längst ner i filen hittar du följande rad
Citera:
#Spawn a getty on Raspberry Pi serial line
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
Framför den andra raden sätter du en hashtag så att det efteråt ser ut så här
Citera:
#Spawn a getty on Raspberry Pi serial line
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

och nu kan vi stänga av RPI genom att ta ut sladden för vi ska koppla ihop Ublox NEO-7M med GPIO-portarna på RPI.
Här kommer hur jag har gjort. Anledningen till att jag gått via breadboardet är att jag inte hade några hona - hona kontakter så detta får duga.

Ublox Neo-7M-000 -- RPI
VCC --> Pin nr 1 (VCC)
GND --> Pin nr 6 (GND)
RX --> Pin nr 8 (TX)
TX --> Pin nr 10 (RX)
Bilaga:
WP_20150918_13_41_50_Pro (1).jpg


När detta är gjort ska vi starta upp RPI och installera program för att se om vi har någon kontakt med modulen.
Vi ska installera ett program som heter gpsd och det finns några program som krävs ytterligare för att detta ska fungera så kör följande kommando
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo apt-get install gpsd gpsd-clients python-gps
Efter att programmet är installerat ska vi starta denna tjänst genom att skriva
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo service gpsd start
För att se om GPSen fungerar skriver vi nu följande kommando som startar upp ett gränssnitt där vi kan se var vi befinner oss och vilka satelliter vi har kontakt med så kör följande
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
cgps -s
Om det blir timeout när du startar denna beror det troligtvis på att du inte har fått en "fix" ännu. Om GPS:en inte blinkar grönt konstant med ca 1s intervall så har du ingen fix på GPSen.

Om man är osäker på att det verkligen kommer utdata från GPSen kan prova följande kommando
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
(RPI,RPI2)gpscat /dev/ttyAMA0
(RPI3)gpscat /dev/ttyS0
Här kommer det spottas ut NMEA meningar även om du inte fått en fix på din position.

Nu ska du få utdata från GPSen från RPI.

Delprojekt 5 - RAW-data inställningar med Windows och U-center v.8.18
Jag var osäker på vad som verkligen hände i Linux när jag skickade kommando till GPS-modulen. Det blev en stor osäkerhet och jag kände att jag var tvungen att ha koll på vad som kom ut ur GPS-modulen. Läste på nätet på olika forum om Ublox eget program U-center där inställningar kunde ställas in i modulen. För att kunna använda mitt chip till windows krävdes en USB-SERIELL kabel med ett chip som heter PL2303 för att använda något som kallas FTDI.
Därav mitt inköp av en USB-seriell kabel med ett PL chip, detta körde jag i Windows 10. Kabeln köpte jag på Kjell för att jag snabbt ville testa detta och se om det funkar. Finns billigare varianter på ebay men ville inte vänta 1 månad på att få en billig kabel. Denna kabel blev det Usb till seriell. Innnan jag köpte denna kabel googlade jag och såg om det fanns stöd för PL2303HX i Windows 10 64-bit - och det gjorde det INTE. Men som det ofta gör för det guider hur denna kabel kunde fungera under Windows 10. Där framkom det att krävdes en speciell version av Profilic driver Version 3.3.2.102 och med denna installerad och datorn omstartad så fungerade min kabel. Här är en länk till drivrutinen som jag använde mig av Drivrutin.
Efter detta installerade jag U-center v.8.18 - detta program finns att ladda ner från Ubloxs hemsida.

Nu skulle jag koppla ihop USB-kabel med GPS-modulen. Jag har ju som ni sett tidigare lött dit ben på GPS-modulen så detta underlättade mycket.
Kopplingen blev som följer (bild kommer)
GPS - USB-Seriell
GND - Svart
VCC - Röd
RX - Grön
TX - Vit

Sedan startade jag igång U-center. Där valde jag att programmet automatiskt skulle känna av hur snabbt hastigheten gick.
Detta funkade direkt och för att se om GPS-modulen spottar ut data kan man trycka på F6,F7 och F8 - då kommer olika fönster ut och du ser direkt vad GPS-modulen spottar ur sig.

Instruktioner för att få RAW-data från GPSen från U-center
    Starta först U-center
    Anslut genom att trycka på Connect uppe till höger
    Tryck sedan på F8 - du får nu upp textkonsol
    Tryck sedan på F9 - härifrån kan vi skicka kommando till chipet
    Tryck här på Custom - längst ner i trädmenyn
    Klistan in denna rad i fältet: B5 62 06 00 14 00 01 00 00 00 D0 08 00 00 00 C2 01 00 01 00 01 00 00 00 00 00 B8 42
    Tryck på Send
    Koppla sedan ner modulen
    Ändra hastighet till 115 200
    Anslut modulen igen
    Om modulen har tagit emot kommandot rätt, kommer du i Textkonsolen inte få några meddelanden alls nu
    Gå till Custom igen - vi ska skicka nedanstående kommando till modulen ett i taget
    B5 62 06 01 03 00 03 0A 01 18 5D
    B5 62 06 01 03 00 03 0F 01 1D 67
    B5 62 06 01 03 00 01 22 01 2E 87
    B5 62 06 01 03 00 01 30 01 3C A3
    Klart!

Jag har även kontribuerat med material till OpenStreetMap

Delprojekt 6 - RAW-data inställningar med Linux och CLI
För att skicka inställningar till GPS-modulen via den seriella kontakten skrev jag ihop ett litet program i python som skickar data direkt till gps-chipet.
Jag använde mig av biblioteket serial och sedan skickade jag data till modulen. Jag har gjort två program för testets skulle men allt kan sitta ihop i ett program. Det första programmet skickar data i en hastighet av 9600 och aktiverar UBX och rätt hastighet på GPS-moudlen och det andra skickar i en hastighet av 115200 och aktiverar RAW-data från modulen. Du kan vara tvungen att installera serial paketet för python genom att köra. För att kunna installera pyserial behöver du köra följande kommandon.
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo pip insall python-pip
Detta installerar PIP som är en installationshanterare för paket till python
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo pip install pyserial
Detta är modulen så vi kan kommunicera seriellt i python.
Här är koden för att sätta hastigheten.
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
import serial

ser = serial.Serial('/dev/ttyAMA0',9600)
print 'Sending set UBX out and speed 115200'
command = b'\xB5\x62\x06\x00\x14\x00\x01\x00\x00\x00\xD0\x08\x00\x00\x00\xC2\x01\x00\x01\x00\x01\x00\x00\x00\x00\x00\xB8\x42'
ser.write(command)

Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
import serial

ser = serial.Serial('/dev/ttyAMA0',115200)
print 'Sending set TRK-TRKD5'
command = b'\xB5\x62\x06\x01\x03\x00\x03\x0A\x01\x18\x5D'
ser.write(command)
print 'Send set TRK-SFRBX'
command = b'\xB5\x62\x06\x01\x03\x00\x03\x0F\x01\x1D\x67'
ser.write(command)
print 'Sending set NAV-CLOCK'
command = b'\xB5\x62\x06\x01\x03\x00\x01\x22\x01\x2E\x87'
ser.write(command)
print 'Sending set NAV-SVINFO'
command = b'\xB5\x62\x06\x01\x03\x00\x01\x30\x01\x3C\xA3'
ser.write(command)
Klart!

Delprojekt 7 - Utdata från GPSen med Pynmea2
För att kunna använda sig av datan från GPSen måste vi kunna parsa data - dett har jag gjort med hjälp av Pynmea först och efter lite testandet övergav jag pynmea till fördel för Pynmea2. Nu vet jag inte om jag kommer använda Pynmea2 då jag ska använda mig av RTKLIB, men här nedan är programmet så att jag fick ut datan från GPSen med Pynmea2.

Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
import serial
import pynmea2
ser = serial.Serial('/dev/ttyAMA0',9600)
while 1:
       data  = ser.readline()
       if (data.startswith("GPGGA")):
              msg = pynmea2.parse(data)
              print repr(msg.latitude)
              print repr(msg.longitude)


Klart!

Delprojekt 8a - Kompilera RTKLIB för Rasperry Pi med ver.2.4.2 med patch rev11
Det vi behöver från RTKLIB i Linux är ett program som kallas RTKRCV. Så jag ska visa hur jag gick tillväga för att kompilera detta. Ladda ner källkoden med git, för att installera GIT kör
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo apt-get install git
sedan kan du köra följande kommando
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
git clone https://github.com/tomojitakasu/RTKLIB.git
Källkoden är ca 60 MB. Detta kommer laddas ner i en mapp som heter RTKLIB. Kommandoradsinterfacet som gör realtidspositionering i RTKLIB kallas RTKRCV och det är det vi ska kompilera. Så gå in i katalogen $HOME\RTKLIB\app\rtkrcv\gcc genom att skriva
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
cd \RTKLIB\app\rtkrcv\
I denna katalog finns det en fil som heter makefile, här ska vi ändra så att vi kompilerar för Raperry PI 2. I filen finns ett ställe som heter CTARGET ändra denna rad till följande:
Citera:
RPI 3:CTARGET= -mcpu=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard
Citera:
RPI 2:Ctarget= -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard
Citera:
RPI 1: CTARGET = -march=armv6 -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -ffast-math
Detta anpassar så att programmet är gjort för RPI 2. När vi kompilerar programmet använder vi kommandot make med variabel -j 4, detta gör att alla fyror kärnor används vid kompileringen. Kör följande kommando
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
make -j 4
Du har nu kompilerat RTKRCV, för att testa programmet kör det genom att skriva
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
./rtkrcv
Om du vill använda en annan branch, kolla på denna länken: eller gör på följande sätt:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
git clone URL
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
cd in i katalogen

Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
git checkout "branch"

FÄRDIGT!https://stackoverflow.com/questions/2294313/how-to-download-a-branch-with-gitKLART!

Delprojekt 8b - Använda RTKRCV för GPS Neo-7M under Linux
Det vi behöver göra för att kunna använda sig av RKTRCV under Linux är först att se till att få RAW-data ut från GPSen. Detta gör vi med hjälp av tidigare script/program vi skapat tidigare i denna guide under delprojekt 6. Scripten kör vi på följande sätt
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo python speed.py
för att öka upp hastigheten till max sedan
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo python raw.py
När detta är gjort kan vi kontrollera att vi får utdata i RAW-format. Då kör vi
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
cat /dev/ttyAMA0
alt.
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
gpscat /dev/ttyAMA0
förutsatt att vi har GPSen kopplad via UART. Vi kan även kontrollera så att hastigheten är rätt inställd genom att köra
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
stty -F /dev/ttyAMA0 -a
Det första som står är speed och där ska nu stå 115200 baud. Nu är RAW-data aktiverat. För att vi ska kunna använda rtkrcv behöver vi sätta rätt attribut på filen rtkshut.sh och rtkstart.sh, det gör vi på följande sätt:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
chmod +755 rtkshut.sh
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
chmod +755 rtkstart.sh

Vi ska nu skapa en konfigurationsfil för Neo-7M - jag har valt att kalla min för 7m.conf. Denna behövs sedan när vi ska köra programmet - här ställer vi in vilken hastighet GPSen har vilken port den finns på och en hel del annat. Från början följder det med en fil som heter rtkrcv.conf - det är denna vi ska ändra eller kopiera. När vi kopierat filen kan vi ändra den. Vi ska ändra på några rader -
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
inpstr1-type=serial
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
inpstr1-path       =ttyAMA0:115200:8:n:1:off
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
inpstr1-format     =ubx
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
file-cmdfile1      =
För att starta programmet kör vi
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
./rtkrcv
i konsolen rtkrcv> kör vi sedan
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
load 7m.conf
Nu behöver du skriva
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
restart
för att aktivera konfigurationen. Då får vi ett
Citera:
rtk server restart
Nu kan vi köra
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
status
och se om det funkar. Sedan kör vi
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
solution 1
då kommer du få massa GPS-data om du har tillräckligt med satteliter låsta till GPSen.
Klart!

Delprojekt 9 - Använda både GPS och kompass samtidigt från RPI?
Kopplingsschema för att använda både GPS och kompass samtidigt.
Bilaga:
gps.jpg


Delprojekt 10 - Testa motorerna med batterier
Detta test var för att se att motorerna fungerade och inte var trasiga. Även se så att de fick rätt spänning och ström.
Så 8 batterier på 1,5V kopplade direkt motorerna - fungerade bra. 12V till motorerna.

Delprojekt 11 - Testa motor och se hur mycket de orkar
Jag använde 1 motor koppplad till mina 8 batterier. Denna i sin tur var kopplad till ett av hjulen på gräsklipparen. Den orkade utan några konstigheter driva hjulet och även själva cylindern som klipper gräset. Med 2 motorer bör detta fungera utan några större problem.

Delprojekt 12 - Vädertäta Raspberry Pi
Det kommer vara 2 st RPI - en som fungerar som BASSTATION för RTKLIB och en som är hjärnan i gräsklipparen. Den som är basstation kommer vara monterad utomhus och kommer utsättas för mycket varierande väder. Delen som sitter på gräsklipparen kommer inte utsättas på samma sätt. Så det är det inte lika viktigt att det är helt hundra.

Har skrivit ut skalet till min RPI-basstation, och där har jag mellan RJ45-uttaget använt smältlim för att täta till så inget vatten kan läcka in. Likaså där micro-usb och antennsladden går in använt mig av smältlim för att täppa till alla öppningar in till rpin. Har även satt dit locket med en liten snäppfäste tillsammans med smältlim för hela locket, så inget vatten "bör" komma in. Vi får väl se om det är lyckat om ett år eller så, om den fortfarande lever min lilla rpi som sitter som basstation.

Delprojekt 13 - Använda RTKLIB i Linux med basstation och patchantenner
Hur får man RTKLIB att fungera i Linux med enbart CLI? Det är frågan som kommer besvaras här - jag har i nuläget inte en aning men den ska lösas..
Eftersom det finns ett tidigare projekt som är likt detta i följande tråd RTK-GPS och autostyrning- kikar jag där till en hjälp. Dessutom i manualen till RTKLIB.
Och wikin som är skapad för detta på WiKi RTK-GPS
Det ska finnas en basstation och en station som sitter på rovern - jag kommer testa mig fram för att få det rätt.

De program jag kan använda mig av är följande: RTKRCV, STR2STR, RNX2RTKP, CONVBIN.
Frågan är vilka jag ska använda - jag tror utan att veta att jag kommer använda mig av de tre första.
RTKRCV,STR2STR och RNX2RTKP. I manualen finns det ett fint diagram som visar vad jag ska göra - det ser ut så här:
Bilaga:
rtk-gps.JPG


Har först kompilerat RTKRCV och STR2STR för RPI. Sedan har det vara ganska simpelt att få det att fungera.

Kommer använda mig av konfigurationen:
Kinematic - detta när jag har en rover som flyttar sig och har en bas som är stilla på ett och samma ställe

För basstationen använder jag:
STR2STR
I konfigurationen behöver jag välja varifrån datan kommen - GPS - som är ansluten till seriell UART på RPI 2.
Ska även välja vart utdatan ska ta vägen - och här väljer vi att vara TCP-server, testar även att skicka till en fil.

För att starta en basstation och skicka data eller konvertera till annat format använder jag följande kommando
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
./str2str -in serial://ttyAMA0:115200#ubx -out test.rtcm3#rtcm3

För att starta basstationen och starta en TCP-server har jag gjort med följande kommando
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
./str2str -in serial://ttyAMA0:115200#ubx -out tcpsvr://:50021

För rovern använder jag:
RTKRCV
I konfigurationen behöver jag välja varifrån datan kommer - GPS - som är ansluten till seriell UART på RPI B+.
Behöver även välja vilken basstation/server jag ska koppla ihop mig med.
I konfigurationen ligger även den statiska koordinaten till basstationen.
Kommer även göra en output som troligtvis kommer vara en TCP-ström som python får behandla för min autopilot.

Har tidigare bara lyckats få en single på RTKRCV idag fick ju även till så att det blev FLOAT. Kommer troligtvis inte få till att få en FIXED punkt då det krävs större än mina 1cm patchantenner och just nu står mina moduler knappt 30 cm ifrån varandra. Så större antenner och längre avstånd från varandra så ska nog detta gå också.

Får anse att denna punkt är klar tills jag har köpt nya antenner. Se projekt 20 för utveckling av detta..
KLART!

Delprojekt 14 - Ta emot TCP-ström i Python från RTKLIB
Har ändrat i min konfiguration för att få en utström i NMEA-format och detta fungerar utan problem.
Nu skickar jag data till en fil och den utströmmen ser precis ut som den datan jag tidigare använt mig av i mitt python-program.
Så det jag ska göra är att pythonprogrammet ska ta emot en tcp-ström och sedan som behandlar nmea-datan.

Ändrat på raderna i .conf filen på följande rader:
Citera:
outstr1-type=file
outstr1-format=nmea

För att få ut en TCP-ström har jag ändrat följande i .conf filen:
Citera:
outstr2-type=tcpcli
outstr2-format=nmea
outstr2-path=192.168.1.xxx:50002

Håller på och gör ett enkelt program i Python som ska ta emot NMEA-data. Detta ska sedan implementeras in i autopiloten för att hålla kolla på var gräsklipparen befinner sig. Har just nu skapat en kommunikation mellan RTKLIB och python via en TCP förbindelse. Nu har jag även så att jag får utdata via strömmen i det lilla programmet. Här är den färdiga koden:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
import socket
import sys

HOST = ''   # Symbolic name, meaning all available interfaces
PORT = 50002 # Arbitrary non-privileged port

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print 'Socket created'

#Bind socket to local host and port
try:
    s.bind((HOST, PORT))
except socket.error as msg:
    print 'Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
    sys.exit()

print 'Socket bind complete'

#Start listening on socket
s.listen(10)
print 'Socket now listening'

while True:
    # Wait for a connection
    print 'waiting for a connection'
    conn, addr = s.accept()

    try:
        print 'connection from', addr

        while True:
            data = conn.recv(128)
            print 'received: %s' % data
     
    except:
        print 'error'

s.close()

Nu kommer jag kunna fortsätta på autopiloten igen.. :)

Delprojekt 15 - Använda RTKLIB och få fixed position med 2 Raspberry PI och riktiga antenner
Håller just nu på och testat RTKLIB på mina Raspberry PI. Har suttit och försökt få till det och när det är dåligt dokumenterat är det svårt att komma ihåg hur man gjort. Har kompilerat RTKRCV så det är det programmet jag ska använda nu.

Antenner som används är Maxrad GPS-TMG-26N. GPS-modulen jag har skickar en liten ström till antennen, så det är en aktiv antenn. Ingen modifiering behövde göras på GPSen utan det är standard.
Det är nämnt här i denna projekttråd att jag behöver ha minst 5st som har SNR äver 40, tror jag kommer få det att fungera.

Har sänkt elevation mask till 0grader, för att testa. Kommer trimma in och se hur bra precision det blir, har tidigare använt 15grader i elevation mask. Detta för att utesluta satelliter som ligger lågt på horisonten.

Det jag börjar med är basstationen - tänker även lägga upp min cfg fil som fungerar för detta här. Så jag själv slipper och försöka återskapa saker.

Behöver trimma in en egen basstation - tänkte därför logga position genom att samla data mellan 12-24h. Använder mig utav PPPstatic som tar fram medelpunkten av alla insamlade data, så ju längre den samlar in data, desto bättre precision i var basen befinner sig.
viewtopic.php?f=3&t=61004&hilit=rtklib&start=15#p871126

Eftersom allt jag gör körs via ssh och jag vill samla in data i en fil har jag använt mig av programmet screen i Linux. Då kan processen gå i bakgrunden även när man kopplar ner SSH-sessionen. Annars avbryts programmet och det blir ingen insamling. För att komma ut och koppla från sessionen utan att stänga av den använder man kombinationen
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
ctrl+a och sedan d


Delprojekt 16 - Använda L298N tillsammans med RPI (klart)
I början av detta projekt trodde jag att mitt chip L293D skulle klara att styra mina motorer till detta projekt. Gjorde kopplingsscheman och fick allt att fungera med två små motorer. Efter att jag inhandlat mina motorer efter vad jag behövde insåg jag att L293D inte skulle räcka. Fick därför köpa L298N som ska klara uppgiften bra.

Så jag har gjort ett kopplingscchema hur jag kopplat ihop allt - i denna fas har jag använt mig av enbart 1 motor. Efter mycket googlande och lite eget trial-and-error fick jag L298N att fungera bra med RPI och lite pythonkod.

Någon bra hemsida som går igenom detta var inte lätt att hitta men jag har fått det att fungera som jag vill.

Kopplingscchemat..
Bilaga:
Office Lens_20160210_101741_processed.jpg


Kod för att få motorn att snurra i 2 sek - detta är enbart en av motorerna
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
import RPi.GPIO as GPIO
from time import sleep

GPIO.setmode(GPIO.BOARD)

Motor1A = 16
Motor1B = 18
Motor1E = 32

GPIO.setup(Motor1A,GPIO.OUT)
GPIO.setup(Motor1B,GPIO.OUT)
GPIO.setup(Motor1E,GPIO.OUT)

print "Turning motor on"
GPIO.output(Motor1A,GPIO.HIGH)
GPIO.output(Motor1B,GPIO.LOW)
GPIO.output(Motor1E,GPIO.HIGH)

sleep(2)

print "Stopping motor"
GPIO.output(Motor1E,GPIO.LOW)

GPIO.cleanup()


Delprojekt 17 - Styra L298N med PWM från RPI
För att kunna styra mina motorer mot rätt GPS-koordinat måste jag ha styrning av motorerna med PWM. På RPI finns det två utgångar för PWM och det är dessa jag kommer använda mig av. Det är GPIO12 och GPIO13.

Har precis tagit ett beslut att använda mig biblioteket det som finns inyggt i RPI.GPIO. Då det blir enklare att implementera koden och sedan får vi se hur det blir om det blir tillräckligt tillförlitligt. Annars byter jag ut biblioteket till RPIO.PWM istället.

Fick till koden med en stegrande ökning av hastigheten och tycker det funkar över förväntan. Sen är det inte helt steglös utan man märker olika förändringar så helt steglöst ska vi inte säga det är med en DC-motor och RPI.GPIO - vet inte om det skulle bli bättre med RPIO.PWM och tänker inte testa detta till att början med.

Utgått från koden i första testet med motorn och här är den:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
import RPi.GPIO as GPIO
from time import sleep

GPIO.setmode(GPIO.BOARD)

Motor1A = 16
Motor1B = 18
Motor1E = 32

GPIO.setup(Motor1A,GPIO.OUT)
GPIO.setup(Motor1B,GPIO.OUT)
GPIO.setup(Motor1E,GPIO.OUT)

pwmMotor1 = GPIO.PWM(Motor1E, 150)

pwmMotor1.start(0)

print "Turning motor on"
GPIO.output(Motor1A,GPIO.HIGH)
GPIO.output(Motor1B,GPIO.LOW)
GPIO.output(Motor1E,GPIO.HIGH)

for dc in range(50, 100, 5):
          pwmMotor1.ChangeDutyCycle(dc)
          sleep(2.50)

sleep(2)

print "Stopping motor"
GPIO.output(Motor1E,GPIO.LOW)

pwmMotor1.stop()

GPIO.cleanup()


Delprojekt 18 - Styra PWM baserat på compassometer med en fixed variabel
Nu har jag fått både compassometern och motorn fungera i python utan några större konstigheter. Nu är det dags att sätta tänderna i det lite svårare att implementera koden tillsammans. Detta för att kunna styra gräsklipparen så den åker åt rätt håll och svänger när det är tänkt. Det första i denna del är att jag ska se till att motorerna kan styras med hjälp av PWM och compassometern.

Har precis fått in min heading som en variabel.
Har fixerat mitt mål mot norr just för att få till koden och allt därikring.
Nästa problem, eller kanske inte problem utan utmaning är hur jag ska skriva in Norr som variabel med degrees och minuter.

Gjort en liten punktlisa hur jag ska bygga upp programmet:
Läsa av heading - nuvarande
Läsa av position - dit vi ska (här kommer jag använda NORR 0 som statisk punkt i detta program)
Detta sker i en loop så att vi håller rätt position.
Motorerna
Om heading=position ska båda motorerna gå på PWM=100
Om heading inte är lika med position och är mellan 180-355 - styr Motor1 PWM=60 Motor 2=100
Om heading inte är lika med position och är mellan 005-179 - styr Motor2 PWM=60 Motor 2=100

Koden kommer snart..

Delprojekt 19 - Skapa en RTKLIB basstation för utomhussbruk
https://pixhawk.org/dev/rtk-basestation

Ok - Hur gör man detta? I min egen fantasi var detta verkligen enkelt men när jag började fundera blev saker inte så självklara längre som jag trodde det skulle vara. För att kunna använda sig av en pålitlig basstation och använda sig av antennen hur ska man göra. För om den står på ett och samma ställe och får olika koordinater även om den står på samma ställe blir det ju fel? Hur ska man då göra? Jag har letat efter guider där folk bygger sina egna basstationer men inte hittat några bra tips eller guider så jag fick läsa manualen och klura lite själv.

Vi kommer ha två antenner:
1 antenn - basstation
1 antenn - gräsklipparen/roboten

Funktion:
basstationen ska kommunicera med gräsklipparen och berätta exakt var den befinner sig
Om basstationen får olika koordinater hela tiden kommer gräsklipparen få en felaktig position också och det blir ju inte bra
Det finns "riktiga" basstationer i sverige man kan använda sig av via NTRIP-caster men det ska inte jag göra, jag ska ha min egen på taket.

Tillvägagångsätt i min teori för basstationen och vad jag läst mig till:
Starta igång min RPI med antenn som ska vara basstation och här ska jag samla in mätvärden för denna position i 24h. När den har samlat värden i 24h ska jag välja det sista värdet. Denna variant ska gå i PPP-static.
Efter detta har vi fått en POSITION som är OK och det är min basstation. Antennen måste fixeras på detta ställe och ska alltid vara på samma ställe.
PPP-static tar och gör beräkningar på alla inmatade värden och gör ett medelvärde på positionen, detta innebär att efter 24h ska värdet vara så pass bra att detta är min basstation.

I min konfigurationsfil för RTKRCV har jag ställt in att outputfilen ska vara llh och sedan sparas i en fil som heter basstation.gps. Då får jag in alla värden som skapas i filen.

Eftersom jag loggar in allt via ssh - krävs det även för att köra rtkrcv i bakgrunden, även om jag stänger ner sessionen. Detta har jag gjort med nohup kommandot på följande sätt.
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
screen
Då om jag stänger ner min aktiva sessionen och startar en ny och kör
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
screen -r
kan jag se att rtkrcv går i bakgrunden. För att komma ut från screen används kommandot ctrl+a och d. Då disconnectar man sessionen och den går i bakgrunden. Med screen -r hoppar du in i bakgrundsessionen. Vill du avsluta en session använder du kombinationen ctrl+a och k - som står för kill.

Har nu testat min basstation och samlar i detta nu in värden som ska samlas i 24h. Om jag har förstått det är rätt krävs minst 24h insamlande av data för att få cm-precision, och det är vad jag vill åt. Vi får se hur exakt position det blir. Jag har fått en OTROLIGT exakt position på mina tidigare tester. För att det ska bli så korrekt som möjligt kräver det satellitter med snr >40. Nu ska vi testa Rover mode också och kommunicera detta. :D

Lite motgångar ska man ju också ha, upptäckte att snr som borde ligga enkelt över >40 inte gjorde det. Troligtvis är det någon kontakt inne i mitt vattentäta skal som har släppt, så det blir till att öppna upp och se vad det är. Felet är kabeln med N-hane och U.fl - testade in i samma modul med samma antenn, och fick direkt 7 st satelliter med SNR>40. Så en ny kabel ska ordnas till detta. För att komma vidare kommer jag använda en patch-antenn till rovern, tills jag har fått tag på en ny kabel. Direkt när jag kopplade in patch-antennen fick jag direkt 6 satelliter med SNR>40 utan problem.

I gräsklipparen ställer vi in basstationen som vi har fått ut efter att samlat in värden. Detta gör att vi har en position på basstationen och RTKLIB får sedan utifrån detta modifiera och korrigera så det blir korrekt.

Har fått in 12h mätvärden som jag kommer basera de första testerna på, vill egentligen ha minst 24h mätvärden. Har även startat ett issue på RTKLIB Github sida för att se om det är en bugg eller något annat problem.

Kommer göra en exakt beskrivning när jag är färdig med detta men med kanske enbart 1-2h mätvärden för att testa och se om detta blir ett korrekt sätt att göra det på.

Har även upptäckt att GPS-data man samlar in höjdmässigt inte stämmer alls - om man vill ha en "riktig" höjd över havet så behöver man slå in det på följande sida : https://www.unavco.org/software/geodeti ... lator.html . Då får man ut en mer korrekt höjd var GPS-faktiskt befinner sig.

http://grauonline.de/wordpress/?page_id=1468

Delprojekt 22 - Montera motorn på cylinderklipparen - förkastad ide - Se Delprojekt 23 (nerlagt)
Här är en sprängskiss på hur klipparen ser ut del för del Sprängskiss AL-KO Comfort 38-5. Här nedanför är även det som är intressant för detta projekt från sprängskissen..
Bilaga:
gräsklippare.JPG

Jag har tagit bort hjulet och kollat hur det ser ut. Själva staget som går rakt igenom klipparen är enbart för hållfasthet - så jag ska använda mitt multiverktyg för att kunna placera in motorn inifrån. Motorn får plats perfekt in i staget som är öppet - sedan kommer jag skruva fast motorn med 6 st skruvar utifrån i motorns hål som är gjorda för detta. Utanpå däcket kommer jag sedan ha en 3d-printad del för att kunna driva gräsklipparen framåt. I staget kommer jag borra ett litet hål så jag kan dra kablarna igenom och upp i mitten av gräsklipparen. Detta för att skydda kablarna så mycket det går. Jag hade en tanke att montera in motorn i staget och låta det sitta kvar - se bilden. Men motorn skulle inte få plats så jag var tvungen att kapa bort hela staget. Det här var min tanke:
Bilaga:
IMG_20170408_174856.jpg

Tyvärr så fungerade det inte.
Så här ser klipparen ut nu - då jag fått kapa bort hela staget. :
Bilaga:
IMG_20170409_135335.jpg

Har gjort modeller i Fusion 360 som en kollega skrivit ut i 3d - det börjar känna sig att det närmar sig mål med monteringen. Sedan kommer det vara en del finjusteringar allteftersom men detta är en bra start.
Bilaga:
IMG_20170412_190604.jpg
Här är själva 3d-printen som används.
Bilaga:
IMG_20170412_191259.jpg
Här är printen monterad på hjulet - passformen är perfekt!
Bilaga:
IMG_20170412_191416.jpg
Här är hjulet monterad - upptäckte dock att det behövdes förlängas ca 2mm och även gjort ett hål in för att kunna fästa motorn mot metallen.

Testat den nya printen - dock var den för TIGHT - så jag fick borra i den. Bara för att se hur långt jag kunde komma. Med denna hade jag en plan att jag nu skulle fästa fast motorn i själva gräsklipparen. Hade inga M3-skruvar som behövdes för detta. Får köpa och återkomma.

Modifierad och förbättrad version skickad så jag hoppas den blir bra nu.

Det är svårare att montera motorn än vad jag trodde. Har nu skruvat i 3 st M3 skruvar i skruvhålen i växellådan på motorn utifrån från gräsklipparen.
Dock är stabiliteten i däcket inte ALLS bra - och jag tänkte faktiskt första göra tester för att se vad som händer när man nu startar motorn. Som några påpekat kanske gräsklipparen tippar och vill ha detta bekräftat hur det fungerar.

Håller på och funderar på konstruktion för att stabilisera upp hjulen.

Denna idé är förkastad av mig då motorerna var alldeles för NÄRA cylindern. Jag tror att ett litet gupp och sedan lite svaj i motorn och sedan var den ivägskickad av cylindern som roterar. Så nya tag och nya bilder i nästa projektdel.

Delprojekt 23 - Montera motorn på cylinderklipparen - ny idé
Har kommit fram till att motorerna kommer monteras ovanpå själva klippdelen. Då är motorerna skyddade mot cylindern och det är enkelt att dra kablar som behövs för att komma åt allt. Dels till batterierna och även till motorcontrollern. Här är två bilder på hur montaget ser ut.
Bilaga:
IMG_20180807_204805.jpg

Bilaga:
IMG_20180807_204818.jpg

Här även monterat motorcontroller se bild
Bilaga:
IMG_20180811_224429.jpg


Får inte plats mer bilder i detta inlägget...

Delprojekt 24 - Få gräsklipparen att röra på sig efter förändrad konstruktion av motorplacering
Gräsklipparen rör sig och den åker framåt, då utan att cylindern är igång. Men det fungerar -
MILSTOLPE!!!!!

Delprojekt 20 - Testa precision jag kan få trädgården med bas och en rover - pågående
Har ju i tidigare delprojekt 13 börjat göra tester men nu är det mer "riktiga" tester för att få ut inom vilka koordinatorer gräsklipparen ska åka. Jag har min basstation som är monterad och klar.

Det jag ska göra är att använda mig av STR2STR - det motsvarar STRSVR för Windows. Detta är basstationen.
Det andra programmet som används är RTKRCV - det motsvarar RTKNAVI för Windows. Detta är rovern/gräsklipparen.
Som bilden visar.
Bilaga:
rtk-gps.JPG


Som tidigare nämnts för att använda STR2STR körs följande kommando, där konverteras också indata-till rtcm3 format:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
./str2str -in serial://ttyAMA0:115200#ubx -out test.rtcm3#rtcm3

För att starta basstationen och starta en TCP-server har jag gjort med följande kommando
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
./str2str -in serial://ttyAMA0:115200#ubx -out tcpsvr://:50021
Detta skickar data i samma format som den får in data i alltså UBX och det är vad jag vill.
För att starta basstationen och starta en TCP-server, skickar GPS-koordinatorer och sedan skickar en del meddelande använder jag följande:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
./str2str -in serial://ttyAMA0:115200#ubx -out tcpsvr://:50021 -p 59.27153435 17.81710243 47.879


Mina koordinater är: 59.27153435,17.81710243,47.879

För gräsklipparen använder jag:
RTKRCV
I konfigurationen behöver jag välja varifrån datan kommer - GPS - som är ansluten till seriell UART på RPI 2.
Behöver även välja vilken basstation/server jag ska koppla ihop mig med.
Här skriver jag på
inpstr2-type=tcpcli
inpstr2-path=10.0.0.200:50021
inptstr2-format=ubx
I konfigurationen ligger även den statiska koordinaten till basstationen. Det gör man på följande rader i konfigurationsfilen:
ant2-postype =llh # (0:llh,1:xyz,2:single,3:posfile,4:rinexhead,5:rtcm)
ant2-pos1 =35.87298031 # (deg|m)
ant2-pos2 =138.38966505 # (deg|m)
ant2-pos3 =1003.852 # (m|m)
Har även lagt till Kinematic som lösning på hur
pos1-posmode=kinematic

Startade upp min andra RPI tillsammans med GPS-modul och timing-antenna, fick snabbt en fix-position och nästan alla 9 satelliter hade en snr>40 direkt. Så riktigt bra förutsättningar för att det här ska fungera. Men som sagt i en annan projektdel har jag just nu lite problem med att jag får väldigt låga snr på basstationen som måste ordnas till först innan vi kan testa vidare med mer exakta koordinatorer. Testar med patch-antenn på rover-delen som fungerar alldeles utmärkt, men kommer senare byta ut denna.

Patch-antenn på gräsklipparen kommer INTE att fungera utan ett grundplan, därav kommer den inte att användas. Har däremot testat med min HELIX (mina inköpta antenner) och får riktigt bra och höga SNR-tal på gräsklipparen utan grundplan.

Nu är det mer hur bra kommunikation det är med det trådlösa nätet som är en begränsning. Har ordnat så att kommunikationen mot det trådlösa nätet också är tillfredsställande till den nivå jag behöver känns det som. Detta löstes enkelt genom en ny WiFi-adapter med extern antenn så fick jag genast mycket bättre täckning.

Ska även försöka optimera konfigurationen på delarna så att positionen blir mer korrekt.

Håller som bäst på att optimera in konfigurationen för basen - det finns en hel del inställningar. Jag håller på och prövar mig fram för jag behöver som sagt ha en ganska stabil och bra precision på GPS:en kontinuerligt. Kan jag hitta inställningar som fungerar tillfredställande har jag kommit en väldigt bra bit på vägen.

Har precis ökat upp frekvensen på rovern från 1Hz till 5Hz. Basstationen använder just nu 1Hz och tror jag behöver höja den till 5Hz också.

Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
./str2str -in serial://ttyAMA0:115200#ubx -out tcpsvr://:50021 -c ../../../data/ubx_raw_5hz.cmd


Allt går så mycket snabbare med högre frekvens på datan som ska behandlas. Har just nu bara sett att det är jättestor sklillnad från 1 till 5hz på Rovern. Så antar att det kommer gå mycket snabbare nu när jag kör även 5hz på basstationen. Ska testa mer ikväll..

Börjar fundera på om det är mycket buggar i RTKRCV som jag använder mig av. Testat att använda mig av RTKNAVI och tagit in strömmen från Basstationen både som ROVER och BAS. Då jag enbart har 4 satelliter låsta får jag en FIX-position på några få sekunder. Jag räknar inte med några få sekunder när gräsklipparen har antennen på sig. Men mitt nästa test blir till att köra str2str från gräsklipparen med och ta in det i RTKNAVI för att se om det fungerar bättre.

https://www.u-blox.com/sites/default/fi ... Public.pdf
https://github.com/tomojitakasu/RTKLIB/issues/99
https://github.com/tomojitakasu/RTKLIB/issues/166

Delprojekt 21 - Göra en ny basstation och korrelera mot SWEPOS (pågående)
Har testat att koppla upp mot SWEPOS - fungerar bra.
Fått position snabbt - några sekunder för att få en korrekt placering, har lite mer utmaningar att få en korrekt AR-fix.
Hade en del problem med att få in basstationens position, men hade missat att ändra att den kom med i RTCM meddelandet.
Detta gör man i konfigurationen under
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
ant2-postype       =rtcm
utan denna kommer du aldrig få en Float eller Fix position.
När man kopplar upp sig mot SWEPOS måste man även skicka med GGA-meddeladet från NMEA och detta ställs in under
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
inpstr2-nmeareq    =single


Har fått en väldigt hög precision på BAS-stationen när den är korrelerad mot SWEPOS, men får inga höga AR-tal och väldigt få FIX-positioner.
Men när jag har FLOAT får jag extremt hög precision och det är +/-1.5cm när jag kör mot SWEPOS.

Få till höga AR-tal verkar svårt..

Försöker optimera konfigurationen för att få bra fix även vid rörelser och höga AR-tal. Har svårt att få till det här men försöker och försöker.

Fått följande koordinater med FLOAT:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
59.27153281 17.81710325 48.030

Fått följande koordinater med FIX:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
59.27153251 17.81710225 47.980



Anser mig KLAR med denna punkt.


Delprojekt 32 - Prototyp 1, tester (pågående)
Har utfört en hel del arbete som krävs för att kunna testa med prototyping, men jag tror jag är där nu - nästan i alla fall. Det jag kommer göra här är följande:
    Läsa av GPS-position
    Läsa av bäringen från en kompass
    Testa formler för att göra autopiloten
    Använda motorerna för att hålla bäringen
    Använda motorerna med PWM för att styra prototypen

Hur ska jag göra detta program?
Jag kommer använda mig av en fast GPS-koordinat. (variabel 1)
Denna programmeras statiskt i koden för denna prototyp.

Ekipaget kommer regelbundet uppdatera sin GPS-koordinat. (variabel 2)
Denna variabel kommer via en TCP-ström från RTKLIB. Detta är ett tidigare projekt jag gjort så då ska denna kod implementeras här.
Får bli via en funktions som anropas av variabeln antar jag.

När ekipaget startar känner den av åt vilket håll compassometern är riktad. (variabel 3)
Här är den enkla koden från HMC5883L som ska implementeras. Här anropas funktionen så att denna uppdateras kontinuerligt.

För att veta åt vilket håll ekipaget ska åka görs en beräkning av variabel 1 och variabel 2 - vi får då riktning. (variabel 4)
Här kommer jag använda mig av Geopy som får implementeras med en funktion.

Variabel 4 jämförs med variabel 3. Detta kommer sedan styra PWM för att svänga runt ekipaget åt rätt position mot variabel 4.


Hela tiden kollas hur långt det är mellan variabel 2 och variabel 1, när det är mindre än 50cm kvar stannar programmet som gör att motorerna stannar. (variabel 5)

Vad programmet gör på enkel svenska - detta för att underlätta kodandet


Delprojekt 33 - Styra PWM baserat på compassometer
Nu när jag har gjort i ordning programmet för att styra mot Norr ska jag göra ett där variabeln ändras allteftersom gräsklipparen förflyttar sig.

Delprojekt 34 - Beräkna strömåtgång för 2st Raspberry Pi

Delprojekt 35 - Starta basstationen automatiskt så fort den får ström(KLART)
Basstationen ska ju bara fungera för att strömma data till rovern så fort den är spänningssatt och startat så ska den starta sina tjänster automatiskt. Ingen ska behöva interagera med RPI om det inte är för annat än serviceunderhåll. För att få det att fungera tänker jag göra ett litet projekt av det också.

Behöver först kolla in i /boot/config.txt för att se att init_uart_baud=230400 eller högre. Så att modulerna kan kommunicera i den hastigheten.
Kompilera str2str med make som jag visat i tidigare projekttråd
Kopiera str2str till bin katalogen på PI som ska husera basstation
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo cp str2str /usr/local/bin/str2str

Sätt rättigheter så den blir körbar
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo chmod +x /usr/local/bin/str2str

Nu kan du starta str2str från vilken katalog som helst

För att starta basstation och testa så det fungerar:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
./str2str -in serial://ttyAMA0:230400#ubx -out tcpsvr://:50021 -c /home/pi/RTKLIB/data/ubx_raw_5hz.cmd

I den här filen har jag även valt att lägga till:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
!UBX CFG-MSG 3 10 0 1 0 0 0 0
!UBX CFG-MSG 3 16 0 1 0 0 0 0
!UBX CFG-MSG 1 32 0 1 0 0 0 0
!UBX CFG-MSG 1 34 0 1 0 0 0 0
@
!UBX CFG-MSG 3 10 0 0 0 0 0 0
!UBX CFG-MSG 3 16 0 0 0 0 0 0
!UBX CFG-MSG 1 32 0 0 0 0 0 0
!UBX CFG-MSG 1 34 0 0 0 0 0 0

För att få RAW-data ut direkt från GPS-modulen utan att behöva göra något mer.

Nu ska vi göra ett script som autostartar när vi startar pajen.. och sen service som görs automatiskt när pajen startas.
För skriptet kör vi ett vanligt shell skript och för servicen använder vi systemctl

Skapa en ny fil
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo nano str2str_start.sh


Var tvungen att göra om lite så jag för på följande sätt då jag inte fick .cmd filen att fungera som tänkt.

Skapar en tjänst som startar output av RAW-data med anrop av ett Pythonskript behöver då inte använda mig av någon .cmd fil i STR2STR outputen.
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo nano rawgps.service


och i denna fil ligger följande:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
[Unit]
 Description=My Sample Service
 After=multi-user.target

 [Service]
 Type=idle
 ExecStart=/usr/bin/python /home/pi/raw-output.py

 [Install]
 WantedBy=multi-user.target


Flytta service filen till katalogen där systemd har tillgång till den:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo  mv rawgps.service /lib/systemd/system/

Gör filen körbar med 644 eller +x
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo chmod 644 /lib/systemd/system/rawgps.service

Aktivera att filen finns i katalogen
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo systemctl daemon-reload

Aktivera tjänsten
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo systemctl enable rawgps.service


Detta fungerar bra och när jag kör Str2STR fungerar det utmärkt. Ska även försöka implementera så att STR2STR med argument körs när vi startat Pajen.
Får göra en ny tjänst för enbart STR2STR som använder SYSTEMD och tänker mig följande:

Har lagt STR2STR som en tjänst i CRONTAB som startas efter en omstart av pajen.
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
[Unit]
Description=Run STR2STR after RAW-output has been started

[Service]
Type=idle
ExecStart=/home/pi/str2str_start.sh

[Install]
 WantedBy=multi-user.target


Sedan har jag lagt till tjänsten precis som med RAW-outputen. Fungerar bra. Hade problem med att den inte puttade ut data i 5hz utan bara 1Hz.
Var tvungen att ha med path i shell-skriptet. Så det slutade så här:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
#!/bin/bash
path="/home/pi/RTKLIB/"

# start task to collect rover data at 5 Hz
str2str -in serial://ttyAMA0:230400#ubx -out tcpsvr://:50021 -out test%Y%m%d%h%M.ubx -c /home/pi/ubx_raw_5hz.cmd -c  /home/pi/ubx_raw_5hz.cmd &


Får se det här som klart också!

Delprojekt 35 - Göra ett grafiskt interface för att styra gräsklipparen från mobilen(KLART)
Eftersom gräsklipparen har kontakt med vårt WiFI-nät tänker jag implementera styrning via smartphone i en mobil applikation på en webbsida för att inte blanda in mer radiosändare. Nu har vi två radiosändare, en för WIFI och en för GPS det får räcka tycker jag.

Min tanke är att använda mig av NGINX som jag har erfarenhet av sedan tidigare och tycker det är en bra plattform att bygga hemsidor på.
Börjar med att installera nginx på gräsklipparens paj
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo apt-get install nginx

Starta tjänsten nginx genom
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo service nginx start

Nu kan du testa från webläsare att gå till din ip du har på gräsklipparen och du kommer mötas en sida som säger att du inte är färdigkonfad än
Sen ska vi installer node.js som vi kan göra fantastiska saker med.
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo apt-get install -y nodejs

För att sedan installera och komma åt GPIO-pinnarn med PWM från pajen behöver vi PIGPIO
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo apt-get install pigpio

Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
npm install pigpio

Vi behöver skapa en websocket så att vi kan kommunicera med pajen i realtid, därav valet av NodeJS där detta finns integrerat.
Då behöver vi installera socket.io som fungerar till Node.JS
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
npm install socket.io

NU ska vi ändra index filen till http servern - som standard lagras den här
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
/var/www/html/

Skapa en socket som du kan kommunicera med som en JS fil.
Starta sedan node med filen du skapade och testa.

Varför uppfinna hjulet när det redan finns, hittade Zerobot som hade precis vad jag behövde. Ett touchintrerface till en webbrowser.
Så skönt så fortsätter på den inslagna vägen från Zerobot för att göra ett grafiskt interface för att styra rovern..

Det är ju en del kod som ska till och har fått det att fungera bra. Ska ändra en del så att den blir anpassad till min gräsklippare.

Delprojekt 36 - Köra ett testmönster som en fyrkant med gräsklipparen för att samla in data till GPSEN

Förklaring kommer senare här är koden:

Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
import RPi.GPIO as GPIO
from time import sleep

GPIO.setmode(GPIO.BOARD)

#Har två motorer och det finns tre ingångar på L298N för att styra
#1A och 1B är + och - och 1E är Enable, utan Enable så händer inget
#2A och 2b är + och - och 2E är Enable för motor 2
#När GPIO utgångarna har HIGH skickas en signal och LOW ingen signal, är både 1A och 1B samma HIGH eller LOW händer inget och 1E också är HIGH eller LOW
Motor1A = 16
Motor1B = 18
Motor1E = 32
Motor2A = 21
Motor2B = 23
Motor2E = 33

GPIO.setup(Motor1A,GPIO.OUT)
GPIO.setup(Motor1B,GPIO.OUT)
GPIO.setup(Motor1E,GPIO.OUT)
GPIO.setup(Motor2A,GPIO.OUT)
GPIO.setup(Motor2B,GPIO.OUT)
GPIO.setup(Motor2E,GPIO.OUT)

print "Turning motor on"

GPIO.output(Motor1A,GPIO.LOW)
GPIO.output(Motor1B,GPIO.HIGH)
GPIO.output(Motor1E,GPIO.HIGH)
GPIO.output(Motor2A,GPIO.HIGH)
GPIO.output(Motor2B,GPIO.LOW)
GPIO.output(Motor2E,GPIO.HIGH)

sleep(5)

GPIO.output(Motor1A,GPIO.HIGH)
GPIO.output(Motor1B,GPIO.LOW)
GPIO.output(Motor1E,GPIO.HIGH)
GPIO.output(Motor2A,GPIO.HIGH)
GPIO.output(Motor2B,GPIO.LOW)
GPIO.output(Motor2E,GPIO.HIGH)

sleep(1.25)

GPIO.output(Motor1A,GPIO.LOW)
GPIO.output(Motor1B,GPIO.HIGH)
GPIO.output(Motor1E,GPIO.HIGH)
GPIO.output(Motor2A,GPIO.HIGH)
GPIO.output(Motor2B,GPIO.LOW)
GPIO.output(Motor2E,GPIO.HIGH)

sleep(5)
GPIO.output(Motor1A,GPIO.HIGH)
GPIO.output(Motor1B,GPIO.LOW)
GPIO.output(Motor1E,GPIO.HIGH)
GPIO.output(Motor2A,GPIO.HIGH)
GPIO.output(Motor2B,GPIO.LOW)
GPIO.output(Motor2E,GPIO.HIGH)

sleep(1.25)
GPIO.output(Motor1A,GPIO.LOW)
GPIO.output(Motor1B,GPIO.HIGH)
GPIO.output(Motor1E,GPIO.HIGH)
GPIO.output(Motor2A,GPIO.HIGH)
GPIO.output(Motor2B,GPIO.LOW)
GPIO.output(Motor2E,GPIO.HIGH)

sleep(5)
GPIO.output(Motor1A,GPIO.HIGH)
GPIO.output(Motor1B,GPIO.LOW)
GPIO.output(Motor1E,GPIO.HIGH)
GPIO.output(Motor2A,GPIO.HIGH)
GPIO.output(Motor2B,GPIO.LOW)
GPIO.output(Motor2E,GPIO.HIGH)

sleep(1.25)

GPIO.output(Motor1A,GPIO.LOW)
GPIO.output(Motor1B,GPIO.HIGH)
GPIO.output(Motor1E,GPIO.HIGH)
GPIO.output(Motor2A,GPIO.HIGH)
GPIO.output(Motor2B,GPIO.LOW)
GPIO.output(Motor2E,GPIO.HIGH)

sleep(5)

print "Stopping motor"
GPIO.output(Motor1E,GPIO.LOW)
GPIO.output(Motor2E,GPIO.LOW)

GPIO.cleanup()


Delprojekt 36 - Markera ut en slinga med GPS-koordinator där gräsklipparen får röra sig
Markera waypoints och göra tracks

Latitude coordinate precision by the actual cartographic scale they purport:

decimal
places degrees distance
------- ------- --------
0 1 111 km
1 0.1 11.1 km
2 0.01 1.11 km
3 0.001 111 m
4 0.0001 11.1 m
5 0.00001 1.11 m
6 0.000001 0.111 m
7 0.0000001 1.11 cm
8 0.00000001 1.11 mm

http://www.gpsvisualizer.com/tutorials/waypoints.html

Författare:  Henke_83 [ 12.37 2015-09-09 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Lasp skrev:
Mycket bra och tydlig projektbeskrivning.
Jag gillar din åtgärdsplan på din hemsida, rätt tänkt och gjort.

Fråga, kommer cylindern att rotera med hjälp av framhjulen eller kommer det att vara en separat cylinderdrivning? Kommer cylindern att lyftas upp vid tomkörning och riktningsförändring? :humm:


Lasp: Tack för frågorna, jag har updaterat innehållet vad gäller gräsklipparen och även motorerna. Vid riktningsförändring kommer cylindern klippa och min tanke jag har är att om det ska ske en ändring i riktning så ska det ena hjulet backa eller stå still och det andra gå framåt. Så det kommer i princip aldrig vara tomkörning utan det kommer vara klippning konstant så länge den rör på sig.

Författare:  Sverige [ 14.47 2015-09-09 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Kul projekt :tumupp:

Författare:  netrunner [ 16.14 2015-09-09 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Ska du knuffa en cylindergräsklippare framåt med två motorer på 24Watt? Eller har cylindergräsklipparen en egen motor inbyggt?

Du "biter" över ganska mycket i projektet. Kanske är det bättre att välja en färdig autopilot och sen modifiera koden för gräsklippare.

Om du väljer APM 2.6 (firmware rover) så kan du dra nytta av 10'000 utveckling / test timmar och i alla fall ha mer än tillräckligt med jobb för att anpassa koden till "gräsklipper med två motorer". Sen kommer andra att kunna dra nytta av det jobb du gör.

http://www.ebay.com/itm/161795601910

Författare:  danielr112 [ 16.38 2015-09-09 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Låter som du har något klena motorer i testet.
För att ta exempel så är mina klippmotorer på 200watt styck på min klippare. En rotorklippare drar väl ganska mycket mera eller har jag fel?

Har för mig drivmotorerna är på nåt liknande men låter det vara osagt.

Annars sjukt skoj projekt. Jag skulle också nog titta på APM men det är ju dock inte lika skoj som att bygga själv :) Kör på! Testar man inte lär man sig inte.

Författare:  orvar-e [ 17.27 2015-09-09 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Intressant projekt.

Tycker också att klipp motorn verkar vara i svagaste laget. Det blir ju tyngre att klippa gräs än att inte göra det så att säga.
Kul ideé med cylindergräsklippare, länge sedan man jobbade med en sådan.
Hur många motorer ska du ha, tre?? två för framåtdriften och en för klippningen?

Författare:  Henke_83 [ 18.03 2015-09-09 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

netrunner
danielr112
orvar

Svar till er.

Intressant om motorerna! :)
Som skrivits tidigare kommer jag använda mig utav 2 motorer - 1 till varje hjul.
Jag har gjort en beräkning på en hemsida hur tungt ekipaget är och hur mycket max lutning är. Fått fram en MAX-TORQUE som motorerna ska klara och jag är långt över den tillsammans med motorerna. Där beräknar man kapaciteten på 65% av vad den ska klarar.

Jag har även räknat med friktion vid klippning.

Men jag säger inte emot er att motorerna är för svaga - det blir intressant att se när jag monterat dessa om ekipaget kommer röra sig överhuvudtaget.

Vad gäller autopiloten så är det mer för att förstå och lära sig hur den skulle kunna fungera. Mycket roligare att göra egen än att använda befintlig av den delen av projektet. ;) Om jag lyckas vill säga.

Författare:  orvar-e [ 18.25 2015-09-09 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Om du använder dig av 2 motorer så betyder det att så länge klipparen går rakt fram så så driver de cylindern lika, men om du ska svänga så får den motorn som går fortast ta all last.
Om den då inte orkar med klippcylindern så kanske det inte svänger så värst mycket, för du ska väl ha nån slags frihjulskoppling.

Författare:  danielr112 [ 19.26 2015-09-09 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Hur bred är klippen? Jag tänker mig en sådan puttklippare. Dom är tröga att driva i tomme. Har dock inga belägg för hur mycket kraft som faktiskt går åt.

Författare:  Hedis [ 21.59 2015-09-09 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Behövs det inte en fastmonterad referenspunkt och sedan kommunikation mellan referensen och rovern för att få den precisionen med RTK? (nu var det iofs. ett tag sedan jag kollade på det där)

Författare:  asklepios [ 21.30 2015-09-10 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Jag vill också ha en gräsklippare som navigerar med koordinater och ej med elledning. Gör en klippare åt mig också!

Författare:  Henke_83 [ 18.05 2015-09-15 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Svar på vissa frågor ovan..

Klippen är 38 cm bred. Jag räknar med att gräsmattan blir ca 400m2 av trädgården, inte jättestort.
Gjorde lite tester i helgen hur tung den är när cylindern går i men det känns inte helt orimligt att dessa två motorer kommer fixa detta.
Frikopplar gör gräsklipparen när den går bakåt, så ett alternativ vid lägesförändring är att den får backa om inte en motor orka driva klippen.

Jag har tänkt använda mig av RTK och en basstation så det kommer krävas en GPS-mottagare till. Håller på och försöker se om Ublox NEO-7M verkligen kan spotta ut den data jag behöver till RTKLIB, verkar inte så. Läst på diverse forum om detta och har hållt på de senaste dagarna med detta...

Om jag får detta att fungera som jag tänkt kan det bli riktigt bra.. tror jag..

Författare:  Sverige [ 20.23 2015-09-15 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Då kan den backa om batteriet blir för dåligt och åka och ladda...

Hur fort behöver cylinderklipparen rotera för att klippa bra?

Författare:  netrunner [ 20.27 2015-09-15 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

GPS:er baserade på "Ublox" kan konfigureras med en programvara... som verkade ha ca 1000 olika inställningar. Visst jag överdriver men det var helt sjukt mycket. Du är ute efter någon form av råd-data ut och det förefaller rimligt.

Sirf - GPS:er ska det fungera för i alla fall.

Författare:  netrunner [ 20.36 2015-09-15 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

BTW, för att du ska ha nytta av detta så måste du ju programmera hela "navigations delen" + en grafisk frontend till den + skapa ett protokoll för navigation. Det är en saftig bit. Jag skulle vara grymt imponerad om du så "bara" konverterade APM till detta.

BTW, behöver du kalibrerar kompassen? Stämmer NORR mot en vanlig kompass?

Författare:  Henke_83 [ 20.58 2015-09-16 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Äntligen!!!!

Nu har jag sett att mitt chip funkar att få utdata till RTKLIB. Se bifogad bild..

Bilaga:
rtknavi.PNG

Författare:  janbjorn [ 06.14 2015-09-17 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Coolt projekt! Har gått och funderat på något liknande varje gång jag är ute med klipparen i sommar. Kommer att följa ditt projekt med stort intresse.
Mina planer har gått i linje med vad Netrunner skrev att använda APM i Rover-läge och lägga ruttplanering och frontend i någon form av web-server som även får ta hand om den fasta GPS-en. Jag hade tänkt att skaffa en navio+ för att sköta navigering i klipparen, men du kör ju mer hardcore och hackar själv. :tumupp:

Författare:  PP3DP_SE [ 08.11 2015-09-20 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Du måste upp närmare 40snr helst över med allra minst 5 satelliter, annars kan du nog låta den bara gå med kompass;)
(Detta sagt med mina egna försök i gpsvärlden)

Skitkul projekt dock, skall följas:)


/Patrick

Författare:  Henke_83 [ 08.19 2015-09-20 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

PP3DP_SE skrev:
Du måste upp närmare 40snr helst över med allra minst 5 satelliter, annars kan du nog låta den bara gå med kompass;)
(Detta sagt med mina egna försök i gpsvärlden)

Skitkul projekt dock, skall följas:)


/Patrick


Kul att du tycker det är spännande - det tycker jag med. Nämnas är att testerna är gjorda inomhus inte i närheten av fönstret så snr kommer säkert upp i senare tester :)

Författare:  Dagobert [ 03.35 2015-10-04 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Ja, sktkul!
Läste precis att MIT(tror jag det var) har tagit fram en metod för att göra gps-datan mycket mer exakt(cm-precision) och detta var alltså utan dyrare hårdvara.

Kommer följa detta projektet. Superspännande med sådan cylinderteknik :)
Posta gärna bilder på allt!

Författare:  Henke_83 [ 08.11 2015-10-04 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Det är kul att det är så många tycker detta är roligt projekt!
Jag kommer posta fler bilder så småningom - just nu är det en del bitar som behöver falla på plats i projektet innan jag tar mig vidare.

Dagobert:
Tror jag kommer kunna komma ner till +-/10cm i precision med RTKLIB och två st UBlox Neo-7m.

För att se uppdateringar i projektet får ni hålla i utkik i Inlägg 3 i denna tråd.

Författare:  Sverige [ 18.45 2015-10-04 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Är det inte enklare, bättre att göra ett nytt inlägg...?
Då kommer tråden med bland olästa inlägg. Redigerade inlägg "syns" inte...

Författare:  orvar-e [ 18.50 2015-10-04 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Jaha.... Inte undra på .... 25 uppdateringar på inlägg 3.
Lite drygt faktiskt, mycket bättre med ny inlägg.

Fördelen ska vara om man själv vill bygga en likadan mackapär så finns all kod i ett inlägg. Det förenklar en del.

Författare:  Henke_83 [ 12.16 2015-10-07 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Ok - jag har läst era synpunkter och kommer göra så här.

Från och med nu kommer jag lägga ett nytt inlägg med ett Delprojekt - men jag kommer dubbelposta för att även uppdatera inlägg 3.
Detta för att samla allt material på ett ställe och för att underlätta för er som vill följa projektet från start till mål - utan att behöva leta efter inläggen.
Ni som följer och vill se var jag är kommer att kunna följa tråden som vanligt.

Sitter just nu och klurar på hur jag ska montera motorerna på klipparen - komponenterna är det enkla. Väntar även på att L298N och min andra GPS Ublox Neo-7m ska anlända så jag kan fortsätta med RTKLIB.

Hoppas alla är nöjda :)

Författare:  Henke_83 [ 12.31 2015-10-07 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Delprojekt 8 - Kompilera RTKLIB för Rasperry Pi med ver.2.4.2 med patch rev11
Det vi behöver från RTKLIB i Linux är ett program som kallas RTKRCV. Så jag ska visa hur jag gick tillväga för att kompilera detta.
Först skapar vi en katalog där vi kan ladda ner källkoden, jag kallade min mapp RTKLIB.
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
mkdir rtklib
Sedan ska vi ladda ner källkoden med git, kör följande kommando
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
git clone https://github.com/tomojitakasu/RTKLIB.git
Källkoden är ca 165mb. Kommandoradsinterfacet som gör realtidspositionering i RTKLIB kallas RTKRCV och det är det vi ska kompilera. Så gå in i katalogen $HOME\RTKLIB\app\rtkrcv\gcc genom att skriva
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
cd \RTKLIB\app\rtkrcv\
I denna katalog finns det en fil som heter makefile, här ska vi ändra så att vi kompilerar för Raperry PI 2. I filen finns ett ställe som heter CTARGET ändra denna rad till följande:
Citera:
Ctarget= -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard
Detta anpassar så att programmet är gjort för RPI 2. När vi kompilerar programmet använder vi kommandot make med variabel -j 4, detta gör att alla fyror kärnor används vid kompileringen. Kör följande kommando
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
make -j 4
Du har nu kompilerat RTKRCV, för att testa programmet kör det genom att skriva
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
./rtkrcv
KLART!

Författare:  Henke_83 [ 14.03 2015-10-07 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Batteri:
Alla komponenter kommer använda sig batterier, det kommer bli totalt 2 batterier. Ett batteri har inhandlats och det är för att strömsätta RPI med komponenter, det blev ett PowerBank 2200mAh Polymer Grade A för 100:-. Det kommer bli 1 batteri som strömsätter båda motorerna - detta för att underlätta vid uppladdning av batterierna och på så sätt minska vi vikten också. Kemin i batteriet kommer vara antinge Li-Ion eller Li-Ion polymer.

Ska även räkna ut hur länge PowerBank 2200mAh håller för mina komponenter och beroende på detta - bestämma hur mycket mAh det ska vara till motorerna.

Klipparen ska kunna vara ute i ca 1h. Då jag har 2 motorer på 12V och max.output är 2.1A - totalt 4.1A. För att räkna ut att jag ska denna i en timme att vara ute och köra så behöver jag ett batteri på 4.1/0,7= 5,85Ah Anledningen till att jag valt att dela med 0,7 är att batterierna inte orkar kräma ut allt som finns i dom. Så jag tror att ett batteri på 12V med minst 5850mAh ska räcka till mina motorer.

Författare:  mrfrenzy [ 06.29 2015-10-08 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Innan du dimensionerar batterier kanske du kunde montera dit motorerna och provköra med en kabel för att se om dom orkar klippa?

Magkänslan säger att det är betydligt jobbigare för armarna än 50W att putta en dylik klippare.

Författare:  Henke_83 [ 08.29 2015-10-08 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Tack för tipset!
Kommer avvakta med batteriinköp tills jag ser att motorerna verkligen orkar dra lasten..

Ska absolut testa innan jag köper batteri - även om jag tror man inte ska stirra sig blind på W. Eftersom det är en växel som gör att kraften blir större fast det går långsamt.

Tester och montering - näst på tur helt enkelt.

Författare:  Henke_83 [ 11.06 2015-10-25 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Har precis tagit mig en ordentlig genomgång hur cylinderklipparen fungerar.

Det sitter ett stag som går rakt igenom klipparen - detta är fastsvetsat och sitter enbart för hållfastheten. Har ingen funktion förutom att på denna sitter även hjulen fastmonterade med en låsring.
Bilaga:
WP_20151025_10_47_28_Pro.jpg

På hjulen sitter det i ytterkanten ett kugghjul. På själva cylindern(den som klipper) så är det fastmonterat ett litet kugghjul. Dessa två häktar i varandra när det är framåtdrift, vid bakåtdrift så är det frigång. Kunde inte få en bild på dettta då det blev alldeles för mörkt..

Den första monteringen kommer ske i plastringen som sitter ytmonterad på utsidan och där i tänker jag fästa motorn till en början.
Bilaga:
WP_20151025_10_57_26_Pro.jpg


För att testa om mina motorer kommer jag sätta en temporär placering på utsidan av klipparen.
Bilaga:
WP_20151025_10_57_54_Pro.jpg
Om dessa fungerar kommer den fasta monteringen bli på insidan så att motorerna "skyddas". Det som är bra är att cylindern inte slår i motorn eftersom de är placerade en bit ifrån varandra.
Bilaga:
WP_20151025_10_58_07_Pro.jpg
Det kommer se oerhört knepigt ut att det sticker ut 10cm på varje sidan.. och det är inte lämpligt.
Lite så här jag har tänkt och bilder på klipparen.. Inte så spännande men det är bilder :)

Författare:  netrunner [ 17.58 2015-10-25 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

10cm utstick på varje sida ser jag inte som ett problem.

Frågan är om motorn kan få gräsklipparen att röra på sig alls... och sen om den klippa gräs.

Jag skulle nog rigga upp något stag med smältlim/silvertjep och köra den på gräset bara för att se att den kan röra sig framåt.

Om det misslyckas så spelar det ingen roll hur fint du gör det sen.

Författare:  Henke_83 [ 18.31 2015-10-25 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Bra tips där med silvertejpen :)

Det är precis vad jag tänkt nu - testa se om motorerna är tillräckligt starka för detta så jag håller på och fnular på en temporär lösning för att fästa motorerna. Ett stag fäst med silvertejp med motorerna blir det nog.

Jag tycker att när det byggs ska det göras snyggt också :) Kanske inte som prototyp men när den väl är färdig, då tycker jag det är skönt att veta hur jag skulle kunna göra direkt också.

Men nu har jag hittat en lösning jag tror kommer fungera för att testa och se om motorerna går framåt - det blir en träbit med tre hål i - som en propeller.
Det kommer sitta två stag på "propellen" som går in i piggarna på hjulet på utsidan och ett hål för motorns axel. Ska bara försöka hitta en träbit här hemma..

Ska försöka få tid med detta i veckan..

Författare:  Henke_83 [ 16.13 2015-11-07 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Äntligen har jag kunnat testa en motor och se om jag har dimensionerat rätt!

DET FUNKAR!! - en motor orka driva klipparen framåt och även få cylindern att rotera i en bra hastighet för klippning.
Trots att de "bara" är på 25W vardera - men de är ju som sagt nedväxlade och ger ett högre vridmoment. Detta enligt beräkningar jag gjort när jag dimensionerade motorerna.

Så nu är jag inte orolig att mina två motorer ska orka driva klipparen framåt - bakåt var det inga som helst problem på frigången.

Viktigt är att konstruktionen är stabil för det är en hög kraft som forcerar klipparen framåt.

Mer instruktioner och uppdateringar om detta senare..

Tyvärr ingen film eller bild på detta. Kom på i efterhand att jag borde filmat hur snabbt cylindern och hjulet snurrade :)
Och detta med enbart en motor..

Författare:  orvar-e [ 17.39 2015-11-07 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Driva framåt ja, klippt nått gräs än?

Författare:  robbansson [ 12.44 2015-11-14 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

:tumupp:

Författare:  Henke_83 [ 14.49 2015-11-26 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Dags att sätta lite fart i detta projektet igen! Vad jag ska göra härnäst..


GPS
Har nu två st GPS-moduler - så jag ska testa och se om jag kan få RTKLIB att fungera.
Jag tänker använda mig av en RPI 2 som basstation - då denna har en quad-kärna. Så den borde kunna göra beräkningarna snabbare.
På gräsklipparen kommer det sitta en RPI B+ - den kör den andra delen av RTKLIB. Den kommer även köra min lilla automatiska styrning av gräsklipparen baserat på RTKLIB datan.

Montering av motorerna
Montering av motorerna - ska ta bort ett av hjulen till klipparen och sedan montera ett nav på insidan av hjulet. Detta nav kommer sedan fästas i motorn D-skaft med en skruv. Alltså kommer motorerna sitta på insidan av huset för gräsklipparen.

Författare:  Henke_83 [ 13.24 2015-11-27 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Delprojekt 8b - Använda RTKRCV för GPS Neo-7M under Linux
Det vi behöver göra för att kunna använda sig av RKTRCV under Linux är först att se till att få RAW-data ut från GPSen. Detta gör vi med hjälp av tidigare script/program vi skapat tidigare i denna guide under delprojekt 6. Scripten kör vi på följande sätt
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo python speed.py
för att öka upp hastigheten till max sedan
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo python raw.py
När detta är gjort kan vi kontrollera att vi får utdata i RAW-format. Då kör vi
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
cat /dev/ttyAMA0
alt.
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
gpscat /dev/ttyAMA0
förutsatt att vi har GPSen kopplad via UART. Vi kan även kontrollera så att hastigheten är rätt inställd genom att köra
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
stty -F /dev/ttyAMA0 -a
Det första som står är speed och där ska nu stå 115200 baud. Nu är RAW-data aktiverat.
Vi ska nu skapa en konfigurationsfil för Neo-7M - jag har valt att kalla min för 7m.conf. Denna behövs sedan när vi ska köra programmet - här ställer vi in vilken hastighet GPSen har vilken port den finns på och en hel del annat. För att starta programmet kör vi
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
./rtkrcv
i konsolen rtkrcv> laddar vi konfigurationen genom
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
load 7m.conf
Nu behöver du skriva
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
restart
för att aktivera konfigurationen. Då får vi ett
Citera:
rtk server restart
Nu kan vi köra
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
status
och se om det funkar. Sedan kör vi
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
solution 1
då kommer du få massa GPS-data om du har tillräckligt med satteliter låsta till GPSen.
Klart!

Författare:  sebastiannielsen [ 17.52 2015-11-27 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Måste du inte ha någon tyngd där fram, eller ett stag med hjul där bak?
Annars kommer väl klipparen slå runt 180 grader när du backar?
(När man klipper så som klipparen är tänkt att användas så håller man ju i hantaget vilket stabiliserar hela ekipaget så det inte slår runt när man backar)

Författare:  Henke_83 [ 12.48 2015-11-28 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

@sebastiennielsen
Jag tror inte det - men jag är inte helt säker.
Klipparen har ju två hjul - en cylinder - och en planrulle eller vad det kan tänkas heta..

Tyngdpunkten på klipparen är troligtvis på cylindern - mitt emellan hjulen och planrullen. Detta gör att klipparen står stabilt utan handtaget och den vilar då på hjulet och planrullen. När den backar så borde alltså inte klipparen slå runt utan kraften skulle då komma på planrullen istället för att hela ekipaget snurrar runt.

Författare:  danielr112 [ 13.03 2015-11-28 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Glöm nu inte att nu är det motorerna som driver den frammåt. Innan puttade man den frammåt. Du flyttar helt enkelt vart kraften kommer ifrån.

Så t ex när du backar så kommer den tippa runt om jag inte tänkt fel.

Författare:  Bosen [ 10.59 2015-11-29 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Inte säkert, men man bör nog plocka bort handtaget för att sänka tyngdpunkten.

Författare:  Henke_83 [ 19.51 2015-12-11 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

En liten uppdatering av detta projekt:
Har tidigare bara lyckats få en single på RTKRCV har även fått till så att det blev FLOAT. Kommer troligtvis inte få till att få en FIXED punkt då det krävs större än mina 2,5cm patchantenner och just nu står mina moduler knappt 30 cm ifrån varandra. Så större antenner och längre avstånd från varandra så ska nog detta gå också. Har köpt två st MAXRAD GPS Timing Reference Antenna - detta är inhandlat via ebay och väntar på leverans.

Har fått till mitt python program som fångar upp en TCP-ström från RTKLIB. Denna ström ska sedan användas i min autopilot för att bestämma var gräsklipparen befinner sig.

Inte uppdaterat här utan bara i min stora projekttråd på första sidan. Kommer så småningom lägga upp förloppet här som inlägg också.

Författare:  Henke_83 [ 19.44 2016-01-03 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Fick hem nya antenner: Maxrad GPS-TMG-26N
Har testat använda mig av RTKLIB av de vanliga patch-antenner som medföljer vid köp av NEO-7M på ebay.
Dessa höll inte riktigt måttet för att kunna använda sig av "bra" positionering.

Jag trodde att dessa patch-antenner var passiva men har förstått att det är aktiva antenner dessa patch-antenner jag har.
Så min tanke var att modifiera GPS-modulen så att den skulle skicka en ström till min nyinköpta antenn - men det behövdes ej.

Så kontentan av detta är att jag kopplade in mina nya antenner med adapterkabeln jag köpt och har fått klart bättre värden med mina nya antenner.
Fortfarande så är detta tester gjorda inomhus - tror det kommer bli bättre när jag kommer ut.

Det är nämnt här i denna projekttråd att jag behöver ha minst 5st som har SNR äver 40.. nu har jag 3st och jag är inomhus. Så dessa antenner borde fixa detta.
Efter lite mer googlande så behövs nog en SNR närmare 50 än 40 för att detta ska fungera, men jag tror inte det ska vara några problem.

Här är mina GPS-data jag får nu med större antenn och inomhus:
Bilaga:
gps maxrad.JPG

Författare:  Andax [ 20.37 2016-01-03 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Vad behöver man göra för att få Neo-7M att pytsa ut raw-data? Som standard har väl inte den det?

Författare:  qx5 [ 21.09 2016-01-03 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Dagobert skrev:
Ja, sktkul!
Läste precis att MIT(tror jag det var) har tagit fram en metod för att göra gps-datan mycket mer exakt(cm-precision) och detta var alltså utan dyrare hårdvara.
Har du några fler ledtrådar om detta? MIT är ju en gigantisk organisation.

Henke_83, Vad är fördelen med cylinderklippning över roterand blad? om inte annat så borde det öka risken för att någon stoppar in fingrarna däri?

Författare:  Andax [ 02.16 2016-01-04 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

UT Austin håller på med lite olika förbättrade gps lösningar också...
https://www.youtube.com/watch?v=gkqzXfSh754

Författare:  Henke_83 [ 13.09 2016-01-04 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Andax:
Vad behöver man göra för att få Neo-7M att pytsa ut raw-data? Som standard har väl inte den det?
Nej, den har inte det som standard. Men jag har löst det på sättet jag beskriver i stora projekttråden. Har även delat med mig med mina erfarenheter till openstreetmap.

Jag har beskrivit det på första sidan - inlägg 3.
Delprojekt 5 och 6.

QX5:
MIT-projektet - de som gjorde det projektet har startat ett företag som heter Radiosense. Du finner programmet här: www.radiosense.com/oss/
Vet inte så mycket om det projektet - har läst lite.

Cylinderklippare är skonsammare för gräset då den "klipper" gräset medan en roterande klinga "slår" av gräset. Sedan blir mitt projekt mycket enklare då jag inte behöver bygga själva klippaggregatet själv. Självklart är det ju en risk med att någon stoppar in fingrarna i cylindern - men det sitter en skyddskåpa på gräsklipparen.

Nackdelarna är ju att dessa cylinderklippare låter en hel del. Finns som du skrev även nackdelar med att det är mer öppet till själva klippen där folk kan stoppa in fingrar.

Jag ska hursomhelst göra klart detta :)

Författare:  Andax [ 17.53 2016-01-04 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Det är inget MIT-projekt. Som jag länkade till (youtube-videon) så är det University of Texas at Austin (UT Austin) som ligger bakom det (närmare bestämt ARL - Advanced Research Laboratorium). MIT ligger i Cambridge/Boston...

Bra upplägg på din stora projekt tråd. Ang. Neo-7M så är det lite underligt att Ublox produktinfo säger att 7M inte stödjer raw format ut! Var har du hittat kommandosekvenserna för att aktivera raw?

Författare:  Henke_83 [ 18.32 2016-01-04 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Sorry - jag kollade inte på din youtube film utan jag hänvisade till ett tidigare inlägg i tråden om cm-precision som MIT hade tagit fram, som dagobert skrev. Som QX5 frågade efter mer information om. Så det var därför jag skrev så.. :)

Reverse-engineering på Neo-7M för att aktivera sekvenserna - mycket trial and error och flera timmars arbete med det.
Jag blir alltid så glad när jag lyckats - så det är värt tiden - även om tid är pengar :)

Det är klart att Ublox inte säger det ska fungera, då har de ingen anledning att sälja de dyrare modulerna som har RAW-data som standard.
Men som du märker så fungerar det :)

Författare:  Henke_83 [ 19.55 2016-01-04 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Just nu håller jag på och ritar upp hur jag ska koppla in L298N till mina två motorer med styrning av PWM.
Här är diagrammet jag ritat upp som jag tror ska stämma bra..
Bilaga:
WP_20160104_19_52_22_Pro.jpg

Författare:  Henke_83 [ 13.38 2016-01-22 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Diagrammet stämde ganska bra - hade glömt sätta jordning på GPIO-pinnarna. Utan jordning så fungerade det inte - men efter en jordning så Voila!
Nu är det PWM och snart dags för prototypande .. blir spännande.

För er som vill följa detta projektet mer uppdaterar jag mer frekvent i Inlägg 3 - för mig enklare att hålla koll på var jag är i projektet. Det är min lilla dagbok :)

Författare:  rvl [ 10.06 2016-04-06 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Intressant tråd! De där NEO 7M modulerna ser ju riktigt förmånliga ut, även om raw mode är en undocumented feature. Skaffade själv två LEA 4T från Kina (leverantören som är länkad på Wikin, de har dem på lager nu igen) för två år sen. Har inte lekt med dem på ett bra tag, men nu har jag dammat av dem och testat lite.

Har kört med magnetisk patchantenn på balkongkaten, men det blir rätt osäkert med fri sikt till bara en del av satelliterna. Försöker rtklib använda en satellit som är bakom huset så är det garanterat multi-path och blir följaktligen fel. Det går att utesluta enskilda satelliter i rtklib, men det är lönsamt bara för kortare sessioner. Förr eller senar kommer den uteslutna "fågeln" i fri sikt och kunde göra nytta i koordinatlösningen. Ett gränsvärde för SNR runt 40 fungerar någorlunda för att välja ut de pålitliga fåglarna i denhär situationen, men jag har sett undantag där signaler bakom huset kommer med och även när en satellit, som rimligen borde ha fri sikt, lämnats bort.

Så inte att undra på om du inte får fixed inomhus, när det bara blir fixed för en liten del i min balkongupsättning. Dessutom borde du ha koordinaterna till din basstation väl inmätta, för att lösningen för rovern ska kunna bli bra. Vet inte var du bor, men en upplyst gissning, efter att ha spionerat lite på dina hemsidor, får mig att tro att du bor lyckligt nära referensstationen på Lovö. Var i Stockholm förra veckan och använde data från den stationen. För en ca 45 minuters session på Kastellhomen (15 km från basen) blev över 70 % fixed i kinematic mode. I static combined mode blir över 90 % fixed och dessa är samlade på ett område som luktar centimeternogrannhet!

Hoppas dock att du inte helt glömmer att utveckla din egen referensstation :wink: ...för den biten siktar jag också på att få till en egen version av. Följande delprojekt blir troligen en liten offline datasamlare som bara skyflar rådata från GPS-modulen till ett SD-kort för senare behandling. Det borde en 8-bit AVR klara av. Har en R-Pi också, men det vore ower kill. Raspen är en äldre enkärnig version, så den är antagligen för svag för att köra rtklib i realtid. Pi zero kunde vara intressant som datasamlare, men de ser ut att vara svåra att få tag på ...åtminstone till priset som gör dem intressanta.

Mottagaren (kopplad till PC):
Bild

Koordinatlösningar:
Bild
kurva 1, kinematic från Lovö (15 km)
kurva 2, static combined från Åland (145 km som är lite väl långt, bara 2% fixed)

Sen ska vi komma ihåg att fixed inte nödvändigtvis betyder att det är Rätt! Lösningen kan innehålla felaktiga gissningar om antalet hela GPS-bärvågsvåglängder. Med ubloxmodulerna ska dessutom antalet halva våglängder "gissas" rätt.

Har inte officiella koordinater för den där punkten, men googlade fram dethär. Där ser det ut som om koordinaterna kanske borde vara: 59° 19' 20.398" 18° 05' 27.244" (etrs 89), men det kan förståss hända att där finns nån bergsbult helt nära detdär antennmonteringsmonumentet?? Kollade inte det så noga, för mätningen var helt ex-tempore, när jag fick syn på monumentet.

För att bedöma hur lyckad min mätning blev måste man se till att alla koordinater är i samma system. Sen 1989 har jordskorpan flyttat sig över en halv meter, men referensstationen har också flyttat sig motsvarande och det ser ut som om referenskoordinaterna från rinexfilen jag tillsvidare använt överensstämmer med etrs89 på cm-nivå.

Författare:  Henke_83 [ 18.30 2016-04-06 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Citera:
Hoppas dock att du inte helt glömmer att utveckla din egen referensstation :wink: ...för den biten siktar jag också på att få till en egen version av. Följande delprojekt blir troligen en liten offline datasamlare som bara skyflar rådata från GPS-modulen till ett SD-kort för senare behandling. Det borde en 8-bit AVR klara av. Har en R-Pi också, men det vore ower kill. Raspen är en äldre enkärnig version, så den är antagligen för svag för att köra rtklib i realtid. Pi zero kunde vara intressant som datasamlare, men de ser ut att vara svåra att få tag på ...åtminstone till priset som gör dem intressanta.


Ska absolut inte glömma bort att utveckla min egen referensstation. Denna kommer sitter placerad på taket på vårt kommande hus. Har just nu haft en hel del annat för mig och jag ska försöka kicka igång lite småprojekt i detta stora projekt igen. Har suttit och kontakterat MC4-kontakter och annat som tar tid.. Sitt jobb t.ex. Men nu ska jag försöka komma framåt igen. Det är alltid kul att se att andra försöker göra liknande saker :)
När detta är färdig får jag se om det blev så bra som jag tänkt mig - har flera intressenter som vill testa prototyper.. Funderar på hur jag ska göra där.

Författare:  Henke_83 [ 11.18 2016-05-07 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Har varit ett litet uppehåll med detta projekt men nu är det dags igen.

Anledningen till uppehållet har varit en solcellsanläggning på huset vi bygger. Men det börjar närma sig färdigt med solcellerna så nu ska mina gräsklippare bli färdig till sommaren :)

Författare:  orvar-e [ 18.36 2016-07-10 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Hur går det, gräs finns det gått om så här års. Hur ser det ut med klipparen?

Författare:  Henke_83 [ 22.54 2016-07-10 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Håller precis på med basstationen som mest. Har köpt ett IP67 klassat hölje och försöker klämma in all elektronik i det, sedan ska jag sätta basstationens antenn ovanpå på en metallbit. Detta har fått följa med på vår semester. Inom 1 månad hoppas jag fått dit motorerna också på klipparen och då börjar det likna något. Tyvärr har vår tomt ingen gräsmatta ännu utan är bara lera. Har fått flera intressenter som testpiloter så detta kommer snart testat :D

Det är ju de stora mekaniska bitarna som ska fixas. Antennen på klipparen blir inga problem.

Författare:  orvar-e [ 05.57 2016-07-11 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Kul .... :)

Författare:  phae [ 20.04 2016-07-28 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Rolig läsning!
Jag har försökt haka på och är hittills inne på GPS delarna och det går ganska bra.

När jag kör rtkrcv får jag dock ingen position - osäker om programmet läser ifrån gps´en.
Antingen är min konfigurationsfil för rtkrcv fel eller så har jag misslyckats med övergången till raw-data. Hur ser din fil 7m.conf ut? Hur ska data i RAW format se ut om
man kör gpscat?

Mvh
Per

Författare:  rvl [ 11.29 2018-06-25 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Har det hänt nåt här? Ska bli intressant om dehär modulerna (inklusive antenn för alla frekvenser) kommer ner i vettiga priser: http://en.ctimes.com.tw/DispProduct.asp ... YC6SAA00PZ

Testade min gamla LEA-4T på en känd fixpunkt för ett tag sen. Det var drygt 30 km till basstationen. Post process lösning (static combined) av en timmes session med magnetantennen direkt på fixpunktsbulten:
Bilaga:
2018061614_k4_180.png
Waypointen E4 180 visar punktens (klass E4) officiella koordinater.

Vissa ublox modeller ska man tydligen akta sig för att uppgradera firmware på - man kan förlora tillgången till den nödvändiga rådatan! Av de som inte officielt stöder, så får man ingen rådata från alls, om man skaffar en "för ny" modul.

Författare:  Henke_83 [ 21.38 2018-06-27 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Kul att se att någon var inne här och skrev.. och ja projektet lever fortfarande. Min DRÖM är att bli klar med det här den här sommaren... vi får väl se hur det går med det.

Har för några dagar testat min Basstation och fått en riktigt bra punkt efter bara en timmes insamlandade av data. Ska försöka få till mitt skal och sätta upp basstationen så att den får sig en riktigt fast position som jag sedan kan utgå ifrån.

Min största utmaning med detta projektet har varit motoruppfästningen. Har testat lite olika kombinationer och är nu inne på en ny variant som jag tror kan fungera. Ska försöka få till med larvband på klipparen som gör att den kan gå framåt och sedan med kuggar som tar i cylindern för att driva på detta.

Mer uppdateringar kommer..

Intressant läsning om Ublox nya chip - känns och tror dock att det kommer bli DYRT för hobby-mekare.

Författare:  Henke_83 [ 17.39 2018-08-27 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Ni som tror att projektet inte lever... ni har fel :)

Ska förhoppningsvis innan de närmaste veckorna 2-3 ha en första färdig Alpha-produkt av det här.
Sedan kommer det krävas justeringar, moddar och förbättringar... men jag själv börjar se ett färdigt resultat.

Även om det tagit tid - inte effektiv tid - men tidsperiod :roll: :vissla:

Kör fortfarande enbart uppdateringar i inlägg 1 och 3.

Författare:  Gimbal [ 17.59 2018-08-27 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Det är ett intressant projekt helt klart, men inte lätt att hänga med när du editerar gamla inlägg.

Författare:  Henke_83 [ 17.45 2018-09-08 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Milstolpe i projektet, den har varit ute och kört på gräsmattan. Inte klippt något gräs men väl ut och kört och den går framåt. Kanske lite långsammare än jag trott, men kanske ska det till andra batterier som har högre discharge rate. Motorerna kan dra 2,1A per motor och funderar även på om jag ska använda li-ion batteri för att köra 14,4V för att höja rotationen på motorerna något.

Författare:  NilsGulang [ 11.59 2018-09-10 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Hej, Bilder på underveket ?

Författare:  Henke_83 [ 12.30 2018-09-10 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Här är den, vet inte om det är ett underverk precis, men den är rätt ball tycker jag. 8)

Bilaga:
Screenshot_20180910-132137.png

Författare:  netrunner [ 15.25 2018-09-10 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Ser ju väldigt fräckt ut det där.

Jag tycker det är spännande att se hur du får den att fungera med micro-navigation.

Är du väldigt missnöjd med hastigheten så kan du ju byta till en motor med annan utväxling men samma form-faktor. Dom där motorerna finns väl med minst 10 olika växellådor utan att formen ändra.

Författare:  Henke_83 [ 15.40 2018-09-10 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Jo precis, det finns nog precis som du säger ett antal olika växellådor. Har precis beställt Li-Ion batteri nu så det kommer bli en driftspänning på någonstans 3.6-4.4 uppdelat på 4 celler som sedan är parallelkopplade i 3 grupper.

Testade köra motorn igår på spänning 18-19 volt och den snurrar ju ganska mycket snabbare, men då utan last. Så kan tänka mig att den kommer gå i den hastighet jag vill med något högre spänning.

Ja, navigationsdelen är väldigt spännande. Har en basstation på garage-taket som verkligen är korrekt enligt Hitta.se. Sedan är det ju en hel del parametrar som ska optimeras för att kunna få en fungerande och korrekt rover-del. Men som sagt projektet går framåt och det är kul för varje steg när det går framåt :)

Författare:  stenD [ 16.04 2018-09-10 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

hur spelar man video'n? det är ju bara en länk till screenshot.

Författare:  Borre [ 17.35 2018-09-10 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Det är en screenshot av videon, ingen video alltså.

Författare:  PeterH [ 19.35 2018-09-10 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Meeen.... vill ju se och höra hur den jobbar också :D

Författare:  Henke_83 [ 20.08 2018-09-10 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Går det lägga upp video här på EF eller måste man hänvisa till extern länk? Självklart ska ni få se och höra den jobba :tumupp: :)

Författare:  brrmek [ 20.17 2018-09-10 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Länk till youtube ärvanligast...

Författare:  Henke_83 [ 12.03 2018-09-12 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Det händer ju saker i detta projektet, försöker vara så effektiv som möjligt nu innan den "riktiga" hösten kommer så att min Alpha är färdig. För sedan kommer det behöva tweakas och fixar så att när våren kommer den riktiga Betan är i drift :)

Körde igår en iterationsprocess med cylinderdrivningen och nya delar till den. Blev en lyckad dag med lyckade utskrifter och idag fortsätter jag med samma för att få den riktiga cylinder-drivningen att fungera med larvbanden också.

Just nu in the making är förhoppningsvis delen som ska användas.. :|

Så här är två av delarna från igår den första och den sista och även den riktiga delen från gräsklipparen.
Bilaga:
IMG_20180912_125734.jpg

Författare:  Henke_83 [ 12.05 2018-09-18 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Cylindern och motorn snurrar på i maklig takt, men nu har spänningen på mina vanliga AA-batterier sjunkit ner till 10,5-11V.
Ska bli spännande att testa med Li-Ion batterierna som har mer kräm i sig.. måste bli klar innan det blir frost också..

Författare:  Henke_83 [ 21.10 2018-09-19 ]
Inläggsrubrik:  Re: Robotgräsklippare med autopilot och cylinder!

Har fått hem batterier 18650 som jag testade ladda upp så det blev riktig driftspänning och har kopplat 4 i serie.
Samsung INR-25 2500mah. Driftspänningen blev 4.2x4=16.8V

Har nu laddat upp filer som jag delar med Google drive. Då har jag även tagit med mina första trevande exempel på när den är ute och går på gräsmattan, men då med vanliga AA-batterier.

Kommer även vara tvungen att köra hastigheten lite långsammare än MAX när klippern är ute.

Håll till godo ni som är nyfikna 8)

Cylinderklippare med 4st 18650 kopplade på en motor (video)
https://drive.google.com/open?id=1V-Grt_Vq2WQmRQcJTfmKigh56IAfCGXc
Cylinderklippare ute och kör på gräsmatta
https://drive.google.com/open?id=1LaJEYRHxkmQJsH50BhjDIxbaF80bpoSn
Cylinderklippare med 10st AA-batterier
https://drive.google.com/open?id=1SCWDNvFgS5r6WL0qpZIQ0t67juMSkCyT
Cylinderklippare (bild)
https://drive.google.com/open?id=1XXGN_tQox0t8l0KBJVgkYoHuQOkY9FJ-

Författare:  Henke_83 [ 17.20 2018-09-23 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Åh här kommer den när den kör på gräsmattan och KLIPPER GRÄS!

MIN ALPHA ÄR FÄRDIG! Nu till finlir och fortsättning på det här projektet..


SE film
https://drive.google.com/open?id=1vKd5nFuMJSly90lAFZEqqdSGoBrAZ7jO

Författare:  j.po [ 17.37 2018-09-23 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Bra jobbat. Håll oss uppdaterade.
./POJ

Författare:  Jonaz [ 18.00 2018-09-23 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Grymt!
Men något gnisslar ju lite..

Författare:  MadModder [ 18.08 2018-09-23 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Det borde väl vara trumman som gnisslar, då den alltid gnider på kniven? När man kör en sån manuellt går det ju liiite snabbare.

Författare:  Henke_83 [ 19.11 2018-09-23 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Jonaz skrev:
Grymt!
Men något gnisslar ju lite..


Tack :) Roligt att någon uppskattar projektet, själv tycker jag det är sjukt KUL!
Japp, precis som Madmodder skriver, det är självslipande knivar så det kommer alltid att gnissla.

j.po skrev:
Bra jobbat. Håll oss uppdaterade.
./POJ


Tack :) Självklart ska jag hålla er uppdaterade. Näst på tur är ju mikro-navigationen som ska till

MadModder skrev:
Det borde väl vara trumman som gnisslar, då den alltid gnider på kniven? När man kör en sån manuellt går det ju liiite snabbare.

Jo vars, fast det är cylindern som behöver ha tillräckligt hög hastighet för att "klippa" av gräset. Skulle det vara för långsamt får jag lägga till ett batteri till i serien så det blir 3-4V högre spänning så är nog det problemet löst.

Författare:  MadModder [ 19.34 2018-09-23 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Cylindern var det ja, inte trumman. Det heter ju cylinderklippare. :D
Det var den jag menade.

Trevligt projekt. Inte ofta man ser en autonom cylinderklippare. Påminner mig lite om Gräsklipparmannen. :)

Författare:  Gimbal [ 19.55 2018-09-23 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Kul :tumupp:

Författare:  Henke_83 [ 12.46 2018-09-25 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Det är alltid roligt att vara på forum, man möts av en hel del skepticism samtidigt som jag är väldigt van vid det. Men när man lyckas med saker är det desto roligare. Självklart har jag också varit väldigt skeptisk till mitt projekt om det ens skulle gå.. bara här har ju fått diverse..

Klipparen kommer slå runt.. - FEL - den fungerar utmärkt :)
Motorerna är för svaga... - FEL - motorerna fungerar :)
Du har för lite SNR på satelliterna.. - jag var inte färdig :)
Man måste köra både GPS och GLONASS.. - den här återstår att se om det räcker med GPS eller om jag måste köra GLONASS, då måste jag köpa nya moduler.

Forum är samtidigt sjukt peppande, för det är kul att se andra projekt och få hjälp av diverse vänliga själar. Sedan med extra hejarop är det extra kul.

Här är en bild på min basstation med SNR över 40 på nästan alla satelliter..
Bilaga:
basestation.JPG


Nu återstår att få till så ROVERN och få FIX position tillräckligt snabbt för att det ska vara görbart det här.

Författare:  Jonaz [ 19.08 2018-09-25 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Tycker den är tvär-fräck! :tumupp: :tumupp:

Blir det något skydd över cylindern ,så ingen kan stoppa in fingarna?

Författare:  Henke_83 [ 21.47 2018-09-26 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Håller på med GPS-delen och RTKLIB - oerhört spännande och intressant vad man kan få fram för information och hur bra precision det faktiskt blir. Här är det lite utmaningar hursomhelst för att det ska fungera som jag tänkt och vill.

RTKLIB är ju en form av GPS-positionering i exakthet några +/- några cm. För att det ska fungera och man ska få en pålitlig precision i GPS koordinatorn behöver den var något som kallas FIX i RTKLIB. När du har en FIX har du en mycket EXAKT position. För detta krävs oftast extrem dyr utrustning men med hjälp av billig hårdvara så kanske vi kan komma åt och få till nästa samma exakthet.

Jag använder mig av två Neo-7M GPS moduler, denna har bara 1RF och kan därför enbart ta emot GPS eller GLONASS - den kan inte ta emot båda samtidigt. Hade den kunnat ta båda samtidigt hade vi kunnat använda oss av fler satelliter samtidigt och få FIX snabbare. Tillsammans med mina NEO-7M moduler använder jag mig av HELIX antenner, dessa kräver inte något Grundplan som krävs av patch-antenner. Jag har en av min GPS-modul sitter monterad på garagenocken och agerar basstation. Min andra är placerad på gräsklipparen tillsammans med en HELIX antenn.

Under mina tester ikväll hade jag på gräsklipparen 8 st satelliter jag kunde se, varav 48db,47db,13db,47db,48db,38db,46db,48db
På basstationen kunde jag se samma 8 satelliter och där hade jag följande styrka, 47db, 47db,42db,47db,48db,36db,46db,49db

Dessa stationer ska korreleas mot varandra och SNR ska helst ligga över 40 för att man ska kunna använda sig av dessa och som ni ser ligger nästan samtliga över. Dock hade jag ändå problem med att få FIX, vet inte om det har att göra med programmet eller någon inställning. Fortsättning följer..

Författare:  brrmek [ 14.33 2018-09-27 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Du kunde kankse komplettera med död räkning dvs hur lång sträcka du har förflyttat dig i viss riktning sen sista läsning av position. Du har ju alltid en tidstämpel med positionen. Gillar ditt projekt! :bravo:

Författare:  Henke_83 [ 21.25 2018-09-27 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Jonaz skrev:
Tycker den är tvär-fräck! :tumupp: :tumupp:

Blir det något skydd över cylindern ,så ingen kan stoppa in fingarna?


Haha, TACK, upskattas.
Jo - när jag fått mina STORA pusselbitar så kommer jag till "the Design Challenge"
Då är tanken att allt ska bakas ihop till en riktig snygg pjäs - som andra vill ha :wink:

brrmek skrev:
Du kunde kankse komplettera med död räkning dvs hur lång sträcka du har förflyttat dig i viss riktning sen sista läsning av position. Du har ju alltid en tidstämpel med positionen. Gillar ditt projekt! :bravo:

Kul att du gillar :)
Navigationen har jag tänkt just nu åtminstone - att gräsklipparen inte startar förrän den har en FIX position. Sedan går den till sina waypoints för att klippa hela gräsmattan. Tappar den FIX stannar den, därav att jag vill att GPS-delen ska fungera bra innan jag fortsätter. Alternativet som jag funderar på är att göra en variant av hur GCODE fungerar - då behöver jag bara en yttre bana med GPS-slinga som den ska gå innanför, sedan kunna styra mönstret hur man vill att gräsmattan ska vara klippt.

Författare:  NilsGulang [ 09.19 2018-09-28 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

:tumupp: :tumupp: Imponerande
:D 8) :D

Författare:  netrunner [ 15.48 2018-09-28 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Tycker att det ser väldigt trevligt ut.

Trist att signalstyrkan var lite låg. Antar att du redan har den bästa antennen som går att köpa för rimliga pengar. Kanske är kabeln dålig? Vad har du för GPS-chip idag?

Hoppas att du tänker gå över till blybatterier när du kommer till läget för "vanlig klippning".

Författare:  Henke_83 [ 16.27 2018-09-28 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

netrunner skrev:
Tycker att det ser väldigt trevligt ut.

Trist att signalstyrkan var lite låg. Antar att du redan har den bästa antennen som går att köpa för rimliga pengar. Kanske är kabeln dålig? Vad har du för GPS-chip idag?

Hoppas att du tänker gå över till blybatterier när du kommer till läget för "vanlig klippning".


Tack :)

Signalstyrkan är väldigt bra på 6 antenner och har de bästa antenner jag kan få för rimlig peng:
48db,47db,13db,47db,48db,38db,46db,48db
47db, 47db,42db,47db,48db,36db,46db,49db

Vad är fördelen med blybatteri mot Li-Ion? Jag trodde att Li-Ion skulle fungera bra och länga? Du får gärna förklara varför det ska vara blybatteri?

Författare:  carpelux [ 18.48 2018-09-28 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Kul projekt. Alltid roligt med någon som tänker utanför boxen.

Inte för att regna på din parad, men hur har du tänkt ang energiutnyttjandet? Jag antar att det går åt en hel del energi att dra runt klippaggregatet, särskilt med tanke på att klipptrumman ligger an emot anhållet och skall vara "självslipande" ?

Men det är väl bara att åka in och ladda lite oftare iofs.

Författare:  arvidb [ 19.45 2018-09-28 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Jag ägnade en del tid åt att klippa med cylinderklippare "i min ungdom" och vill minnas att det inte tar så mycket kraft att dra runt cylindern på tomgång, trots självslipningen. Tungt blir det först när man faktiskt börjar köra den i gräset och klippa grässtrån (för att inte tala om hur det tar tvärt stopp om det har rasat ner en liten björkkvist eller liknande på gräsmattan som man försöker klippa).

Så jag är inte förvånad över att det går att dra runt cylindern med de där motorerna & batterierna, men är rejält skeptisk till att kraften kommer att räcka till för att faktiskt klippa mer än något enstaka grässtrå i taget. TS gräsmatta ser i och för sig ut att vara i stilen golfbana medan gräset som jag klippte i min ungdom nog oftast hade fått växa sig alldeles för långt, så det kanske kan funka ändå... ;)

Författare:  Henke_83 [ 19.18 2018-09-29 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

carpelux skrev:
Kul projekt. Alltid roligt med någon som tänker utanför boxen.

Inte för att regna på din parad, men hur har du tänkt ang energiutnyttjandet? Jag antar att det går åt en hel del energi att dra runt klippaggregatet, särskilt med tanke på att klipptrumman ligger an emot anhållet och skall vara "självslipande" ?

Men det är väl bara att åka in och ladda lite oftare iofs.


Kul att det uppskattas :)

När gräsklipparen går i sig så är den självslipande. Tanken med det här är att den inte ska behöva åka in och laddas, utan klipper den så ska den klippa hela gräsmattan i ett svep. Därav så kan jag dimensionera batterierna efter det och antal.

Laddningen sker enbart när den har klippt färdigt allt gräs.

arvidb skrev:
Jag ägnade en del tid åt att klippa med cylinderklippare "i min ungdom" och vill minnas att det inte tar så mycket kraft att dra runt cylindern på tomgång, trots självslipningen. Tungt blir det först när man faktiskt börjar köra den i gräset och klippa grässtrån (för att inte tala om hur det tar tvärt stopp om det har rasat ner en liten björkkvist eller liknande på gräsmattan som man försöker klippa).

Så jag är inte förvånad över att det går att dra runt cylindern med de där motorerna & batterierna, men är rejält skeptisk till att kraften kommer att räcka till för att faktiskt klippa mer än något enstaka grässtrå i taget. TS gräsmatta ser i och för sig ut att vara i stilen golfbana medan gräset som jag klippte i min ungdom nog oftast hade fått växa sig alldeles för långt, så det kanske kan funka ändå... ;)


Den har klippt gräs på riktigt och eftersom knivarna är så pass vassa och gräset är relativt låg - så var det inte några problem. Däremot så blir det tvärstopp precis som du säger om det kommer grenar i vägen, det gillar den inte..

Jag kommer lära mig och det finns säkert fler saker som kan gå fel..

Författare:  arvidb [ 22.16 2018-09-29 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Jo en stor del av projektet är väl navigationen antar jag. Mekaniken och elsystemet kan man ju alltid bättra på när det behövs!

Författare:  Henke_83 [ 12.18 2018-10-24 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Delprojekt 37 - Göra en batterimätare med PCF8591 och spänningsdelare
Ska göra en voltregulator för batterierna som är kopplade till gräsklipparen som sedan kopplas in till PCF8591 som kan printa ut exakt värde på volt och då har jag indikation på när gräsklipparen behöver åka in och laddas.

Jag funderar just nu på om jag ska utöka batterierna och köra med 5S istället för 4S - så jag tänker göra två uträkningar för både 5S och 4S för voltregulatorn så jag har resistorer till båda. Jag har tänkt att spänningsdelaren kommer använda sig av dividerare 7 - då kan jag använda samma motstånd till både 4S och 5S. Det är bara en liten del av programsnutten som behöver modifieras för att det ska bli rätt.

Har även lärt mig att I2C kretsen på RPI kan seriekopplas upp till 8 enheter så nu kör jag HMC5883L och PCF8591 båda på I2C som är seriekopplade. Fungerar bra och får upp adresserna i I2CDETECT i Pajen.

Så vad behöver jag för motstånd för att detta ska fungera:
4S - 4.2*4=16.8V nominell spänning 3.7x4=14.8V
5S - 4.2*5=21V nominell spänning 3.7x5=18.5V

Så det är den nominella spännningen på 3.7V jag ska utgå ifrån, samtidigt är det MAX-spänningen jag måste ta hänsyn till så jag inte bränner kör sönder komponenterna för att det får för hög spänning.

Jag har inte något lager på motstånd och liknande hemma utan brukar köpa det jag ska ha vid tillfälle. Så nu när jag skulle göra min spänningsregulator så vad jag hade hemma var följande: 1st 10kOhms, 5st 2,61kOhm, 5st 4,7kOhm, 3st 0.47kOhm.
Det jag vill ha är att divisionen blir nära 7. Så jag kommer få seriekoppla 3 st 0,47kOhms motstånd. Då får vi följande formel och beräkning enligt nedan.

Ref.voltage = 3.3
Ratio (R1/R2) = 7isch

Vout mindre än 3.3
Vin max 21
R2/R1=3.3/(21-3.3)
R2/R1=3.3/17.7
R2/R1=0.186


Vo= Vin*R2/(R1+R2)
R2/R1= Vo/(Vin-Vo)

1,43/(10+1,43)=0.125=1/8 - Spänningsdelare på 8.

Kommer koppla A0 till GND.

Har köpt ett motstånd på 1.43kOm så jag kan använda det tillsammans med 10kOhm motståndet för att köra en spänningsdelare.
Det blir då 1.43/(10+1.43) = 0.125=1/8 som kommer användas i formeln. Då kommer jag kunna använda mig av spänning som går upp till 21V utan att jag bränner sönder någon komponent.

Har just nu testat min spänningsdelare och kommit fram till att 8 är talet som ska användas för formeln i beräkningen.

Kommer använda mig av quick2wire för RPI och i2clibraries, precis som jag gjorde i Delprojekt 2 för compassometern. Detta innebär att jag inte behöver installera mer program utan allt är redan förinstallerat och färdigt. Så det är egentligen bara att skriva programmet nu som ska läsa utdatan från PCF8591 analog in.

Nu ska jag även få in lite kod i Node.js så jag kan använda detta för att bestämma när gräsklipparen behöver gå in och ladda sig för spänningen är för låg. Finns visst ett bibliotek för pcf8591 från npm så ska se om jag kan få det att fungera.

Hade visst hoppat över lite viktig information från databladet i PCF8591 när jag skulle göra ett program som kommunicerade med modulen. Och det vara att Enabla Analog Ut läsning detta skulle visst göras med en BIT så här 01000000 och det är lika med 0x40 i HEX sedan skulle man välja kanal efter att den varit enablad så vill jag ha kanal 0 är det 0x40+0x00 som ska skickas, alltså 0x40 för att läsa analog ut från Kanal 0.


Datablad för kretsen http://www.nxp.com/documents/data_sheet/PCF8591.pdf
https://www.enigma14.eu/wiki/AD_Convert ... spberry_Pi

Författare:  Henke_83 [ 10.20 2018-10-30 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Har nu nya GPS-moduler som heter Ublox M8N - men det verkar vara piratkopierade.. när man läser QR-koden från dem står det att det är ett serienr från NEO-6M och ett serienr. När jag använder U-center så får jag upp att det är M8N med firmware 2.01. Och firmware 2.01 är ju det som krävs för att få ut TRK-MEAS och TRK-SFRB från modulerna för att kunna användas i RTKLIB. Jag ser även i U-center att den plockas nu både GPS och GLONASS signaler simultant, något som INTE NEO-6M och NEO-7M gör, detta krävs för högre precision och snabbare FIX när RTKLIB används.

Den här delen kommer bestå i hur man aktiverar TRK-MEAS och TRK-SFRBX i modulen med hjälp av HEX-koder som jag sedan lägger upp på OpenStreetmap.

Jag har sett i U-center att jag får ut meddelande 03-10 och 03-0F som är TRK-MEAS och TRK-SFRBX när jag kör DEBUG-läge i U-center.

Följande HEX-koder används för att aktivera de två lägen:
TRK-MEAS 03x10
B5 62 06 01 03 00 03 10 01 1E 69
TRK-SFRBX 03x0F
B5 62 06 01 03 00 03 0F 01 1D 67

När jag använde mig av NEO-7M använde jag även de här så här kommer HEX-koderna för att aktivera de med M8N
NAV-CLOCK
B5 62 06 01 03 00 01 22 01 2E 87
NAV-SVINFO
B5 62 06 01 03 00 01 30 01 3C A3

Jag ska även ändra hastigheten till 115200 och frekvensen till 200ms så jag får utdata i 5hZ.
200ms för 5hZ
B5 62 06 08 06 00 C8 00 01 00 01 00 DE 6A
100ms för 10hZ
B5 62 06 08 06 00 64 00 01 00 01 00 7A 12
115200 på UART1
B5 62 06 00 14 00 01 00 00 00 D0 08 00 00 00 C2 01 00 07 00 03 00 00 00 00 00 C0 7E

Även om M8N var piratkopierade så fungerar de ypperligt för tillfället när jag kör dessa mot en annan basstation, jag får då upp både GLONASS och GPS och har 12 satelliter jag kan låsa mot. Det gör även att jag får FIX efter 2-3 minuter så nu börjar det likna något. Sedan blir ju utmaningen när gräsklipparen rör på sig att behålla FIX.

TYPISKT - jag har ju köpt en antenn som arbetar enbart mot GPS alltså 1575,42MHz +/-10MHz. GNSS arbetar ju lite högre runt 1600 så signalstyrkan på GNSS är väldigt låg. Behöver med andra ord en ny antenn..

Fortsättningen följer..

Författare:  netrunner [ 10.49 2018-10-30 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Det här är lite spännande ... det finns fler personer som inte får bättre prestanda av att uppgradera till M8N. Det kan ju vara ett tecken på att det är en piratkopia.

Författare:  Henke_83 [ 13.49 2019-02-27 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Skriver ett inlägg mest som påminnelse för mig själv vad jag har gjort och varför just - har satt igång basstationen igen och behöver som sagt nya antenner.
Men som tur är patchantennerna filtrerade på ett annat sätt än mina Timing reference antennas och släpper igenom även GNSS/GLONASS bandet som ligger på 1610 istället för å 1575.

När jag startatade upp modulen och körde
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
gpscat /dev/ttyAMA0
fick jag enbart utspottat /x00/x00/x00 i oändlighet. Modulen blinkade grönt som indikerar att den har kontakt med satelliterna.
Har nu gjort flera olika script där jag skickar HEX-koder till modulen. Skickade då
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo python reset.py
som resettar modulen och fick då ut "vanliga" NMEA-strängar men det är ju raw-signalerna jag vill åt
Sedan för att kunna kommunicera med modulen behöver jag först köra
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo python outputM8N.py
den verkar vara så att det gör att modulen lyssnar på mina kommandon jag skickar.
Sedan startade jag mitt script med STR2STR som ligger i roten med ./str2str_start.sh och då körs i den filen raw-output.py - men det verkar inte komma ut rätt data där heller.
Så jag fick köra
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo python rateM8.py
först för att sedan köra
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
sudo python d5M8.py

Nu så har jag fått upp signaler i RTKLIB. Då har jag 10 antenner som är till grund för basen - men då är det en patch-antenn som är placerad inomhus i ett garage..

Författare:  rvl [ 19.22 2019-02-27 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Kul med lite uppdatering! Patch-antenn med ett par dm stort jordplan (större, som t.ex mitt på ett biltak blir nästan som nån $$$ profs-antenn) lär fungera rätt bra enligt en artikel jag läste.

Författare:  Henke_83 [ 11.54 2019-03-30 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

För er som undrar hur det går och varför det inte händer så mycket.. så har jag ägnat mig åt två andra projekt. Har konverterat en cykel till en elcykel - den är klar.
Sedan har jag även byggt en ny 3d-printer som även kan fungera som en isolationsfräs.

Så ni som har följt det här projektet vet att jag fastnat lite på GPS-antennerna att den tagit in enbart GPS och inte kombination GPS och GNSS - så därför har jag bestämt för att gå över på patch-antenner. Och eftersom jag nu har en isolationsfräs kan jag även göra ett jordplan som är 9cm i diameter - som är nästan idealiskt för att slippa studsande signaler. Sedan att det heter jordplan är ju inte att det är någon jord kopplad till det utan det bara heter så.

Nu kommer det blev en del om-modifikation för att få allt att fungera men det ska nog gå det också.

Behöver först börja med att ordna med nya kablar till patchantennerna så jag kan montera upp en ny basstation på garagets taknock.

Und so weiter...

Författare:  Henke_83 [ 20.13 2019-05-09 ]
Inläggsrubrik:  Re: ALPHA-KLAR! Robotgräsklippare med autopilot och cylinder

Delprojekt 38 - 5 volt direkt till RPI genom H-brygga
För att minimera batterier och enbart ha en strömkälla kommer jag från min H-brygga som ger 5V ut koppla in RPI direkt på den.
Min första tanke var att modifiera en USB-kabel så att den skulle gå in som vanligt, men efter lite efterforskning konstaterar jag att det inte behövs.

Utan jag kommer enbart dra en 5V ut till GPIO pin 2 som är 5V ut men är även bryggad direkt till 5V in. Sedan kommer jag även koppla en GND som går direkt till någon av GND på GPIO.

Tror detta kommer vara enkelt och snart utfört hoppas jag. För nu vill jag börja testa på riktigt :)

Fick detta att fungera utan större ansträngning - skönt tyckte jag. Drog bara från L298 och 5V regulated out till pin nr 2 på RPI och satte - från batteriet till en GND på RPI på en av GPIO portarna.
Alla tillbehör och komponenter fungerade utan problem. SKÖNT!

Var ju inte så enkelt som jag trodde - märkte att USB-uttagen på pajen inte var strömsatta - så får ta och göra om detta och modifiera en USB kabel som laddar och går ut från H-bryggan.

Alla tidsangivelser är UTC + 1 timme
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/