Turinys:

R.O.B. Pranešimo telefonu asistentas: 13 žingsnių
R.O.B. Pranešimo telefonu asistentas: 13 žingsnių

Video: R.O.B. Pranešimo telefonu asistentas: 13 žingsnių

Video: R.O.B. Pranešimo telefonu asistentas: 13 žingsnių
Video: CS50 2015 - Week 0 2024, Birželis
Anonim
R. O. B. Pranešimo telefonu asistentas
R. O. B. Pranešimo telefonu asistentas

Sekite daugiau autoriaus:

Nesunaikinama vaikų sofa!
Nesunaikinama vaikų sofa!
Nesunaikinama vaikų sofa!
Nesunaikinama vaikų sofa!
Greiti ir lengvi sieniniai kompiuteriai
Greiti ir lengvi sieniniai kompiuteriai
Greiti ir lengvi sieniniai kompiuteriai
Greiti ir lengvi sieniniai kompiuteriai
Skaitmeninis židinio ekranas
Skaitmeninis židinio ekranas
Skaitmeninis židinio ekranas
Skaitmeninis židinio ekranas

Apie: 3D spausdinimas ir RaspberryPI projektų kūrimas jau kelerius metus Daugiau apie khinds10 »

Stalinio telefono pranešimų asistentas, kuriame yra (R. O. B.) robotas

1 veiksmas: mirksi „RaspberriPi“standusis diskas / įdiekite reikiamą programinę įrangą (naudojant „Ubuntu Linux“)

Sukurkite naują standųjį diską, skirtą „DashboardPI“

Įdėkite „microSD“į kompiuterį per USB adapterį ir sukurkite disko vaizdą naudodami komandą dd

Suraskite įdėtą „microSD“kortelę naudodami komandą df -h, atjunkite ją ir sukurkite disko atvaizdą naudodami komandą disk copy dd

$ df -h/dev/sdb1 7.4G 32K 7.4G 1%/media/XXX/1234-5678

$ umount /dev /sdb1

Atsargiai: įsitikinkite, kad komanda yra visiškai tiksli, naudodami šią komandą galite sugadinti kitus diskus

if = RASPBIAN JESSIE LITE vaizdo failo vieta = jūsų „microSD“kortelės vieta

$ sudo dd bs = 4M, jei =/kelias/į/raspbian-jessie-lite.img iš =/dev/sdb (pastaba: šiuo atveju tai yra/dev/sdb,/dev/sdb1 buvo esamas gamyklos skaidinys „microSD“)

„RaspberriPi“nustatymas

Įdėkite naują „microSD“kortelę į avietę ir įjunkite ją naudodami monitorių, prijungtą prie HDMI prievado

Prisijungti

vartotojas: pi pass: avietė

Saugumo sumetimais pakeiskite paskyros slaptažodį

sudo passwd pi

Įgalinti „RaspberriPi“išplėstines parinktis

sudo raspi-config

Pasirinkite:

1 Išplėskite failų sistemą

9 Išplėstinės parinktys

A2 pagrindinio kompiuterio pavadinimą pakeiskite į „RobbieAssistant“

A4 SSH Įgalinti SSH serverį

A7 I2C Įgalinti i2c sąsają

Įgalinti anglų/JAV klaviatūrą

sudo nano/etc/default/klaviatūra

Pakeiskite šią eilutę: XKBLAYOUT = "mes"

Iš naujo paleiskite PI, kad pakeistumėte klaviatūros išdėstymą / pakeistumėte failų sistemos dydį

$ sudo išjungimas -r dabar

Automatinis prisijungimas prie „WiFi“

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Pridėkite šias eilutes, kad jūsų raspberrypi automatiškai prisijungtų prie jūsų namų „WiFi“(jei jūsų belaidis tinklas pavadintas „linksys“, pvz., Šiame pavyzdyje)

tinklas = {ssid = "linksys" psk = "BEVIELIS PASLAPTIS ČIA"} Iš naujo paleiskite PI, kad prisijungtumėte prie „WiFi“tinklo

$ sudo išjungimas -r dabar

Dabar, kai jūsų PI pagaliau yra vietiniame tinkle, galite prie jo prisijungti nuotoliniu būdu per SSH. Bet pirmiausia turite gauti dabartinį IP adresą.

$ ifconfig Ieškokite „inet addr: 192.168. XXX. XXX“šioje komandos išvestyje, skirtoje jūsų PI IP adresui

