Tervetuloa Tampere Hacklabin www-sivuille! Tampere Hacklab (kutsumanimeltään 5w) on yhteisö, joka ylläpitää Tampereen keskustassa harrastetilaa tekniikasta ja teknologiasta kiinnostuneille. Kuukausimaksua vastaan jäsenemme saavat ympärivuorokautisen pääsyn tilaan ja käyttöönsä tilassa olevat työkalut.

 

Tilassa voi tavata samanhenkisiä ihmisiä ja toteuttaa erilaisia projekteja (Wiki). Lisäksi järjestämme kursseja ja muita teemailtoja. Toiminnalla ei ole tarkoitus olla kovin jyrkkiä reunaehtoja ja se muotoutuukin aina jäsenien mieltymysten mukaan.

 

Tarkista 5w:n aukiolo tästä

Olemme vaihtaneet nimemme Hackerspace 5w:stä Tampere Hacklabiksi. Vanhaa nimeä näkee vielä näillä sivuilla sekaisin uuden kanssa kunnes se saadaan muutettua kaikkialle.


Kuvasin videoita Tampereen seudun frisbeegolf radoista. Kuvauksia voi käydä katsomassa osoitteessa https://www.youtube.com/user/discgolfcoursesaer

Tässä selvitys multikopterista, kamerasta ja menetelmästä jolla videot tehtiin

Kuvausjärjestelmä muodostuu näistä komponenteista

Rakennussarja on tilattu web-kaupasta Saksasta.

Multikopteri on DJI:n valmistama F450 FlameWheel. Kopteri hankittiin rakennussarjana, joka sisälsi kaikki osat rungon mekanikasta NAZA V2-lentokontrolleriin. Rakennussarjan etuna on pieni aloituskynnys. Kopteri on helppo kasata ja kontrollerin ohjelmointi käy helposti DJI:n youtube videoiden pohjalta. Laitteen kasauksessa opittuja uusia taitoja oli juottaminen, jota tarvittiin moottorien sähköjohdotukseen. Muuten laitteen voi koota ruuvvaamalla. Kontrolleriin tehdään asetukset DJI:n omalla ohjelmalla.

 

Videokamera ostettiin paikallisesta myymälästä

Ostin Sonyn videokameran, koska ostohetkellä kuva tuntui paremmalta. Nyt myöhemmin olen huomannut, että en osaa verrata kuvia, koska en ole omistanut GoPro-kameraa. HDR-AS100V on julkaistu huhtikuussa. Suurena miinuksena on, että kameralle ei ole saatavissamultikoptereihin sopivia kaapeleita, kiinnekkeitä ja gimbaaleja. Kaikki erikoisosat on suunniteltava ja valmistettava itse. Jos hankkisin uutta kameraa uudelleen ostaisin ehkä GoPro:n laajemman tarvikevalikoiman vuoksi. Kamerassa on wifi, johon voi yhdistää Android-puhelimen. Puhelimen Playmemories-ohjelmistolla voi hallita kameraa ja ladata kamerasta vidoita. Kyseinen ominaisuus ei toimi IOS-laitteissa mainoslupauksista huolimatta. No… kamera oli Shanghaissa noin 100€ halvempi kuin Tampereella. Kamerassa on kohtuullisen hyvä digitaalinen tärinän vaimennus. Vaimennus poistaa pienimmät värinät ja heilahdukset.

Kameran kiinnikkeet suunnittelin itse. Vaimennusidean sain tästä YouTube videosta. 3D-Tulostetut osat ovat oivallisia lennokeissa niiden keveyden ja kestävyyden vuoksi. Osat on tulostettu 0.8mm seinämällä ja 30%n täytöllä. Kameran kiinnikkelle tehtiin neljä kehityskierrosta ennen kuin kiinnikkeen koko ja ominaisuudet saatiin sopiviksi.

FPV-järjestelmä
Järjestelmä välittää kopterissa olevan kameran kuvan radiosignaaleina ohjaajan päässä oleviin laseihin. Kopteriin on asennettu erittäin pieni kamera. Kamera on samanlainen, mitä käytetään valvontakameroissa. Kuva välitetään 5,8 MHz taajuudella kopterin lähettimestä ohjaajan päässä oleviin laseihin. Laseissa on LCD-näytöt ja optiikka, jolla muodostetaan videokuva. Kamera on kiinnitetty kopteriin tulostetulla mekanismilla.

