2. Liikennevalot
tiistai 18. joulukuuta 2018
Arduino alkuharjoituksia
1. Valo himmenee ja kirkastuu
Sijainti:
Sakonkatu 1, 11100 Riihimäki, Finland
torstai 14. kesäkuuta 2018
Elävä valo
No en taida tässä jäädä koodaamaan liikennevaloja.
Jos tekis sellaisen sydeemin, että nettisivulta klikkais nappia, ja se sais valon sitten elämään. Plus ja miinus napit, ja niistä kirkastuu tai himmenee. Simuloisiko se jääkaapin lämpötilan muutosta. Niin pitäähän se lämpötila ensin nähdä siinä sivulla.
Sijainti:
Sakonkatu 1, 11100 Riihimäki, Finland
keskiviikko 13. kesäkuuta 2018
Seuraava projekti
Sijainti:
Sakonkatu 1, 11100 Riihimäki, Finland
Automaattisesti päivittyvä
No tulihan se tarpeeksi valmiiksi.
tiistai 15. toukokuuta 2018
Tiede.html
Siis mun kokeilut ei ole mitään verrattuna opiskelijoiden töihin :-)
Sijainti:
Sakonkatu 1, 11100 Riihimäki, Finland
tiistai 8. toukokuuta 2018
Apinapeli
Mun opiskelijat teki tämmösen mielettömän hauskan pelin:
Sijainti:
Sakonkatu 1, 11100 Riihimäki, Finland
keskiviikko 2. toukokuuta 2018
Tämäkin toimii
Micro:bit lähettää valoisuusarvoja Raspberryyn. Raspberryssä Python-ohjelma lukee sarjaporttia ja kirjoittaa SQLite tietokantaan arvoja. Python-ohjelmalla luetaan tietokantaa ja näytetään tiedot selaimessa. Selainta päivittämällä uudet tiedot tulee näkyviin.
Seuraavana html-jquery-python, palvelimen sql-tietokannasta json jqueryyn.
Seuraavana html-jquery-python, palvelimen sql-tietokannasta json jqueryyn.
Sijainti:
Sakonkatu 1, 11100 Riihimäki, Finland
keskiviikko 25. huhtikuuta 2018
SQLitestä Pythonilla nettisivulle
Hei, dataa!