Eikite į kitą mašiną ir prisijunkite prie savo raspberrypi per ssh

$ ssh [email protected]. XXX. XXX

Pradėkite diegti reikiamus paketus

$ sudo apt-get atnaujinimas

$ sudo apt-get atnaujinimas

$ sudo apt-get install build-essential tk-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libncurses5-dev libncursesw5-dev libreadline6-dev python3-pip „python3“užklausos „python3-setuptools“python-imaging python-smbus build-essential python-dev rpi.gpio python3 python3-pip libi2c-dev vim git python-smbus i2c-tools python-imaging python-smbus build-essential python-dev rpi.gpio python3 python3-pip python -gpiozero python-psutil xz-utils

$ sudo pip diegimo užklausos

Atnaujinkite vietinės laiko juostos nustatymus

$ sudo dpkg-reconfigure tzdata

naudodamiesi sąsaja pasirinkite savo laiko juostą

Nustatykite paprastą katalogo komandą l [neprivaloma]

vi ~/.bashrc

pridėkite šią eilutę:

slapyvardis l = 'ls -lh'

šaltinis ~/.bashrc

Ištaisykite numatytąjį VIM sintaksės paryškinimą [neprivaloma]

sudo vi/etc/vim/vimrc

nekomentuokite šios eilutės:

sintaksė įjungta

sukurkite žurnalų aplanką, kad programa paleistų mkdir/home/pi/RobbieAssistant/logs

chmod 777/home/pi/RobbieAssistant/logs

Konfigūruokite programą, kad ji tinkamai veiktų settings.py konfigūracijos faile Raskite failo settings-shadow.py aplanke / include / ir nukopijuokite jį į settings.py ir prisitaikykite prie dabartinių nustatymų

# prognozė.io API raktas vietinei orų informacijai

weatherAPIURL = 'https://api.forecast.io/forecast/'

weatherAPIKey = 'JŪSŲ API RAKTAS PROGNOZEI. IO'

# neprivaloma, norint paleisti nuotolinį temperatūros/drėgmės kaupiklį

dashboardServer = 'mydevicelogger.com'

# ieškokite „Google“, kad gautumėte savo namų vietos platumą/ilgumą

platuma = 41.4552578

ilguma = -72,1665444

2 žingsnis: reikalingos medžiagos

Reikalingos medžiagos
Reikalingos medžiagos
Reikalingos medžiagos
Reikalingos medžiagos
Reikalingos medžiagos
Reikalingos medžiagos
Reikalingos medžiagos
Reikalingos medžiagos

„RaspberriPi Zero“

DHT11 drėkintuvas

LED žibintai (x4) žalia / geltona / mėlyna / raudona 2,6 colių skaitmeninis ekranas

3 žingsnis: sukurkite ir prijunkite įrenginį

Sukurkite ir prijunkite įrenginį
Sukurkite ir prijunkite įrenginį

Paruoškite „Digole“ekraną „i2C“

„Digole“ekrano užpakalinėje dalyje lituokite trumpiklį, kad priskirtumėte ekraną naudoti „i2c“protokolą

4 veiksmas: naudodami 3D spausdintuvą, atspausdinkite dangtelį, dėžutę ir galines plokštes

Naudodami 3D spausdintuvą, atspausdinkite dangtelį, dėžutę ir galines plokštes
Naudodami 3D spausdintuvą, atspausdinkite dangtelį, dėžutę ir galines plokštes

Naudodami šiuos X STL failus aplanke 3DPrint, R. O. B. Robotas, LED laidai ir ekrano tvirtinimas

buttonContainer-base.stl

buttonContainer-lid.stl

displaymount-final.stl

led-pakinktai-final.stl

MiniNintendoROB.zip

Roboto spausdinimas: „Mini Nintendo R. O. B. - „RabbitEngineering“

www.thingiverse.com/thing:1494964

Aš panaudojau biurokratiją, kad akys būtų raudonos juodos spalvos skydeliu

5 žingsnis: komponentų prijungimas

Komponentiniai laidai
Komponentiniai laidai

„Digole“ekranas

GND -> GND

DUOMENYS -> SDA

CLK -> SCL

VCC -> 3V

DHT11 drėkintuvas

VCC -> 5V

GND -> GND

DUOMENYS -> GPIO 25

MĖLYNAS rezistorius

VCC -> GPIO 17 (su 270 omų rezistoriumi)

