Как стать автором
Обновить

Собака научилась делать селфи с помощью Arduino

Время на прочтение2 мин
Количество просмотров8.9K


Инженер и собаковод Грег Богес (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)
Теги:
Хабы:
Всего голосов 16: ↑11 и ↓5+6
Комментарии17

Публикации