Orodha ya maudhui:

CleanBot na Guillaume Meurillon: Hatua 8
CleanBot na Guillaume Meurillon: Hatua 8

Video: CleanBot na Guillaume Meurillon: Hatua 8

Video: CleanBot na Guillaume Meurillon: Hatua 8
Video: KINGDOM BY DESIGN | UFALME WA KUTENGENEZWA 2024, Novemba
Anonim
CleanBot na Guillaume Meurillon
CleanBot na Guillaume Meurillon
CleanBot na Guillaume Meurillon
CleanBot na Guillaume Meurillon

Huu ni mwongozo wa mradi nilioufanya kwa shule. Lengo lilikuwa kuunda kifaa na Raspberry Pi iliyokuwa imeunganishwa kwenye wavuti, wakati wa kukusanya data kutoka kwa sensorer. Takwimu hizi zililazimika kuhifadhiwa kwenye hifadhidata ya (MySQL). Takwimu zilipaswa kuonyeshwa na wavuti, iliyowekwa nambari kwenye Python na kifurushi cha wavuti ya Flask na muundo wa Jinja2.

Wazo langu lilikuwa kuunda "utupu" wa roboti, kwa kutumia Raspberry Pi, Arduino, utupu wa roboti tayari na rundo la sensorer.

Hatua ya 1: Kukusanya Sehemu

Kukusanya Sehemu
Kukusanya Sehemu
Kukusanya Sehemu
Kukusanya Sehemu
Kukusanya Sehemu
Kukusanya Sehemu
Kukusanya Sehemu
Kukusanya Sehemu

Kabla ya kuunda chochote, nilifanya utafiti mwingi juu ya sehemu gani za kutumia, jinsi ya kuziunganisha, kuandika madarasa ya programu kwenye Python na kadhalika.

Orodha ya sehemu itajumuishwa kama faili, ili uweze kutafuta kwa urahisi sehemu ambazo utahitaji.

Niliamua kutumia Arduino Uno karibu na Raspberry Pi, ili niweze kusoma vyema sensorer zangu bila kusisitiza Raspberry Pi yangu. Nilichagua pia Uno kwa sababu ina kasi nzuri ya saa, na kwa sababu ya pini za analog. Ningeweza kutumia ADC (mfano. MCP3008) kwa Raspberry yangu Pi, lakini ningehitaji waya nyingi zaidi, ingekuwa ghali zaidi na Pi yangu angefanya kazi kwa bidii zaidi.

Kisha nikaanza kukagua sehemu ambazo zilitumika kutoka kwa utupu wa roboti uliovunjika. Umeme wa ndani uliharibika, lakini hiyo haikuwa shida, kwa sababu ningebadilisha kabisa njia hizo. Kwa bahati nzuri motors za dc zilikuwa bado zinafanya kazi, kwa hivyo hakuna hata moja kati yao ililazimika kubadilishwa.

Orodha ya sehemu:

  • Raspberry Pi 3 na angalau darasa la 10GB MicroSD 10 na kesi;
  • Raspberry Pi T-cobbler na mkate (s);
  • Arduino Uno au sawa (ikiwezekana toleo lisilo la Wachina na ADC nzuri, Wachina wengine wana maswala ya AREF) na kesi ya aina fulani;
  • Cable ya ethernet;
  • Utupu wa roboti (uliovunjika);
  • Moduli za ultrasonic za 3x HC-SR04;
  • Moduli ya sensa ya ukumbi wa 1x;
  • Vipinga kadhaa katika maadili tofauti;
  • LDR;
  • 6x 18650 Betri za Li-ion + wamiliki wa seli 3 kwa 12v (ikiwezekana unapaswa kutumia betri mpya au hata utumie bora betri za LiPo, hizi zitadumu kwa muda mrefu zaidi);
  • 18650 (au aina yoyote ya betri utakayotumia) 12v 3-pcb ya kuchaji seli;
  • Baadhi ya bodi za DIY za DIY za kutengeneza vifaa vyako;
  • Karatasi ya plastiki ya polyurethane;
  • Laptop / kompyuta ya desktop.