GND -> GND

GELTONAS rezistorius

VCC -> GPIO 13 (su 270 omų rezistoriumi)

GND -> GND

ŽALIAS rezistorius

VCC -> GPIO 6 (su 270 omų rezistoriumi)

GND -> GND

RAUDONAS rezistorius

VCC -> GPIO 12 (su 270 omų rezistoriumi)

GND -> GND

RAUDONAS momentinis mygtukas

VCC -> GPIO 16 (su 270 omų rezistoriumi)

GND -> GND

MĖLYNAS momentinis mygtukas

VCC -> GPIO 26 (su 270 omų rezistoriumi)

GND -> GND

6 žingsnis: Prijunkite komponentus prie roboto

Prijunkite komponentus prie roboto
Prijunkite komponentus prie roboto
Prijunkite komponentus prie roboto
Prijunkite komponentus prie roboto
Prijunkite komponentus prie roboto
Prijunkite komponentus prie roboto

Atspausdinę ekrano laikiklį, prijunkite jį prie „digole“ekrano

Prijunkite ekraną prie RPi pakankamai laidų, kad priklijuotumėte RPi prie roboto galo

Išspausdinkite valdiklį ir prijunkite mygtukus tiek, kad prijungtumėte prie roboto galo

Užbaikite prijungti ir surinkti robotą, kai RPi prijungtas prie nugaros ir DHT11 priklijuotas prie apačios

7 veiksmas: patikrinkite I2C konfigūraciją

Įjunkite RaspberryPi ir įsitikinkite, kad I2C magistralė atpažįsta visus prijungtus 7/14 segmento ekranus. [kiekvienam ekranui suteikiamas unikalus adresas, aprašytas aukščiau, kaip lituoti kiekvieno ekrano džemperius įvairiais deriniais]

Jei ekranas su trumpikliu yra lituojamas teisingai, komandai „i2cdetect“turėtų būti pateikta tokia išvestis:

sudo i2cdetect -y 1

0 1 2 3 4 5 6 7 8 9 a b c d e f 00: - - - - - - - - - - - - - -

10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

20: -- -- -- -- -- -- -- 27 -- -- -- -- -- -- -- --

30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

70: -- -- -- -- -- -- -- --

8 veiksmas: DHT11 įdiegimas

$ cd ~

$ git klonas

$ cd „Adafruit_Python_DHT“/

$ sudo python setup.py įdiegti

$ sudo python ez_setup.py

$ cd pavyzdžiai/

$ vi simpletest.pyPakeiskite šią eilutę:

jutiklis = Adafruit_DHT. DHT11

Komentuokite eilutę

smeigtukas = 'P8_11'

Pašalinkite eilutę ir pakeiskite PIN kodą į 16

smeigtukas = 25

Paleiskite testą

python simpletest.py

Komandinėje eilutėje turėtumėte matyti metrinį temperatūros ir drėgmės rodmenį.

9 veiksmas: klonavimo saugykla

$ cd ~ $ git klonas

10 veiksmas: pridėkite „Pushbullet“API (naudodami „Python 3.5“)

Naudodamiesi savo telefono „pushbullet“programa, prisiregistruokite, kad gautumėte API raktą, kad galėtumėte turėti paprastą „python“scenarijų, kad būtų galima užfiksuoti ir stumti duomenų centro pranešimus ir indikatorių vėliavas

Įdiekite „Python 3.5“, kad gautumėte asyncio funkcionalumą

$ sudo apt-get update sudo apt-get install build-essential tk-dev sudo apt-get install libncurses5-dev libncursesw5-dev libreadline6-dev sudo apt-get install libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev sudo apt-get install libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev Jei nepavyksta rasti vieno iš paketų, išbandykite naujesnį versijos numerį (pvz., vietoj libdb5.3-dev) libdb5.4-dev).