RC-laite
Laite on perinteinen lennokkien radio-ohjauslaite. Multikopterissa on erilaisia lentotiloja. Naza-V2 ohjaimessa on kolme eri tilaa gps, atti ja acro. Ohjaimessa on hyvä olla riittävästi kytkimiä erilaisten lentotilojen aktivoimiseen. Lisäksi  ohjaimesta voi valita ohjauksen eri koordinaatistoissa. Frisbeegolfratojen kuvaukset on tehty pääasiassa atti-ohjaustilassa, jolloin tietokone avustaa lentäjää pitämällä kopteria “suurinpiirtein” samalla korkeudella. Lähettimen FASSTest lähetysmoodi pitäisi olla lähes häiriötön tai se sietää jonkin verran häiriöitä. Kun kopterissa on kyydissä kameroita ja paljon elektroniikkaa sai myyjä puhuttua ostmaan juuri kyseisen ohjauslaitteen. Vastaanottimena kopterissa on Futaban R7003SB.

Tässä järjestelmän kuvaus.

Muuta videoista

Videot on editoitu Applen iMovie-ohjelmistolla. Musiikit on sävelletty Garagebandin ipad-versiolla. Molemmat ohjelmistot ovat erittäin helppoja ohjelmia käyttää. Varsinkin Garageband, en osaa soittaa mitään soitinta, mutta lyhyen harjoittelun jälkeen osasin koota kappaleita garagebandin materiaaleista ja myöhemmin opin säveltämään kappaleita itse.

Tässä lyhyt esitys kuvausprojektista. Autan mielelläni jos muillä jäsenillä on kysyttävää.

 

 

 

Onnistuin korruptoimaan uuden emolevyn BIOS:n, kun FreeDOS -pohjainen päivitysohjelma kaatui kesken kirjoituksen. Koska omistin jo Raspberry Pi:n niin mietin, että olisiko joku tehnyt laitteelle GPIO -nastoihin perustuvaa EEPROMmeria. Kytkentä oli lopulta hyvin yksinkertainen, mutta ainut kämmi tuli siinä, että sekoitin Raspberryn nastat ja GPIO-pinnien numeroinnit keskenään. 64 megabitin flässipiirin ohjelmointiin ei tarvinnut ostaa muita komponentteja, kuin DIP8 -kanta.

Ohje flash -muistin yhdistämiseen Raspberry Pi:hin löytyy osoitteesta http://www.flashrom.org/RaspberryPi . Pinnit voi kytkeä suoraan raspiin ja ainut ylimääräinen informaatio, mitä flashrom:n ohjeen lisäksi tarvitaan on flashin datasheet, josta löytyy flash -piirin fyysisten pinninumeroiden ja flashin ohjelmointiin tarvittavien linjojen vastaavuus. Kuva omasta ugly -tyyliin rakennetusta ohjelmointilaitteestani löytyy osoitteesta http://instagram.com/p/rZARTQvRyb/ .

RPi header SPI flash
17 Vcc 3.3V
25 GND
19 DI
21 DO
23 SCK
24 /CS

Jäsen Kertsi toi pajalle tiistain hämmästelyyn kinect-sensorin lähisukulaisen, jonka avulla saatiin aikaan todella hienoja 3D skannauksia melko pienellä vaivalla. Rauhallisesti joka puolelta kohdetta (tässä tapauksessa jäsen Arno) skannaten saadaan dataa, jonka skanect niminen ohjelma muutamalla klikkauksella kääntää tulostettavaksi STL-tiedostoksi. 50mm korkea tuloste tuli noin 2,5 tunnissa valmiiksi 0.1 mm kerrospaksuudella.

Jollan TOH päällä on CD-asemasta otettu linssi

Jolla, makrolinssi CD-asemasta ja kirurgin neula

Askartelin matkapuhelimeni kameraan ehostusta makro-kuvaukseen vanhasta CD-asemasta. Kiitokset Cybette@jolla vinkistä. Ensimmäinenkin prototyyppi teipillä toimi, mutta linssin parempaa paikallaanpysymistä varten kannattaa jatkaa kehitystä. En edes tiedä, otinko oikean linssin, tämä oli lähinnä CD-levyn pintaa. Makrokuvaaminen kuitenkin lisää kamerapuhelimen käyttökohteen mikroskooppimaailmaan, mutta miksihän sitä ei kutsuta mikrokuvaamiseksi? Jolla+macrolinssillä otetuissa kuvissa lehden sivusta s-kirjain sekä neulan kärki ja 2 mm pituinen piikki, jonka olin saanut sormeeni.

Lähteet:
http://wp.me/p35IFe-1Kk
http://www.itbackstage.de/2014/04/10/jolla-selfmade-macro-the-other-half/

thorn

Piikki neulassa. Taustavalona laptop .

ei WC-paperi, vaikka näyttää siltä.

 

Last weekend there was the excellent Stream TEN demoparty at Tampere. Our member built a electromechanical pong console which uses lasers for projection instead of TV display. Here’s a demo video:

The LaserPong will gain some finishing touches later and will be playable in events where Tampere Hacklab is present.

Suunniteltiin ja pähkäiltiin hieman yhden yleisen teeman eli robottien ympärillä. Lopulta muodostui ajatus rakennussarjan kehittämisestä erityisesti robotiikan aloittelijoita ajatellen. Eli helppo kokonaisuus mekaniikkaa ja elektroniikkaa niin, että alkuun pääsee helposti. Idea on, että rakennussarjan avulla voi tutustua robotiikan perusteisiin ja kehittää ymmärryksen karttuessa sitten omien mieltymysten mukaan joko mekaniikkaa, eletroniikkaa tai ohjelmistoa.

Projektirobotti ei ole vielä valmis, mutta jonkinlainen näkemys robotin ulkomuodosta ja ominaisuuksista on saatu jo muodostettua.

In the junkpil.. I mean in the lot of incoming hardware was a new toy. A usb controller toy robot arm. Quick googling revealed it is pretty common toy and there were already some solutions on how to control it without using the original software.

In one hour the robot arm was moving by command.


# ROBOT ARM CONTROL PROGRAM
#
# http://tampere.hacklab.fi
# http://vaasa.hacklab.fi
#
# //kengu
# //2014-04-21
#
# robotic arm movement ideas and basis from
# http://martinsant.net/?page_id=983
#
# keyboard control based on
# http://content.gpwiki.org/index.php/Python:Pygame_keyboard_input
#
# also some ideas from
# http://stackoverflow.com/questions/16044229/how-to-get-keyboard-input-in-pygame
# http://stackoverflow.com/questions/14580935/pygame-keydown-event-line-not-updating-position
#

# uses pygame

import usb.core, usb.util, time
import pygame
from pygame.locals import *

# Allocate the name 'RoboArm' to the USB device
RoboArm = usb.core.find(idVendor=0x1267, idProduct=0x0000)

# Check if the arm is detected and warn if not
if RoboArm is None:
raise ValueError("Arm not found")

# Create a variable for duration
Duration=1

# Define a procedure to execute each movement
def MoveArm(Duration, ArmCmd):
# Start the movement
RoboArm.ctrl_transfer(0x40,6,0x100,0,ArmCmd,1000)
# Stop the movement after waiting specified duration
time.sleep(Duration)
ArmCmd=[0,0,0]
RoboArm.ctrl_transfer(0x40,6,0x100,0,ArmCmd,1000)

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption('Robot arm control')
#pygame.mouse.set_visible(0)

datastring = 0
rotate = 0
done = False

while not done:

MoveArm(0.01,[datastring,rotate,0])

for event in pygame.event.get():
if (event.type == KEYUP) or (event.type == KEYDOWN):
datastring = 0
rotate = 0

keys = pygame.key.get_pressed()
if keys[K_a]:
datastring +=128

if keys[K_q]:
datastring +=64

if keys[K_s]:
datastring +=32

if keys[K_w]:
datastring +=16

if keys[K_d]:
datastring +=8

if keys[K_e]:
datastring +=4

if keys[K_f]:
datastring +=2

if keys[K_r]:
datastring +=1

if keys[K_g]:
rotate = 1

if keys[K_t]:
rotate = 2

# print event
# print keys
if (event.key == K_ESCAPE):
done = True

#MoveArm(1,[0,0,1]) #Light on
#MoveArm(1,[0,0,0]) #Light off
#MoveArm(1,[64,0,1]) #Shoulder up
#MoveArm(1,[128,0,0]) #Shoulder down
#MoveArm(1,[16,0,0]) #Elbow up
#MoveArm(1,[32,0,0]) #Elbow down
#MoveArm(1,[4,0,0]) #Wrist up
#MoveArm(1,[8,0,0]) # Wrist down
#MoveArm(1,[1,0,0]) #Grip close
#MoveArm(1,[2,0,0]) #Grip open
#MoveArm(1,[0,1,0]) #Rotate base anti-clockwise
#MoveArm(1,[0,2,0]) #Rotate base clockwise