Orodha ya zana:

  • Kuchimba visima na bits kadhaa za kuchimba;
  • Grinder ya pembe (usitumie ikiwa hauna uzoefu) au kitu kama Dremel;
  • Kipande cha karatasi ya mchanga;
  • Bisibisi kadhaa;
  • Superglue, kufunga gundi,…;
  • Chuma cha kutengenezea (tumia grisi ili waya zako ziwe rahisi);
  • Jozi ya wakata waya na zana ya kuvua.

Orodha ya programu (hiari):

  • Adobe XD: kupiga waya na kuunda mfano;
  • Fritzing: kuunda mpango wa umeme;
  • PyCharm Professional: Python IDE na uwezo wa kutumia kupelekwa & mkalimani wa mbali;
  • Putty: unganisho la haraka na rahisi la ssh na Pi;
  • Etcher.io: zana rahisi ya kuangaza picha ya Raspbian kwenye kadi ya SD;
  • Win32DiskImager: zana rahisi ya kuunda picha kutoka kwa usanidi wa Raspbian uliopo;
  • Notepad ya waandaaji: zana rahisi unayoweza kutumia kuhariri salama faili ya / boot / cmdline.txt.

Hatua ya 2: Uchoraji -nyunyizio na Kubuni Maingiliano

Spray-uchoraji na Ubuni wa Maingiliano
Spray-uchoraji na Ubuni wa Maingiliano
Spray-uchoraji na Ubuni wa Maingiliano
Spray-uchoraji na Ubuni wa Maingiliano
Spray-uchoraji na Ubuni wa Maingiliano
Spray-uchoraji na Ubuni wa Maingiliano
Spray-uchoraji na Ubuni wa Maingiliano
Spray-uchoraji na Ubuni wa Maingiliano

Kabla ya kuanza kuunda muundo, nilinyunyiza nje, kwa sababu sikupenda rangi kabisa. Nilikwenda dukani na kuchukua kiboreshaji cha plastiki, kopo la nyeupe na birika la zumaridi ili kupuliza kesi kuu.

Baada ya kuacha rangi ya dawa-kavu, nikatafuta nambari halisi ya hex kwa rangi niliyotumia, ili niweze kulinganisha kiolesura changu cha wavuti na kifaa changu kikamilifu. Kupata nambari hii ya hex ilikuwa rahisi sana, kwani nilitumia graffiti ya Montana 94, na nambari za hex & RGB zilikuwa kwenye wavuti yao.

Niliunda waya za uaminifu wa hali ya juu kwa kila ukurasa wa wavuti yangu, ili niweze kujua vizuri kabisa jinsi nitaunda kiolesura hiki. Baada ya kuonyesha kiolesura changu kwa waalimu wangu, nilipata ushauri wa kufanya usuli uwe kijivu zaidi na vifungo vyeupe, na matokeo yalikuwa mazuri kwa maoni yangu.

Hatua ya 3: Kuunda Hifadhidata

Kuunda Hifadhidata
Kuunda Hifadhidata

Hatua inayofuata ya kimantiki ilikuwa kuanza kufikiria juu ya data gani nilitaka kuhifadhi kwenye hifadhidata ya MySQL. Hakuna watu wengi wanapenda kujua juu ya utupu wao, kwa hivyo nilikwenda na meza kwa watumiaji na data yao ya kuingia, na pia meza za sensorer (betri, umbali na chombo cha vumbi).

Picha inakuonyesha mpangilio wa meza zangu, zilizochorwa kwenye Workbench ya MySQL, na uhusiano wote kati ya meza.

Kwa watumiaji wangu, nilitaka kufuatilia jina na jina lao ili kubinafsisha kiolesura na barua pepe. Ofcourse kutuma barua pepe, nilihitaji pia anwani yao ya barua pepe. Niliongeza pia meza ili kufuatilia juu ya upendeleo wa barua pepe wa watumiaji wangu (ikiwa wangependa kupokea barua pepe au la). Jambo la mwisho nilitaka kuhifadhi juu ya watumiaji, ni jukumu lao kwa kifaa. Ninagawanya watumiaji kama wasimamizi na watumiaji wa kawaida. Watawala wana haki ya kuongeza, kuondoa na kudhibiti watumiaji katika mfumo, wakati watumiaji wa kawaida hawawezi kupata zana hizi.