Ja sitten seuraava versio
Pienten ponistelujen jäkeen rautalankaversio.
Sijainti:
Sakonkatu 1, 11100 Riihimäki, Finland
tiistai 24. huhtikuuta 2018
Voi jummi
No kestipäs hieman saada näin yksinkertainen ohjelma toimimaan, hah hah. Kaikkea sitä oppii.
No nyt pelittää, tästä se lähtee.
No nyt pelittää, tästä se lähtee.
Sijainti:
Sakonkatu 1, 11100 Riihimäki, Finland
torstai 19. huhtikuuta 2018
Uusi microbit projekti
Dataa syntyy ja se menee säilöön.
Raspberry lukee dataa ja tallentaa ne sql-tietokantaan.
Nettisivulla näytetään ne tiedot.
Testataan Raspberryllä, minicom-ohjelmalla
sudo minicom -b 11520 -D /dev/ttyACM0
Toimii, tulee V:30
Sitten tein tietokannan Raspberryyn
sqlite3 asennettu.
tietokanta.db
taulu
-avain, valo kaikki NUMERIC
Lisäsin yhden tietueen.
SQL-tietokanta
Tietokannan käsittelyyn Pythonilla löytyy ohjeita: http://sebastianraschka.com/Articles/2014_sqlite_in_python_tutorial.html#connecting-to-an-sqlite-database
Kokeilin tietokannan lukua:
from serial import *
import time
import sqlite3
conn = sqlite3.connect('tietokanta.db')
print("tietokanta avattu")
c = conn.cursor()
c.execute("SELECT * FROM taulu")
conn.commit()
for row in c:
print ("Aika ",row[0])
conn.close()
print("loppu")
import time
import sqlite3
conn = sqlite3.connect('tietokanta.db')
print("tietokanta avattu")
c = conn.cursor()
c.execute("SELECT * FROM taulu")
conn.commit()
for row in c:
print ("Aika ",row[0])
conn.close()
print("loppu")
Toimii.
Sitten koodataan lisää.
Ohjelma lukee sarjaporttia ja kirjoittaa sql-tietokantaan tietueita.
#! /usr/bin/python3
# -*- coding: utf-8 -*-
"""
Copyright (c) 2018 Jani Mantynen & Ville Heikkiniemi
Sirpa Mazarakis
Sirpa Mazarakis
Sarjaportin luku Janin ja VIllen ohjelmasta
Permission is granted to copy, distribute and/or modify this document under
the terms of the GNU Free Documentation License, Version 1.3 or any later
version published by the Free Software Foundation; with no Invariant Sections,
no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be
found online at http://www.fsf.org/licensing/licenses/fdl.txt
Ohjelma lukee sarjaportista rivin ja tekee siitä tietueen tietokantaan
"""
from serial import *
import time
import sqlite3
def Tapahtuma(data):
#print("data ",data)
if len(data) > 2:
try:
conn = sqlite3.connect('tietokanta.db')
#print("tietokanta avattu")
except Exception:
print("tietokantaa ei avattu")
sys.exit()
c = conn.cursor()
aika = int(time.time())
#print(aika)
valo = int(data[2:len(data)])
#print(valo)
c.execute("INSERT INTO taulu VALUES (?, ?)", (aika, valo))
conn.commit()
conn.close()
def main():
# Yritetään luoda sarjaportti
try:
microbit = Serial(port='/dev/ttyACM0', baudrate=115200, timeout=2)
except Exception:
print("tarkista portti")
while True:
try:
Tapahtuma(microbit.readline().decode()) # luetaan rivi
except KeyboardInterrupt:
print("keskeytetään")
sys.exit()
if __name__ == "__main__":
main()
Paitsi että kun syöte jää puskuriin, niin sama aikaleima tulee useaan tapahtumaan. Microbitin pitäisi lähettää se aika..eiku muuttamaan.
Tai olkoot.
Sitten tätä dataa pitäisi saada nettisivulle näkyviin.
Sijainti:
Sakonkatu 1, 11100 Riihimäki, Finland
torstai 12. huhtikuuta 2018
Tää toimii
Kyllä koodaaminen on kuin syömään rupeais 😊
Testasin ensin Python-ohjelman toiminnan Raspberryn työpöydällä. Kuinka vaikeaa onkaan ottaa kuvaruutukaappaus Raspbianilla, puhumattakaan videoida. Ohje kuvaruutukaappaukseen täältä: https://www.imore.com/how-take-screenshot-raspberry-pi
No, ohjelma toimii, eli työpöydälle syntyy json.tietokanta, ja se myös päivittyy.
Testasin ensin Python-ohjelman toiminnan Raspberryn työpöydällä. Kuinka vaikeaa onkaan ottaa kuvaruutukaappaus Raspbianilla, puhumattakaan videoida. Ohje kuvaruutukaappaukseen täältä: https://www.imore.com/how-take-screenshot-raspberry-pi
No, ohjelma toimii, eli työpöydälle syntyy json.tietokanta, ja se myös päivittyy.
Python koodia on täällä: https://docs.google.com/document/d/1Qvv-f5VeFt-dMbywJq2jOnxNhyFuyf4X43oGG7QJ2-Q/edit?usp=sharing
Kreditit Janille ja Villelle.
Sitten se jQuery. Eli micro:bitillä painetaan nappia, ja nettisivun divi liikkuu.
Koodipohja saatiin taas Villeltä. Ohjelma lukee json-tietokantaa.
// Koodi saatu Ville Heikkiniemeltä
// Haetaan JSON
function haeJson(e){
$.ajax({
cache: false,
url: 'data.json',
dataType: 'json',
success: function(data) {
var date = new Date(data['REF']*1000);
if (parseInt((date.getTime() / 1000), 10) - data['YY'] < 5){
$( "#keski1" ).addClass( "liikkuu" );
} else { $( "#keski1" ).removeClass( "liikkuu" ); }
if (parseInt((date.getTime() / 1000), 10) - data['II'] < 5){
$( "#keski3" ).addClass( "liikkuu" );
} else { $( "#keski3" ).removeClass( "liikkuu" ); }
}
});
setTimeout("haeJson()" ,1000);
}
function haivytys_click(lohko) {
var _lohko = document.getElementById(lohko);
_lohko.onclick = function() { _lohko.classList.add("liikkuu"); }
_lohko.ondblclick = function() { _lohko.classList.remove("liikkuu"); }
}
// Funktio joka ladataan sivun lataamisen yhteydessa
window.onload = function() {
haivytys_click('keski1');
haivytys_click('keski3');
haeJson();
}
Tää toimii!
Sijainti:
Sakonkatu 1, 11100 Riihimäki, Finland
torstai 5. huhtikuuta 2018
Toinenkin div liikkuu
Lisätään sama divin kasvaminen oikeaankin reunaan.
No onpas tyhmän näköistä koodia. Kun jos liikkuvia osia olisikin useampi. Tämä tarvinnee jQueryä.
No onpas tyhmän näköistä koodia. Kun jos liikkuvia osia olisikin useampi. Tämä tarvinnee jQueryä.
perjantai 23. maaliskuuta 2018
Div liikkuu
Lisäsin tuohon samaan sivuun hieman liikettä. Kun hiiri viedään vasemmalla olevan vihreän divin päälle, niin se levenee. Kun hiiri siirtyy pois, leveys palautuu normaaliksi.
Divillä keski1 on tilaa liikkua, kun selain huolehtii divin keski2 leveydestä. En taida tykätä tästä. Selvitetään lisää.
Alkuperäistä css:ää joutui muuttamaan, jotta divillä on tilaa liikkua.
Rajapinta
Tänään tutkailtiin micro:bitin ja Raspberryn rajapintaa.
Micro:bit lähettää sarjaporttiin pari tavua tekstiä, kun jotain nappia painetaan.
Micro:bit lähettää sarjaporttiin pari tavua tekstiä, kun jotain nappia painetaan.
Ravistaminen saa näköjään 2 tapahtumaa aikaiseksi.
Sitten tarkastellaan Raspberryllä, mitä sinne sen sarjaporttiin tulee.
Hyvin näyttää tulevan.
Seuraavaksi luetaan Pythonilla sarjaporttia.
torstai 22. maaliskuuta 2018
Uusi blogi
Keväältä tuoksuva lounatuuli kävi aamulla.
Tuossa ne sitten on, työpöydällä.
Loin uuden blogin, teema Hennolla otteella. Kyseessä on micro:bit ja Rapberry Pi. Opiskelijat ovat jo viisi viikkoa harjoitelleet, itse tulen vähän jälkijunassa tässä aiheessa. Hieman koodaamista harjoittelin tuolla http://microbit.org/fi/. Mahtavaa! Nyt pitäisi iskeä kourat rautaan kiinni.
Micro:bitissä on kaksi painonappia, A ja B. Tavoitteena on saada aikaan ohjelma, joka näyttää ledeissä kirjaimen A, kun A-nappia painetaan ja kirjaimen B, kun B-nappia painetaan. Kun laitetta ravistetaan, niin näyttö tyhjenee. Koodaamaan, koodaamaan! Selaimessa, Chromessa.
Sitten micro:bit koneeseen kiinni ja ladataan ohjelma micro:bittiin. Kokeillaan.
Tuossa ne sitten on, työpöydällä.
Loin uuden blogin, teema Hennolla otteella. Kyseessä on micro:bit ja Rapberry Pi. Opiskelijat ovat jo viisi viikkoa harjoitelleet, itse tulen vähän jälkijunassa tässä aiheessa. Hieman koodaamista harjoittelin tuolla http://microbit.org/fi/. Mahtavaa! Nyt pitäisi iskeä kourat rautaan kiinni.
Micro:bitissä on kaksi painonappia, A ja B. Tavoitteena on saada aikaan ohjelma, joka näyttää ledeissä kirjaimen A, kun A-nappia painetaan ja kirjaimen B, kun B-nappia painetaan. Kun laitetta ravistetaan, niin näyttö tyhjenee. Koodaamaan, koodaamaan! Selaimessa, Chromessa.
Sitten micro:bit koneeseen kiinni ja ladataan ohjelma micro:bittiin. Kokeillaan.
Toimii.
No tämä oli se helppo osuus. Tavoitteena olisi tehdä sydeemi, jossa micro:bitillä ohjataan nettisivua. Eli kun micro:bitissä tehdään jotain, vaikkapa painetaan nappia A, niin nettisivulla tapahtuu jotain.
Otetaan Raspberry Pi käyttöön. Asennetaan siihen Apashe2-palvelin.
Terminaaliin: sudo apt-get install apashe2
Sitten haetaan ip-osoite: ifconfig
Ja selaimella tuohon ip-osoitteeseen.
Juuresta var-kansio ja siellä www, johon tallennetaan nettisivut.
Sivun rakenne näyttäisi tältä:
Sivulla tapahtuisi vaikka sellaista, että kun A-nappia painetaan, niin tummempi oranssi osa ylhäällä muuttuisi vaaleammaksi. Sivu on rakennettu div:eillä ja muotoiltu css:llä.
Javascriptillä voidaan muokata html-sivua. Kokeilen ensin hiirellä klikkaamista tuohon oranssiin nauhaan.
Näyttää toimivan.
Nyt koodia pitäis saada muutettua siten, että useammalle diville tapahtuisi jotain, vaikka samoja juttuja.
jQueryllä voi kirjoittaa tehokkaammin. Siispä siihen tutustumaan. Tässä tämän aamun tulos.
Tilaa:
Blogitekstit (Atom)


