zondag 27 september 2015

Bijna mobiel

Vandaag alle verbindingen opgetekend en toen alles uit elkaar gehaald om het in een fiets bestendige behuizing te zetten.

De behuizing is een diepvries doos van de Blokker, lekker stevig, lucht en water dicht. Als eerste een plekje voor de fijnstof meter gezocht, warm en droog aan de binnenkant, een gaatje gemaakt voor de bemonstering van de buitenlucht.

In de fijnstof meter zat maar 1 gaatje voor de bevestiging, dat vind ik te weinig voor een hobbelende fiets, dus er is een u-profiel gemaakt van een half Tic Tac doosje en nog een extra schroefje aan de onderkant geplaatst. Achter de fijnstof meter zit de temperatuur en vocht opnemer alles lekker in de rijwind. Over de opening van de fijnstof meter en de temp/rv meter komt nog een kapje om te voorkomen dat er water naar binnen wordt gezogen.

De SD module heeft een plekje links achter zodat het kaartje er makkelijk in en uit kan. De Arduino Leonardo zit onder de display module, de ventilator die de lucht door de fijnstof meter moet trekken zit links.

De GPS module en de spannings omvormer zitten op de bodemplaat. De batterijhouder licht nu nog los op de bodemplaat maar ik denk dat ik morgen ook nog even een bakje maak van polypropyleen zodat de batterijen niet gaan schuiven tijdens het fietsen er komt natuurlijk nog klitteband over heen om het te fixeren.


vrijdag 25 september 2015

Polypropyleen bewerken

Ik wil de opening waar de fijnstofmeter zijn buitenlucht aanzuigt beschermen tegen regen, opspattend water en andere zaken die niet in een optische meetinstrument thuis horen. Tevens wil ik de temperatuur/rv meter beschermen tegen waterdruppels en nieuwsgierige vingertjes.
Tijdens het eten ging er een emmertje snoeptomaatjes leeg volgens de recyclingscode is het pp oftewel polypropyleen.
Ik heb de rand en de bodem er af geknipt en geprobeerd of ik het met kokend water week genoeg kon krijgen maar helaas. Voor poging twee heb ik de oven aan gezet, eerst op 120 graden Celcius, dat was niet voldoende. Daarna steeds een beetje hoger tot het plaatje polypropyleen zo zacht werd dat het plat en slap op het bakpapier lag. 
Daarna heb ik het met een tang over mijn vorm gelegd, gefixeerd en laten afkoelen. Voor een eerste poging is het resultaat ok, de zijkanten zijn niet gelijk en recht. Voor de tweede poging meer materiaal gebruiken en later de zijkanten recht en op maat knippen.  

maandag 21 september 2015

Versie 1.0



Het lijkt er op dat alles werkt en de geheugen problemen over zijn. We gaan nu dus over op het maken van de hardware zodat we buiten kunnen gaan testen op de fiets. Deze bos met draadjes moet worden geordend in een special voor dit doel gekochte diepvries doos zodat er veilig en stabiel mee gefietst kan worden 
En nu maar hopen dat niemand het aan ziet voor een bom 😄

maandag 7 september 2015

Grote stappen

GPRMC,201424.00,A,5205.10861,N,00501.79983,E,0.302,,070915,,,A*,23.00,67.90,675

De huidige opstelling met gps, rh, temperatuur en voedingsspanning
De huidige opstelling veel
draadjes, een gps, rh,
temperatuur, voedings-
spanning en spannings-
omvormer
Dit is nu mijn data string die iedere seconde naar de SD kaart wordt geschreven. De code is nog niet mooi en ik ben ook niet zeker of alles nodig is wat er nu in staat, dus de code komt later.

Wat ik nu wel heb is de output van de GPS;
GPRMC,201424.00,A,5205.10861,N,00501.79983,E,0.302,,070915,,,A*

GPRMC; Recommended minimum specific GPS/Transit data
201424.00; Time of fix UTC
 A; Navigation receiver warning A = OK, V = warning
 5205.10861,N   Latitude, North
 00501.79983,E   Longitude, East
 0.302; Speed over ground, Knots
 ,, ; Course Made Good, True 
  070915; Date of fix
  ,, ; Magnetic variation
  * ; mandatory checksum

Als de gps geen waarde heeft voor een parameter dan staan er dus alleen de separators, dus ,, is gelijk aan geen waarde.

Daarna volgt de temperatuur; 23.00 in Graden Celcius en de luchtvochtigheid 67.90 in procenten. Als laatste het getal 675 dit is de decimale output voor een 10 bits waarde van analoge ingang A0. Met A0 meet ik de batterij spanning zodat ik weet of mijn batterijen geladen moeten worden.



zaterdag 22 augustus 2015

Eindelijk weet ik waar ik ben

Het is laat of vroeg hoe je het wilt noemen, maar mijn gps werkt, waarom het eerst niet wilde nog geen idee, dat is iets voor als ik geslapen heb.
Deze code was voldoende;

#include <SoftwareSerial.h>

SoftwareSerial mySerial(8, 7);