Jedwali lifuatalo lina "deviceruns", ambazo ndizo vifaa halisi ambavyo kifaa kimefanya. Deviceruns zinamilikiwa na mtumiaji fulani (mtu aliyeanza kukimbia), na ana wakati wa kuanza na wakati wa mwisho, kuhesabu wakati wa kukimbia.

Jedwali lingine linatumiwa kuunganisha sensordata kwa kila mtu anayeshughulikia. Sensorer zenyewe zimehifadhiwa kwenye meza nyingine, iliyo na kitambulisho, jina na maelezo.

Hatua ya 4: Kuunganisha Sehemu Pamoja

Kuunganisha Sehemu Pamoja
Kuunganisha Sehemu Pamoja
Kuunganisha Sehemu Pamoja
Kuunganisha Sehemu Pamoja

Baada ya kuunda mpango wa hifadhidata, nilianza kutumia ubao wa mkate na wiring kuunganisha sehemu zote pamoja kwa mfano mmoja wa kazi.

Hatua ya 5: Kuweka Raspberry Pi

Kuweka Raspberry Pi
Kuweka Raspberry Pi

Ili kupakua picha mpya ya Raspbian, nenda kwenye wavuti ya Raspbian. Hapa unaweza kuchagua ni distro gani unayotaka kupakua. Kwa operesheni ya haraka, unaweza kupakua distro isiyo na kichwa, kwa matumizi kidogo ya RAM, au pakua desktop na GUI ikiwa unapendelea kielelezo cha kielelezo cha mtumiaji.

Ili kusanikisha OS, pakua tu Etcher, ni zana ya GUI kuandika picha hiyo kwa kadi yako ndogo ya SD haraka na kwa urahisi.

Ili kuwezesha hali isiyo na kichwa, ili uweze kufikia pi, utahitaji kusanikisha Putty kwenye kompyuta yako. Hatua inayofuata ni kwenda kwenye folda ya Boot iliyoundwa na Etcher, na kufungua faili cmdline.txt na mhariri wa maandishi unayopenda, waratibu wa zamani wa Programu. Ongeza maandishi haya hadi mwisho wa faili:

ip = 169.254.10.1

Hakikisha tu kuwa hauunda laini mpya, ongeza hii hadi mwisho wa mstari!

Ifuatayo, rudi kwenye mzizi wa folda ya Boot, na unda faili iliyoitwa ssh. Usiongeze muda wowote, hii itahakikisha kuwa seva ya SSH inazindua kila wakati Pi yako inapozindua. Sasa weka tu kadi ya SD kwenye Pi yako, unganisha chanzo cha nguvu cha kutosha kwa Pi yako na ongeza kebo ya ethernet kati ya Pi yako na kompyuta yako.

Fungua putty, na andika anwani ya IP: 169.254.10.1. Sasa bonyeza NDIYO na uingie, jina la mtumiaji la msingi ni pi na nenosiri ni raspberry.

Ifuatayo, fanya amri ifuatayo ili upate habari mpya:

Sudo apt-pata sasisho -y && sudo apt-pata uppdatering -y && sudo apt-get dist-upgrade -y

Hatua ya mwisho ni kuunda mkalimani wa Python kwenye Raspberry Pi yako, hii itafanya nambari yako. Ili kufanya hivyo, fungua tu putty na andika yafuatayo:

mradi wa sudo mkdir1

cd project1 python3 -m pip install - kuboresha pip setuptools gurudumu virtualenv python3 -m venv - system-site-package-venv

Hatua ya 6: Kuandika matumizi ya Wavuti

Kuandika matumizi ya Wavuti
Kuandika matumizi ya Wavuti

Baada ya kuunganisha kila sehemu na kuanzisha Raspberry Pi, nilianza kuandika programu-tumizi yangu kuu ya mtandao ukitumia Flask na Jinja2. Flask ni mfumo rahisi wa matumizi ya nyuma ya chatu, na Jinja2 ndio lugha ya templating ambayo nilitumia. Pamoja na Jinja, unaweza kuunda faili za kawaida za HTML na matanzi, ikiwa miundo na kadhalika.

