I’ve been playing with my Arduino, and wrote up a small library for morse code. Right now it only serves up characters A-Z and a-z, but whatever. I’ll work on writing up some documentation for it at some point too.
Here’s a small script detailing how I interacted it with it to display tweets with morse code. It’s a little hacked script from an honors project, so it will be ugly, of course:
import mechanize
from urllib2 import HTTPError
from BeautifulSoup import BeautifulSoup
import string
import serial
def get_user_tweets(userid):
tweets = []
try:
page = 1
while True:
request_user = mechanize.Request("http://twitter.com/" + userid + "?page=" + str(page))
response_user = mechanize.urlopen(request_user)
body_user = response_user.read()
soup_user = BeautifulSoup(''.join(body_user))
attrs = {}
attrs['class'] = "entry-content"
tagName = 'span'
extract_tweets = soup_user.findAll(tagName,attrs)
for e in extract_tweets:
tweet = e.findAll(text = True)
tweet = "".join(tweet)
tweets.append(tweet)
attrs = {}
attrs['id'] = "pagination"
tagName = 'div'
more_tweets = soup_user.findAll(tagName,attrs)
if len(more_tweets) == 1:
break
page+=1
return tweets
except HTTPError:
print "Error fetching user data"
def get_latest_tweet(userid):
tweets = []
try:
page = 1
request_user = mechanize.Request("http://twitter.com/" + userid +"?page=" + str(page))
response_user = mechanize.urlopen(request_user)
body_user = response_user.read()
soup_user = BeautifulSoup(''.join(body_user))
attrs = {}
attrs['class'] = "entry-content"
tagName = 'span'
extract_tweets = soup_user.findAll(tagName,attrs)
for e in extract_tweets:
tweet = e.findAll(text = True)
tweet = "".join(tweet)
tweets.append(tweet)
print tweets[0]
return tweets[0]
except HTTPError:
print "Error fetching user data"
if __name__ == "__main__":
ser = ''
try:
ser = serial.Serial('/dev/tty.usbserial-A6008bXp',9600)
except:
ser = serial.Serial('/dev/cu.usbserial-A6008bXp',9600)
userid = raw_input("userid: ")
tweet = get_latest_tweet(userid)
#tweets = get_user_tweets(userid)
ser.write(str(tweet))
Read more »