void setup() {
  while (!Serial); // wait for leo to be ready

  Serial.begin(57600); // this baud rate doesn't actually matter!
  mySerial.begin(9600);
  delay(2000);
 }

void loop() {
  if (Serial.available()) {
   char c = Serial.read();
   Serial.write(c);
   mySerial.write(c);
  }
  if (mySerial.available()) {
    char c = mySerial.read();
    Serial.write(c);
  }
}

De output is nu;

$GPRMC,222033.00,A,5205.10922,N,00501.79961,E,0.449,,210815,,,A*7A
$GPVTG,,T,,M,0.449,N,0.831,K,A*20
$GPGGA,222033.00,5205.10922,N,00501.79961,E,1,09,0.99,4.6,M,46.0,M,,*59
$GPGSA,A,3,09,06,02,07,23,16,03,30,26,,,,1.74,0.99,1.43*0E
$GPGSV,3,1,11,02,42,289,23,03,11,117,26,05,14,295,16,06,52,229,37*78
$GPGSV,3,2,11,07,42,164,35,09,78,070,22,16,15,062,23,23,38,069,24*78
$GPGSV,3,3,11,26,12,034,21,29,06,343,09,30,16,185,25*45
$GPGLL,5205.10922,N,00501.79961,E,222033.00,A,A*65

De rook zit nog steeds in de ic's, hardware serial en usb bijten elkaar, morgen bij daglicht weer verder. 


SD kaart aangesloten op Leonardo

Leonardo met GPS en SD kaart module werkend
Langzaam wordt de warboel groter
Weer een klein stukje verder, de sd kaart kan worden gelezen was nog een heel gepuzzel maar op een Leonardo moet je de MOSI, MISO en SCK van de icsp connector halen. Via http://tronixlabs.com/news/tutorial-using-sd-card-breakout-boards-with-arduino/ achter de juiste aansluitingen gekomen alleen gebruikt mijn code D4 voor CS. Nog weer wat verder gezocht voor het en dan blijkt dat ook D10 hoog moet zijn om de SD kaart te laten werken http://embedjournal.com/arduino-sd-card-initialization-failed/.


Tutorial - Using SD card Breakout Boards with Arduino by Tronixlabs Australia
Your connections will be as follows:
Arduino ICSP to breakout board
  • 2 - 5V or Vcc
  • GND - GND
  • 3 - SCK
  • 1 - MISO
  • 4 - MOSI
  • D10 - CS

Het resultaat een keurige index van de inhoud en nog wat meta gegevens;

Initializing SD card...Wiring is correct and a card is present.

Card type: SDHC

Volume type is FAT32

Volume size (bytes): 3695284224
Volume size (Kbytes): 3608676
Volume size (Mbytes): 3524

Files found on the card (name, date and size in bytes):
_~1.TRA       2015-03-15 13:22:38 4096
DATALOG.TXT   2000-01-01 01:00:00 143
TRASHE~1/     2015-03-15 13:22:38
  501/          2015-03-20 23:05:08
    DATALOG.TXT   2015-03-20 23:04:48 2
    _DATAL~1.TXT  2015-03-20 23:04:48 4096
    DATALO~1.TXT  2000-01-01 01:00:00 48139
  _501~1        2015-03-20 23:05:08 4096
