Ebenhaëzer Tracking System: verschil tussen versies

Uit EurosWiki
(Voortgang)
Regel 26: Regel 26:
  
 
Steven
 
Steven
# Testen hoe programma starten werkt.
+
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.
# Testen hoe BT verbinding maken werkt.
+
# Testen hoe BT verbinding maken werkt. Kan eventueel ook met microcontroller.
# Testen hoe uploaden werkt.
+
# Testen hoe uploaden werkt. Moet eenmalig worden geaccepteerd door microcontroller. Verder ontvang ik data, maar nog niet het gewenste.
 
# Opslaan van geüploade coördinaten.
 
# Opslaan van geüploade coördinaten.
 
# Interface om opgeslagen coördinaten te bekijken.
 
# Interface om opgeslagen coördinaten te bekijken.

Versie van 13 mei 2009 09:40

Het Ebenhaëzer Tracking System is een systeem waarmee de actuele positie van de Ebenhaëzer gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar we gaan nu GPRS proberen. Op dit moment staat het nog in de kinderschoenen, maar het uiteindelijke doel is om automatisch elke minuut een nieuwe positie door te sturen.

Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.

Planning

Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.

Wat gaat er komen?

De ETS stuurt iedere 5 minuten alle coördinaten uit de buffer via GPRS naar de internetserver van Steven. Het simyo abonnement rekent per dag af voor het dataverkeer in stappen van 1kB. Coördinaten worden in de buffer opgeslagen als er 1 minuut is verstreken en we meer dan 20 m zijn verplaatst. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is. De server van steven verwerkt de ruwe data in een route op de kaart.

Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.

Wat gaan we doen?

Helmich

  1. Op zoek naar een andere telefoon waar Java automatisch kan starten.
  2. Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.

Gart

  1. Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.
  2. Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt

Menno

  1. Zoekt naar een bootloader.

Steven

  1. Testen hoe programma starten werkt. Programma starten moet met microcontroller.
  2. Testen hoe BT verbinding maken werkt. Kan eventueel ook met microcontroller.
  3. Testen hoe uploaden werkt. Moet eenmalig worden geaccepteerd door microcontroller. Verder ontvang ik data, maar nog niet het gewenste.
  4. Opslaan van geüploade coördinaten.
  5. Interface om opgeslagen coördinaten te bekijken.

Informatie logboek

Aangezien het een interessant projectje is en het zonde is om stil te laten vallen even een overzicht:

Doel

Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn waterkaart. Uiteraard moet er getracht worden de kosten binnen de perken te houden.

Eisen

  • Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)
  • Power on = up & running

Opties

Heel basic bestaat zo'n systeem uit de volgende dingen:
GPS ontvanger - Controller - Mobiel internet modem

Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen.
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.
Een andere optie die makkelijker te programmeren is, is de software op de telefoon zelf draaien. De meeste telefoons hebben wel Java tegenwoordig, en daarmee zouden we wel een heel eind moeten kunnen komen.

Mogelijke opties zijn:

  1. Krijg een simpel Java programma werkend op een telefoon. En een GPS ontvanger met de telefoon laten communiceren. Dan wil Steven wel gaan kijken of die iets goeds kan programmeren.
  2. Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.
  3. Zoek een Open Source telefoon.

Optie 1 heeft de voorkeur. Zodra we een Java programma werkend hebben, kunnen we dan kijken naar I/O. Waarschijnlijk wordt dat een microcontroller aan de knoppen solderen, want Java kan waarschijnlijk geen poorten benaderen. Optie 3 is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.

Hardware

Belangrijkste dingen die er nodig zijn:

  • GPS ontvanger
  • controller
  • mobiel internet apparaat

Er zijn al een aantal telefoon binnen de vereniging beschikbaar die mobiel internet kunnen ontvangen:

  • Nokia 6230i
  • Nokia 7250i

Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.
Willem heeft ook een prepaid Simyo simkaart beschikbaar voor dit doel. Met een mobiel internet erbij. https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202

Een bluetooth GPS ontvanger kan waarschijnlijk zeer eenvoudig met een GSM communiceren. Maar vaak moeten deze 'aangezet' worden. Dat is niet handig voor de 'power on = running' eis.

Helmich is gaan researchen en heeft gevonden:

De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf

  • kan geen symbian op
  • draait Java
  • heeft bluetooth (gemakkelijk softwarematig toegankelijk)
  • heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)
  • heeft een IR poort (gemakkelijk softwarematig toegankelijk)
  • heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)
  • kan via GPRS mobiel het internet bereiken (dit werkt inmiddels met de simkaart van Willem)

De Nokia 7250i:

  • kan geen symbian op
  • draait Java
  • heeft IR (gemakkelijk softwarematig toegankelijk)
  • heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)
  • kan via GPRS mobiel het internet bereiken

linkjes naar IR naar TTL/RS232 converters: (belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf
http://www.edaboard.com/ftopic84368.html
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024

Software

Die Nokia 6230i is interessant:
http://gathering.tweakers.net/forum/list_messages/1115438/0
Deze jongens krijgen navigatie aan de praat. Conclusie: hij kan met gps praten en er kan software op zo'n toestel. GPS gaat denk ik het handigst met een bluetooth verbinding. Vraag is alleen of we dat willen.

Dan staat er hier:
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND
Hoe kan ik spelletjes en andere .jar applicaties installeren?
Dat kan met de Nokia Suite, een linkje hiernaar staat hierboven. Hiermee kun je heel eenvoudig applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling

Volgens Steven is de .jar de applicatie die we willen draaien.

Met een beetje geluk kunnen deze telefoons dus ook als controller dienen.

Dus we hebben Nokia Suite op je desktop PC/laptop nodig:
handleiding:
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf
software:
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163

Communicatie kan via IR, bluetooth of een kabel (die hebben we niet) > bluetooth is het handigst?
Helmich heeft inmiddels een kabel geleend: Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :)

Deze website biedt aan een compleet programmaatje aan voor GPS tracken:
http://www.qcontinuum.org/gpstrack/
Meet GPS locaties en upload ze.
Dit programma draait inmiddels op de 6230i. Alleen was er nog geen GPS ontvanger beschikbaar :(
De broncode is ook beschikbaar dus Steven kan zo onze wensen invoegen als dat wenselijk is.

Steven heeft het programma aangepast: extra 'ETS' optie in het options menu waar de boot, en log en upload tijden voor euros gekozen kunnen worden.

Bij het uploaden moet er op gelet worden dat het .jad bestand niet in dezelfde map staat als de applicatie (.jar). dan gaat het mis bij het installeren. ('ongeldige toepassing') Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen. FF bij de optie van het programma toegang geven aan de connectiviteit.

Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct ff data (0kb) versturen zodat er netwerktoegnag gevraagd word en de uC dit nog ff kan bevestigen. Daarna wordt die toegnag niet meer gevraagd.


Automatisch starten

Het automatisch starten van onze Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.

Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.

Bronnen:

Mogelijke andere opties zijn:

  1. Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.
  2. Elektronisch starten door aan de knoppen te solderen; waarschijnlijk lastig omdat de knoppen met weerstand werken. Gevonden(?): http://www.circuitsonline.net/forum/view/60551/1/keypad
  3. Mechanisch starten door de knoppen in te drukken.


Elektronisch starten door aan de knoppen te solderen

In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden.

opengewerkte nokia 7250i


Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend.

Bestand:Nokia keypad 7250i.JPG
elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Solid state relays of optocouplers zouden hier kunnen voldoen

De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.

Vraag: Wat willen we?:

  • Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen
  • Alle 9 lijnen solderen > microcontroller alles laten doen

(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie

Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.

<<<<<<<<<<<<<CONCEPT>>>>>>>>>>>>>>>

Bestand:Aanuitgsm.JPG
schema met uC?

logisch stappenplan:
If:
IO1(sense): 0>1
then:
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)
IO3(keuzetoets) > 'aan' op tijdstip 6-6.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)
IO4(selecttoets) > 'aan' op tijdstip 8-8.1 seconden (map 'verzameling' wordt gekozen)
IO4(selecttoets) > 'aan' op tijdstip 10-10.1 seconden (gps track programma start)

If:
IO1(sense): 1>0
then:
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan uit)

<<<<<<<<<<<<<CONCEPT>>>>>>>>>>>>>>>

Mechanisch toetsen bedienen

Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[1] maar dan kleiner) Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.

  • toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%
  • er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%
  • toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%

Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.

Concreet

Punt waar we nu (27-04-2009)(09-05-2009) zijn:
Er is een GPS ontvanger nodig om een compleet systeem op te zetten :) DONE

Mogelijke opties:

  • 1. GPRS GSM + bluetooth GPS > een GPSmuis regelen (op marktplaats). Mooiste is met een on/off schakelaar, dus geen tiptoetsen. DONE
  • 2. GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)

In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/
Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth.


Tweaks nodig voor optie:
1.

  • powerknop GSM extern maken, zodat deze met bijv. een timer relais/microcontroller aangezet kan worden bij 'power-on'
  • Elektrisch toetsen aansturen
  • taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup
  • IF geen on/off powerknop: de power knop van de GPS extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'

2.

  • powerknop GSM extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'
  • Elektrisch toetsen aansturen
  • taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup
  • Seriele aansluiting GPS ontvanger ombouwen naar IR


So todo:

  • Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)
  • kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)
  • microcontroller bouwen
  • microcontroller programmer regelen
  • software aanpassen
Bestand:GSM OnOff schakeling.JPG
Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p

Gerelateerde linkjes

Info over de telefoons:
http://gathering.tweakers.net/forum/list_messages/1219707///gprs%2Cgsm%2Cals%2Cmodem
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html
http://gathering.tweakers.net/forum/list_messages/1115438/0
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html

Toepasbare software:
http://www.qcontinuum.org/gpstrack/
http://www.trackr.eu/faq/
http://www.trekbuddy.net
http://sportstracker.nokia.com/nts/main/index.do