Projekteja yhteisöltä


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

Tiistaina oli jälleen perinteinen avointen ovien päivä (kuten joka tiistai). Pajalle oli ilmestynyt pari uutta konetta, nimittäin hiekkapuhalluskone:

Sekä uuni, joka lämpenee 1500 asteeseen:

Näillä tehdään vielä jotain hienoa.

 

Jäsenistö viritteli projektejaan. Ezzkoram väsäsi akryylistä ja lasersäteistä saippuatelineen kylppäriin:

Cos viritteli uuden version askelmoottorikäyttöisestä lineaariservostaan:

Kaikenlaista muutakin väsättiin (saa lisätä tähän postauksen jatkoksi). Mm. videotykille speksailtiin valkokangasta jonka voi kiinnittää nosto-oveen. Säätäminen jatkuu.

Here’s the first wireless charging The Other Half made at Tampere Hacklab. It has a custom 3D-printed case, Samsung S3 wireless receiver, and connectors made with copper tape and some thin wire. There were some issues in placing the wireless receiver. It did not work when placed in the center of the phone, possibly due to interference caused by battery. Placing it in the bottom half of the case solved the issue. This is the first prototype and improved versions will be made later.

 

 

 

Our friends at Jolla today released The Other Half developer kit. Tampere Hacklab 5w got an exclusive pre-release version of the Jolla TOH 3D-model in the end of December. The model is the exact CAD model from which the TOH’s are built from. As the first step we decided to print it without any modifications with our Ultimaker 3D printer. The package contains also a 3D model of the phone’s back side which can be useful while designing new hardware. The 3D models are released in .stl and .stp formats.

 

This is how it looks in Cura printing software. As you can see, the model is very detailed. It is not optimized for printing and contains some small notches which won’t print properly. Also the edges are not completely flat so they will not print with full quality.

 

Printing time was about 50 minutes. Layer height of 0.1 mm and 30% fill were used. The material is yellow slightly transparent PLA.

 

The finished product after cleaning up.

 

TOH mated with a Jolla phone. Some knife work was necessary to fit the TOH properly. It stays on pretty well and can be considered success already. Acetone vapour treatment could be used to give the TOH smooth shiny surface.

 

 

The next step was to modify the model to be more suitable for 3D printing. This included flattening the back and removing the small notches which wouldn’t print correctly anyway. Also the holes for buttons and connectors needed to be enlarged. We created three different sizes for experimenting with electronics. You can downloads the stl files here. These print nicely and fit the phone. Note that there are also reverse-engineered TOH 3d models posted in talk.maemo.org but those have been created before the official release.

First print-optimized TOH with a friendly robot watching. The material is PLA which glows in the dark.

 

Three sizes to choose from.

We are currently experimenting with wireless charging TOH’s using Samsung S3 Qi receiver pads and extra battery TOH. If you live in Tampere area, pay us a visit some Tuesday night and print a TOH for yourself! Thanks for Jolla for releasing these. I hope community will find good use for them.

Tämän vuoden merkittävimpiä projekteja on ehkä ollut naapurikopin työstökoneiden käyttöönotto ja opettelu. Jo heti alkuvuodesta saatiin laserleikkurilla leikattua ensimmäiset palaset ja hyvin pian havaittiin, että ohjausjärjestelmä kannattaa tehdä uusiksi. Kiinalaisen moshidraw:n tilalle linuxcnc ja pieniä elektroniikkamuutoksia kytkentöihin mahdollistivat laitteen järkevämmän käytön. Samalla saatiin myös parannettua turvallisuutta kytkemällä muutama turvakytkin.

Laserleikkurin linssien ja peilien puhdistusta

Laserin jälkeen vuorossa olivat plasmaleikkuri ja jyrsin. Molemmat isoja koneita. Plasmaleikkurissa ja jyrsimessä oli molemmissa kiinalainen NCStudio. Jyrsimen mukana tuli myös jyrsimeen sopivat asetukset, mutta plasmaan ei asetuksia löytynyt. Neuvottelulla ohjainkorttien valmistajan (Weihong) kanssa ei päästy plasman kanssa pidemälle ja kuukauden yrittämisen jälkeen hylättiin ajatus saada NCStudio toimimaan plasman kanssa. Korvaaviksi palikoiksi Linuxcnc ja Mesanetin io-kortti.

Korvaavien palikoiden saapumista odotellessa suunnattiin panokset sitten jyrsimen suuntaan. Jyrsimen NCStudio toimii jyrsimen kanssa juuri niin hyvin kuin sitä osaamme käyttää. Automaattista työkalunvaihdinta ei vielä olla saatu toimimaan ja muutenkin työstöarvot ovat vähän hakusessa ja puruimuri pitäisi myös virittää. Muuten kyllä ihan toimiva peli.

Plasman korttien saavuttua pienellä parin päivän askartelulla kortit paikoilleen ja linuxcnc:n asetukset kohdilleen. Ja kas, toimiva plasmaleikkuri. Vielä tarvitaan parempi savupoisto.