Wakati wa kuweka alama kwenye backend, niliandika pia mwisho wa mbele wa programu, pamoja na HTML, CSS na JavaScript kwa vitu kadhaa. Nilitumia njia ya ITCSS na nukuu ya BEM kwa karatasi zangu za mitindo.

Mbali na programu kuu ya wavuti, pia niliunda programu zingine kuu 2. Moja imeandikwa kutuma anwani ya IP ya kifaa kwa watumiaji kwenye orodha. Kila mtumiaji aliyesajiliwa ambaye amekubali kupokea barua pepe, atapokea barua iliyo na kiunga cha kuanzisha kiolesura cha wavuti. Programu hii inaendesha kama huduma ya mfumo.

Faili nyingine kuu ni ya kifaa halisi. Hii kuu inaweza kupigiwa simu kupitia programu yangu ya Flask, kuanza na kusimamisha kifaa, na kukusanya data. Takwimu zilizokusanywa pia zimepakiwa kwenye hifadhidata ya kifaa kupitia hii kuu. Takwimu hizi zinaweza kuonyeshwa kwenye programu ya wavuti.

Programu ya wavuti imeunganishwa kwenye kifaa kinachoendeshwa na Python Threading. Mtumiaji anapobofya kitufe cha kuanza, uzi hutengenezwa kuendesha kifaa nyuma. Wakati huo huo, mtumiaji anaweza kuvinjari programu. Wakati wa kubonyeza kuacha, uzi huu umesimamishwa na kwa hivyo kifaa huacha.

Hatua ya 7: Kuunda Vipande kumaliza Malazi

Kuunda Vipande kumaliza Malazi
Kuunda Vipande kumaliza Malazi
Kuunda Vipande kumaliza Malazi
Kuunda Vipande kumaliza Malazi
Kuunda Vipande kumaliza Malazi
Kuunda Vipande kumaliza Malazi
Kuunda Vipande kumaliza Malazi
Kuunda Vipande kumaliza Malazi

Baada ya kuandika sehemu kubwa zaidi ya programu, nilianza kurekebisha kifaa cha kifaa, ili sensorer zangu na sehemu zingine zilingane. Ili kufanya hivyo, nilinunua karatasi ya polyurethane katika duka la karibu la DIY, na kuanza kukata mabano 2. Nilitumia karatasi hii ya polyurethane kwani haiwezekani kuvunjika wakati wa kukata, na kwa sababu ni rahisi kubadilika, ambayo ni sawa kwani roboti yangu ina umbo la duara.

Bano la kwanza limetengenezwa kujaza shimo juu, ambapo onyesho lilikuwa likikaa. Nilibadilisha onyesho na swichi ya kuzima / kuzima ili betri zizimwe kweli.

Bracket nyingine ni msaada kwa sensorer zangu za HC-SR04 ambazo zimewekwa mbele ya kifaa.

Jambo la mwisho kushoto kufanya, ilikuwa kukata shimo kwenye viboreshaji vya moja ya magurudumu, na kuingiza sumaku, ili niweze kufuatilia mizunguko ya gurudumu.

Baada ya kumaliza mabano haya, pia niliwapaka rangi na rangi niliyokuwa nimeiacha, kuifanya iwe sawa na muundo.

Hatua ya 8: Kanuni

Ili kusanikisha programu, pakua nambari ya faili.zip na uifungue kwenye saraka ya project1.

Ifuatayo, fanya amri hii kwenye terminal kwenye Raspbian au Putty:

mradi wa cp1 / conf / mradi-1 * / nk / systemd / mfumo /

Sudo cp project1 / conf / project1- * / nk / systemd / system / sudo systemctl daemon-reload sudo systemctl kuwezesha mradi-1 *

Ifuatayo, fungua hifadhidata uliyozalisha na uunda mtumiaji mpya na nenosiri la Argon2 lililoharibiwa. Sasa unaweza kutumia programu.

Furahiya!

Ilipendekeza: