Инженер и собаковод Грег Богес (Greg Baugues) натренировал свою собаку Каиру нескольким полезным трюкам. Например, она умеет по команде «Свет!» включать свет в комнате, наступая на выключатель на полу.
Когда пёс освоил включение света, Грег задумался о том, что ещё собака может делать по команде, нажимая кнопку.
Он почитал рекомендации других собаководов, у которых домашние животные освоили электронные устройства, и придумал, что Каира вполне может освоить селфи, то есть может фотографировать сама себя и отправлять снимок по MMS.
Грег Богес сконструировал устройство с веб-камерой, которая активируется нажатием на большую красную кнопку. В качестве корпуса используется стильная коробка из-под сигар, такие продаёт местный магазин по два доллара за штуку.
Спустя небольшое время Каира научилась делать автопортрет.
Внутри коробки установлена плата Arduino Yun с двумя микропроцессорами. На втором запущен Linux-дистрибутив OpenWRT, который часто устанавливают в WiFi-маршрутизаторы. Всего на двух процессорах работает две программы, общим размером не более 60 строк кода.
Arduino просто ожидает, когда будет нажата клавиша, запускает команду для записи фотографии и запускает скрипт Python, чтобы загрузить фотографию на Dropbox и отправить MMS.
Скрипт тоже простой.
import datetime
import dropbox
from twilio.rest import TwilioRestClient
dropbox_access_token = "YOURDROPBOXTOKEN"
twilio_phone_number = "YOURTWILIOPHONENUMBER"
twilio_account_sid = "YOURTWILIOACCOUNTSID"
twilio_auth_token = "YOURTWILIOAUTHTOKEN"
cellphone = 'YOURCELLPHONE'
timestamp = datetime.datetime.now().strftime("%h-%m-%S")
filename = "kaira-" + timestamp + ".jpg"
f = open("/mnt/sda1/pic.jpg")
dropbox_client = dropbox.client.DropboxClient(dropbox_access_token)
response = dropbox_client.put_file(filename, f)
url = dropbox_client.media(response['path'])['url']
twilio_client = TwilioRestClient(twilio_account_sid, twilio_auth_token)
twilio_client.messages.create(
to = cellphone,
from_ = twilio_phone_number,
body = "Woof.",
media_url = url)
Автор: alizar