$ wget https://www.python.org/ftp/python/3.5.2/Python-3…. tar zxvf Python-3.5.2.tgz cd Python-3.5.2./configure --prefix =/usr/local/opt/python-3.5.2 padaryti sudo make install sudo ln -s/usr/local/opt/python -3.5.2/bin/pydoc3.5 /usr/bin/pydoc3.5 sudo ln -s /usr/local/opt/python-3.5.2/bin/python3.5 /usr/bin/python3.5 sudo ln -s /usr/local/opt/python-3.5.2/bin/python3.5m /usr/bin/python3.5m sudo ln -s /usr/local/opt/python-3.5.2/bin/pyvenv-3.5 /usr/bin/pyvenv-3.5 sudo ln -s /usr/local/opt/python-3.5.2/bin/pip3.5 /usr/bin/pip3.5 cd ~ echo 'alias python35 = "/usr/local /opt/python-3.5.2/bin/python3.5 "'>>.bashrc echo' alias idle35 ="/usr/local/opt/python-3.5.2/bin/python3.5 "'>>.bashrc Įdiekite „python3“priklausomybes

$ sudo apt-get install python3-setuptools sudo apt-get install python3-pip sudo pip3 įdiegti asyncpushbullet sudo pip3 diegimo užklausas Pasirinktinis būdas Atsisiųskite „python“saugyklą tiesiogiai, kad gautumėte „python“priklausomybes nenaudodami „pip“

git clone https://github.com/rharder/asyncpushbullet cd asyncpushbullet && sudo /usr/local/opt/python-3.5.2/bin/python3.5 setup.py install Apsilankykite paskyros „pushbullet“nustatymų puslapyje, kad sukurtumėte API raktas, skirtas naudoti

Konfigūruokite „pushbullet-listener.py“scenarijų, kad jis turėtų tinkamą API ir informacijos suvestinės centrinį pagrindinį kompiuterį

# jūsų API raktas iš „PushBullet.com“API_KEY = "o. XXXYYYZZZ111222333444555666"

# prietaisų skydelio centrinio serverio prieglobos prietaisų skydelisServer = 'MY-SERVER-HERE.com'

11 veiksmas: pridėkite scenarijų, kad pradėtumėte paleisti prietaisų skydelį, ir iš naujo paleiskite prietaisų skydelį Pi

$ crontab -e

@reboot nohup /usr/local/opt/python-3.5.2/bin/python3.5 /home/pi/PushBullet/pushbullet-listener.py>/dev/null 2> & 1

@reboot nohup /usr/local/opt/python-3.5.3/bin/python3.5 /home/pi/RobbieAssistant/PushBullet/pushbullet-listener.py>/dev/null 2> & 1

@reboot nohup python /home/pi/RobbieAssistant/Robbie.py>/dev/null 2> & 1

@reboot nohup python /home/pi/RobbieAssistant/Temp.py>/dev/null 2> & 1

@reboot nohup python /home/pi/RobbieAssistant/Weather.py>/dev/null 2> & 1

12 veiksmas: PASIRENKAMAS: sukurkite savo „Nintendo“vaizdus, kad jie būtų rodomi ekrane

Įkelkite savo 128 x 128 failą į šį URL:

www.digole.com/tools/PicturetoC_Hex_converter.php

Pasirinkite norimą įkelti vaizdo failą, pridėkite, kokio dydžio norite jį rodyti ekrane (plotis/aukštis)

Išskleidžiamajame meniu „Naudojama“pasirinkite „256 spalvos, skirtos spalvotam OLED/LCD (1 baitas/pikselis)“.

Gaukite šešiakampę išvestį.

Pridėkite šešiakampę išvestį prie ekrano/ kūrimo/ antraštės (.h) failo, kitus naudokite kaip sintaksės vadovus.

Įtraukite naują failą į failą digole.c #include myimage.h

Į savo vaizdo failą įtraukite naują komandinės eilutės kabliuką. Pastaba: žemiau pateikta komanda sako, kad pieškite savo vaizdą 10 pikselių, o ne 10 pikselių žemyn. Galite pakeisti jį į skirtingas X, Y koordinates, taip pat galite pakeisti reikšmes 128, 128 į bet kokio dydžio jūsų naują vaizdą.

} else if (strcmp (digoleCommand, "myimage") == 0) {drawBitmap256 (10, 10, 128, 128, & myimageVariableHere, 0); // myimageVariable Čia apibrėžta jūsų (.h) faile}

Dabar atkurkite (nepaisykite klaidų), kad gautumėte naują vaizdą naudodami šią komandą.

$./digole myimage

Iš naujo sukurkite [įtraukta] „Digole“ekrano tvarkyklę, kad galėtumėte atlikti pasirinktinius pakeitimus

$ cd ekranas/kūrimas

$ gcc digole.c

$ mv a.out../../digole

$ chmod +x../../digole

13 žingsnis: Baigta

Baigėte!

Rekomenduojamas: