////// VENETIETO.FI \\\\\\ //// Autopilotti 2014 \\\\ #include <EEPROM.h> #include <SoftwareSerial.h> SoftwareSerial gps(10, 0); // RX, TX -pinnit



Samankaltaiset tiedostot
////// VENETIETO.FI \\\\\\ //// Autopilotti 2014 \\\\ //-PID säätimellä. #include <EEPROM.h> #include <SoftwareSerial.h>

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Jukka Helle

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Peter Kronström

Arduino. Kimmo Silvonen (X)

Ohjelmointiharjoituksia Arduino-ympäristössä

Arduinon ohjelmointi. Sami-Petteri Pukkila. 6. helmikuuta 2017

#include <SoftwareSerial.h>

Arduino. Kimmo Silvonen (X)

1 Tarkistetaan että kaikki toimii

Arduino. Kimmo Silvonen (X)

Arduinon ohjelmointi. Sami-Petteri Pukkila. 1. helmikuuta 2016

MITTAUSTEKNIIKAN LABORATORIOTYÖOHJE TYÖ 9 MITTAUSTIEDON KERUU JA KÄSITTELY

LUMA SUOMI -kehittämisohjelma LUMA FINLAND -utvecklingsprogram LUMA FINLAND development programme Ohjelmointia Arduinolla

- Käyttäjä voi valita halutun sisääntulon signaalin asetusvalikosta (esim. 0 5V, 0 10 V tai 4 20 ma)

- Käyttäjä voi valita halutun sisääntulon signaalin asetusvalikosta (esim. 0 5V, 0 10 V tai 4 20 ma)

Ohjelmoi Arduino Grovella

P I C A X E O H J E L M O I N T I

MB 20 MODBUS RTU LIITYNTÄYKSIKKÖ SAR 410:LLE TEKNISET TIEDOT. MB 20 on liityntäkortti painesäädin SAR 410:n liittämiseksi Modbus RTU väylään.

MB 20 MODBUS RTU LIITYNTÄYKSIKKÖ SAR 410:LLE TEKNISET TIEDOT. MB 20 on liityntäkortti painesäädin SAR 410:n liittämiseksi Modbus RTU väylään.

Tällä ohjelmoitavalla laitteella saat hälytyksen, mikäli lämpötila nousee liian korkeaksi.

Yrityslähtöisten ideoiden käyttö fysiikan opetuksessa

U-REMIX USB RF 2 RF 1 POWER

Tietotyypit ja operaattorit

Java-kielen perusteet

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

WT11i-A -breakoutin Arduino-pikaopas

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

6.3. AVR_rauta. EEPROM-muisti pva

Anturit ja Arduino. ELEC-A4010 Sähköpaja Tomi Pulli Signaalinkäsittelyn ja akustiikan laitos Mittaustekniikka

TAITAJA 2007 ELEKTRONIIKKAFINAALI KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro:

Puhallinmoottorinohjaimen käsipäätteen käyttöohje, TBLZ- 1-75, SILVER C

Arduinon ohjelmointi. Sami-Petteri Pukkila. 26. syyskuuta 2016

KESKIJÄNNITEVERKON SUOJAUS JA OHJAUS. Ville Tiesmäki

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

DATALOGGERI DT-171 PIKAKÄYTTÖOHJE V 1.2

Tarkempaa tietoa saat myös kurssin GitHub-alustalta. Sen wiki-osio on kattava ja yksityiskohtainen, kun tämä vihkonen taas on vain ensihätään.

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

UVS Kanavainen tärinämittari

Kuvaruudun striimaus tai nauhoitus. Open Broadcaster Software V.20. Tero Keso, Atso Arat, Niina Järvinen & Valtteri Virtanen (muokattu 20.2.

PAIKKATIEDON SIIRTO RADIOLINKIN AVULLA

Nopeuden mittaaminen

Puhallinmoottorinohjaimen käsipäätteen käyttöohje, TBLZ-2-75, SILVER C

Java-kielen perusteet

Arduino ohjelmistokehitys

S85 laseretäisyysanturi

Ohjelmoinnin peruskurssien laaja oppimäärä

smartallinone Sarjaliikenteellä toimiva releohjain

PR SARJA ASENNUS JA KYTKENTÄ

Ville Pentikäinen AUTOPILOTTI VENEESEEN

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Käyttöohje BTGP-38KM Bluetooth GPS Data Logger V1.0

Moottorin kierrosnopeus Tämän harjoituksen jälkeen:

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

1 Muutokset piirilevylle

KÄYTTÖOHJE TAKOMETRI TRIFITEK TR-550

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

OHJELMOINTILAITE 10/50

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Demo 6 vastauksia. 1. tehtävä. #ifndef #define D6T1 H D6T1 H. #include <iostream> using std::ostream; using std::cout; using std::endl;

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Arduino tutuksi. Kyösti Blinnikka

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Arduino ja perusteita

Sulautettujen järjestelmien kilpailutehtävä

#include <stdio.h> // io-toiminnot. //#define KM_MAILISSA int main( ){

turvavalopuomi SG-BIG Base

KÄYTTÖOHJE LÄMPÖTILA-ANEMOMETRI DT-619

Plagioinnin tunnistaminen lähdekielisistä ohjelmista

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

Kasvu keskimäärin / Average growth: +2,9 % Japani Japan

Listarakenne (ArrayList-luokka)

PR SARJA ASENNUS JA KYTKENTÄ

KOSTEUSLÄHETTIMET RHT

1.1 Pino (stack) Koodiluonnos. Graafinen esitys ...

ESPOO VANTAA INSTITUTE OF TECHNOLOGY. ser 0/0. Right WS-3 WS-4. Ennen QoS-määrittelyjä tehdään normaalit reititinmäärittelyt ja testataan IP-yhteys:

DATA-vaiheen ohjelmoijan yleissivistys helposti unohtuvia asioita

Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö C-ohjelmassa

Avid Pro Tools Äänityksen perusteet. Petri Myllys 2013 / Taideyliopisto, Sibelius-Akatemia tp48 Äänitekniikan perusteet

HF1 laitteen käyttöönotto ja asetukset

1. luento. Ohjelmointi (C) T0004 Syksy luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot.

Aurinkojärjestelmän syväpurkauksen ohjausyksikkö Suunnittelu Mikko Esala

Rider 40 Rider 40:ssä on neljä näppäintä, joita käytetään useisiin eri tarkoituksiin.

Tietorakenteet ja algoritmit

Ohjelmoinnin peruskurssien laaja oppimäärä

REST rajapintana mobiilikehityksessä

valvontayksikkö SG-BWS-T4-MT

Kuvaruudun striimaus tai nauhoitus. Open Broadcaster Software V.20. Tero Keso, Atso Arat & Niina Järvinen (muokattu )

MIGS Videoendoskooppi Käyttöohje

TIETORAKENTEET JA ALGORITMIT

Väriprofiili. Valitse Europe Prepress 3 ja paina Apply

TI-30X II funktiolaskimen pikaohje

6.2. AVR_rauta. Analogia-komparaattori-ohjelmointia , pva

A TIETORAKENTEET JA ALGORITMIT

Arduinon Alkeet. Johdatus Arduinoon ja elektroniikkaan

Anturit ja Arduino. ELEC-A4010 Sähköpaja Tomi Pulli Signaalinkäsittelyn ja akustiikan laitos Mittaustekniikka

811120P Diskreetit rakenteet

Rajapinta (interface)

KÄYTTÖOHJE PEL / PEL-M

C++11 seminaari, kevät Johannes Koskinen

Transkriptio:

////// VENETIETO.FI \\\\\\ //// Autopilotti 2014 \\\\ #include <EEPROM.h> #include <SoftwareSerial.h> SoftwareSerial gps(10, 0); // RX, TX -pinnit const int buttonpinset = 2; // painonäppäimen pinni const int buttonpinclear = 4; // painonäppäimen pinni const int buttonpinoikea = 12; // painonäppäimen pinni const int buttonpinvasen = 10; // painonäppäimen pinni const int ledpin = 13; // LED pinni const int Dir2a = 7; //PWM suunta 2a const int Dir2b = 8; //PWM suunta 2b const int Enable2 = 5; //PWM E2 const int numreadings = 5; int buttonstateset = 0; // muutuja pianonäppäimen tilan lukemiseksi int buttonstateclear = 0; // muutuja pianonäppäimen tilan lukemiseksi int buttonstateoikea = 0; int buttonstatevasen = 0; int ero = 0; // muutuja arvolle int address = 0; // muutuja arvolle int readings[numreadings]; // the readings from the analog input int index = 0; int total = 0; int average = 0; // the index of the current reading // the running total // the average float gpslat0;

float gpslong0; float gpslat; float gpslong; float gpsspeed; //solmua float gpsbearing; //suunta byte tallennus; void setup() Serial.begin(38400); gps.begin(38400); pinmode(ledpin, OUTPUT); //asettaa pinnin ulostuloksi pinmode(buttonpinset, INPUT); //asettaa pinnin sisääntuloksi pinmode(buttonpinclear, INPUT); //asettaa pinnin sisääntuloksi pinmode(buttonpinoikea, INPUT); pinmode(buttonpinvasen, INPUT); for (int thisreading = 0; thisreading < numreadings; thisreading++) readings[thisreading] = 0; void loop() if (gps.available() > 1) //lue arvo kun GPS antaa dataa if (char(gps.read()) == 'R' && char(gps.read()) == 'M' && char(gps.read()) == 'C') //lue arvo jossa R,M ja C (RMC) gps.parsefloat(); //poista turhat gpslatlong(gps.parseint(), gps.parseint(), gps.parseint(), gps.parseint()); //sijainti gpsohjaus(); //toista lauseke "gpsohjaus"

gpsspeed = gps.parsefloat(); //solmua gpsbearing = gps.parsefloat(); //suunta void gpslatlong(int lat1, int lat2, int long1, int long2) //paikan, nopeuden ja suunnan printti, jos vaikka haluaa tulevaisuudessa näytölle gpslat = int(lat1/100) + (lat1%100)/60.0 + float(lat2)/10000.0/60.0; gpslong = int(long1/100) + (long1%100)/60.0 + float(long2)/10000.0/60.0; Serial.print(gpsLat,5); Serial.print("/"); Serial.println(gpsLong,5); Serial.print("Nopeus:"); Serial.println(gpsSpeed,3); Serial.print("Suunta:"); Serial.println(gpsBearing,2); void gpsohjaus() //ohjaustoiminto buttonstateset = digitalread(buttonpinset); buttonstateclear = digitalread(buttonpinclear); tallennus = EEPROM.read(0); //EEPROM muistin luku osoitteesta (0) total= total - readings[index]; readings[index] = gpsbearing; total= total + readings[index]; index = index + 1; if (index >= numreadings)

index = 0; average = total / numreadings; int suunta = average/2; //suuntima on 0-360, mutta EEPROM tallentaa arvot vain välillä 0-255 if (buttonstateset == HIGH) //toimi jos Set nappia painettu EEPROM.write(0, suunta); //kirjoita EEPROMn osoitteeseen (0) suuntiman arvo digitalwrite(ledpin, HIGH); //sytytä LED if (buttonstateclear == HIGH) //toimi jos Reset nappia painettu EEPROM.write(0, 0); //kirjoita EEPROMn osoitteeseen (0) arvo 0 digitalwrite(ledpin, LOW); //sammuta LED if (tallennus!= 0) //toimi jos tallennuksen:n arvo ei ole 0 int ero = suunta-tallennus; //hetkellisen suunnan ja tallennuksen ero if (2 >= ero >= -2) //pysayta moottori jos ero pienempi kuin 2 analogwrite(enable2,0); if (ero >= 2) //pyöritä moottoria hitaasti jos ero suurempi kuin 3, vastapaivä analogwrite(enable2,130); if (ero >= 8) //pyöritä moottoria nopeasti jos ero suurempi kuin 15, vastapaivä

analogwrite(enable2,250); if (ero <= -2) //pyöritä moottoria hitaasti jos ero suurempi kuin 3, myötäpaivä digitalwrite(dir2a, LOW); digitalwrite(dir2b, HIGH); analogwrite(enable2,130); if (ero <= -8) //pyöritä moottoria nopeasti jos ero suurempi kuin 15, myötäpaivä digitalwrite(dir2a, LOW); digitalwrite(dir2b, HIGH); analogwrite(enable2,250); Serial.print("ero:"); //tulosta ero sarjaporttiin Serial.println(ero); Serial.print("average:"); //tulosta keskiarvo sarjaporttiin Serial.println(average); if (tallennus == 0) //toimi jos tallennuksen:n arvo on 0 if (buttonstateoikea == HIGH) analogwrite(enable2,250); else analogwrite(enable2,0);

if (buttonstatevasen == HIGH) digitalwrite(dir2a, LOW); digitalwrite(dir2b, HIGH); analogwrite(enable2,250); else analogwrite(enable2,0); Serial.print("tallennus:"); //tulosta tallennus sarjaporttiin Serial.println(tallennus);