SPOTLI~1/     2015-03-15 13:22:40
  STORE-V2/     2015-03-15 13:22:40
    84963B~1/     2015-03-15 13:22:40
      JOURNA~1.REP/ 2015-03-15 13:22:40
      PSID.DB       2015-03-23 19:59:40 8192
      TMP~1.SNO     2015-03-15 13:22:40 0
      0~3.IND       2015-03-15 13:32:44 68416
      LION~1.CRE    2015-03-15 13:22:40 0
      INDEXS~1      2015-03-23 19:58:42 28
      0~1.IND       2015-03-15 13:32:44 2056
      0~2.IND       2015-03-15 13:32:44 708
      0~4.IND       2015-03-23 19:58:50 4096
      0~1.SHA       2015-03-23 19:58:42 4096
      0~5.IND       2015-03-15 13:32:44 32
      0~6.IND       2015-03-23 19:58:40 4
      0~1.DIR       2015-03-23 19:58:40 65536
      0DIREC~1.SHA  2015-03-15 13:32:44 1088
      0~2.SHA       2015-03-20 22:42:30 4
      0~7.IND       2015-03-15 13:32:44 12
      0~8.IND       2015-03-15 13:32:44 346
      0~9.IND       2015-03-15 13:32:44 150
      LIVE1~3.IND   2015-03-23 19:58:42 64
      LIVE1~4.IND   2015-03-23 19:58:42 4096
      LIVE1~1.SHA   2015-03-23 19:58:42 4096
      LIVE1~5.IND   2015-03-23 19:58:40 32768
      LIVE1~6.IND   2015-03-23 19:58:40 3277
      LIVE1~1.DIR   2015-03-23 19:58:42 65536
      LIVE1D~1.SHA  2015-03-23 19:58:42 1088
      LIVE1~2.SHA   2015-03-23 19:58:42 1
      LIVE1~7.IND   2015-03-23 19:58:42 4
      LIVE1~8.IND   2015-03-23 19:58:42 4
      LIVE2~1.IND   2015-03-23 19:58:42 8224
      STORE.DB      2015-03-23 19:58:42 118784
      STORE~1.DB    2015-03-23 19:59:40 118784
      REVERS~1      2015-03-23 19:58:50 65536
      SHUTDO~1      2015-03-23 19:59:40 4
      JOURNA~1.LIV/ 2015-03-15 13:22:42
        JOURNAL.17    2015-03-23 19:59:40 41
        RETIRE.16     2015-03-23 13:15:54 0
      JOURNA~1      2015-03-15 13:22:42 0
      JOURNA~1.SCA/ 2015-03-15 13:22:42
        RETIRE.23     2015-03-23 19:58:40 0
      REVERS~1.SHA  2015-03-15 13:22:42 3136
      LIVE2~2.IND   2015-03-23 19:58:42 1024
      LIVE2~3.IND   2015-03-23 19:58:42 65536
      LIVE2~1.SHA   2015-03-23 19:58:42 65536
      LIVE2~4.IND   2015-03-23 19:59:40 4096
      LIVE2~6.IND   2015-03-23 19:59:40 3277
      LIVE2~1.DIR   2015-03-23 19:59:40 65536
      LIVE2~5.SHA   2015-03-23 19:58:42 1
      LIVE2~4.SHA   2015-03-23 19:58:42 4096
      LIVE1~1.IND   2015-03-23 19:58:42 2056
      LIVE2~3.SHA   2015-03-23 19:58:42 8
      LIVE2~5.IND   2015-03-23 19:59:40 32768
      LIVE2D~1.SHA  2015-03-23 19:58:42 1088
      LIVE2~7.IND   2015-03-23 19:59:40 1905
      LIVE2~8.IND   2015-03-23 19:58:42 4096
      LIVE2~9.IND   2015-03-23 19:58:42 4096
      LIVE2~10.IND  2015-03-23 19:58:42 8192
      JOURNA~1.17   2015-03-23 19:59:20 420
      STORE~1.UPD   2015-03-23 19:59:40 12
      REVERS~1.UPD  2015-03-23 19:59:40 1
      PERMST~1      2015-03-23 19:59:40 69
      LION~1.MOD    2015-03-15 13:23:16 0
      LIVE2~11.IND  2015-03-23 19:58:42 8192
      LIVE2~6.SHA   2015-03-23 19:58:42 0
      LIVE2~7.SHA   2015-03-23 19:58:42 0
      LIVE0~1.IND   2015-03-23 19:58:42 2056
      LIVE0~2.IND   2015-03-23 19:58:42 708
      LIVE1~2.IND   2015-03-23 19:58:42 8
      LIVE2~2.SHA   2015-03-23 19:58:42 2056
      LIVE0~3.IND   2015-03-23 19:58:42 68800
      LIVE0~4.IND   2015-03-23 19:59:40 4096
      LIVE0~1.SHA   2015-03-23 19:58:42 4096
      LIVE0~5.IND   2015-03-23 19:58:42 56
      LIVE0~6.IND   2015-03-23 19:59:40 6
      LIVE0~1.DIR   2015-03-23 19:59:40 65536
      LIVE0D~1.SHA  2015-03-23 19:58:42 1088
      LIVE0~2.SHA   2015-03-23 19:58:42 6
      LIVE0~7.IND   2015-03-23 19:58:42 12
      LIVE0~8.IND   2015-03-23 19:58:42 481
      LIVE0~9.IND   2015-03-23 19:58:42 150
  STORE-V1/     2015-03-15 13:22:40
    VOLUME~1.PLI  2015-03-15 13:22:40 348
  VOLUME~1.PLI  2015-03-15 13:22:42 3184
INDEX.HTM     2015-03-15 13:26:16 62
LOG.XML       2015-03-15 13:31:22 423
TEMPOR~1/     2015-03-20 23:04:48
  FOLDERS.501/  2015-03-20 23:04:48
    TEMPOR~1/     2015-03-20 23:04:48
  _FOLDE~1.501  2015-03-20 23:04:48 4096
_~1.TEM       2015-03-20 23:04:48 4096

dinsdag 18 augustus 2015

GPS slim uitlezen

Er zijn veel manieren om gps gegevens uit te lezen en te verwerken met mooie library's maar dat kost veel geheugen en cpu. Ik wil alleen weten hoe laat het is en waar ik ben en dat kan heel efficiënt.

De details over deze oplossing staan hier;
Source code: http://www.iforce2d.net/UBX_GPS.zip
Helpful page: http://wiki.paparazziuav.org/wiki/Sen...

Als je het filmpje niet hebt gezien komt het er op neer dat de gps module geen lange nmea strings meer stuurt maar veel kortere en minder binaire boodschappen. Deze binaire boodschappen zijn ook nog eens heel snel te verwerken.