Përmbajtje:
- Hapi 1: Mbledhja e Pjesëve
- Hapi 2: Pikturimi me llak & Projektimi i ndërfaqes
- Hapi 3: Krijimi i bazës së të dhënave
- Hapi 4: Lidhja e pjesëve së bashku
- Hapi 5: Vendosja e Raspberry Pi
- Hapi 6: Shkrimi i aplikacionit në internet
- Hapi 7: Krijimi i pjesëve për të përfunduar zorrën
- Hapi 8: Kodi
Video: CleanBot nga Guillaume Meurillon: 8 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:25
Ky është një udhëzues për një projekt që kam bërë për shkollën. Qëllimi ishte të krijonte një pajisje me Raspberry Pi që ishte e lidhur me internetin, ndërsa grumbullonte të dhëna nga sensorët. Këto të dhëna duhej të ruheshin në një bazë të dhënash (MySQL). Të dhënat duheshin vizualizuar me një faqe në internet, të koduar në Python me paketën webapp Flask dhe modelimin Jinja2.
Ideja ime ishte të krijoja një vakum roboti të ‘hackuar’, duke përdorur një Raspberry Pi, një Arduino, një vakum robot tashmë të thyer dhe një mori sensorë.
Hapi 1: Mbledhja e Pjesëve
Para se të krijoja ndonjë gjë, unë bëra shumë kërkime se cilat pjesë të përdor, si t'i lidh ato, duke shkruar klasa softuerësh në Python etj.
Lista e pjesëve do të përfshihet si një skedar, në mënyrë që të mund të kërkoni me lehtësi pjesët që ju nevojiten.
Vendosa të përdor një Arduino Uno pranë Raspberry Pi, në mënyrë që të mund të lexoja me efikasitet sensorët e mi pa stresuar Raspberry Pi tim. Unë gjithashtu zgjodha për Uno sepse ka një shpejtësi të mirë të orës dhe për shkak të kunjave analoge. Unë mund të kisha përdorur një ADC (p.sh. MCP3008) për Raspberry Pi tim, por do të kisha nevojë për shumë tela, do të ishte më e shtrenjtë dhe Pi im do të duhej të punonte shumë më shumë.
Pastaj fillova të inspektoj pjesët që ishin të përdorshme nga vakumi i robotit të prishur. Elektronika e brendshme ishte e dëmtuar, por ky nuk ishte problem, sepse gjithsesi do t'i zëvendësoja plotësisht. Për fat të mirë motorët DC ishin ende duke punuar, kështu që asnjë prej tyre nuk duhej të zëvendësohej.
Lista e pjesëve:
- Raspberry Pi 3 me të paktën 8 GB klasë MicroSD 10 dhe një kuti;
- Mobilje Pi T-kalldrëm dhe dërrasë e ngushtë;
- Arduino Uno ose të ngjashme (mundësisht një version jo kinez me një ADC të mirë, disa kinezë kanë çështje AREF) me një lloj rasti;
- Një kabllo ethernet;
- Një vakum robotik (i prishur);
- 3x module tejzanor HC-SR04;
- 1x modul i sensorit të sallës;
- Disa rezistenca në vlera të ndryshme;
- Një LDR;
- Bateri 6x 18650 Li-jon + mbajtëse me 3 qeliza për 12v (preferohet të përdorni bateri të reja ose edhe më mirë të përdorni bateri LiPo, këto do të zgjasin më gjatë);
- 18650 (ose çfarëdo lloji të baterisë që do të përdorni) 12v pcb karikimi me 3 qeliza;
- Disa tabela PCB DIY për të bashkuar përbërësit tuaj;
- Një fletë plastike poliuretani;
- Një laptop / kompjuter desktop.
Lista e mjeteve:
- Një stërvitje me disa stërvitje;
- Një mulli me kënd (mos e përdorni nëse nuk keni përvojë) ose diçka si një Dremel;
- Një copë letër lëmuese;
- Disa kaçavida;
- Ngjitës super ngjitës, ngjitës,…;
- Një hekur bashkues (përdorni yndyrat për të lidhur më lehtë telat);
- Një palë prerës teli dhe një mjet zhveshjeje.
Lista e programeve kompjuterike (opsionale):
- Adobe XD: kornizë me tela dhe krijimi i një prototipi;
- Fritzing: krijimi i një skeme elektrike;
- PyCharm Professional: Python IDE me aftësitë e përdorimit të vendosjes dhe përkthyesit në distancë;
- Stuko: lidhje e shpejtë dhe e lehtë ssh me Pi;
- Etcher.io: mjet i lehtë për të ndezur një imazh Raspbian në një kartë SD;
- Win32DiskImager: mjet i lehtë për të krijuar një imazh nga një konfigurim ekzistues Raspbian;
- Programuesit Notepad: mjet i thjeshtë që mund të përdorni për të redaktuar në mënyrë të sigurt skedarin /boot/cmdline.txt.
Hapi 2: Pikturimi me llak & Projektimi i ndërfaqes
Para se të filloja të krijoja modelin, pikturova me spërkatje pjesën e jashtme, sepse ngjyrat nuk më pëlqyen aspak. Shkova në dyqan dhe mora një abetare plastike, një kanaçe me ngjyrë të bardhë dhe një bruz për të mbuluar pjesën kryesore.
Pasi e lashë bojën me llak të thahej, shikova kodin e saktë gjashtëkëndësh për bojën që përdorja, në mënyrë që të mund të përputhesha në mënyrë të përsosur me ndërfaqen time në internet me pajisjen time. Gjetja e këtij kodi gjashtëkëndësh ishte mjaft e lehtë, pasi kam përdorur grafitet Montana 94, dhe kodet gjashtëkëndësh dhe RGB ishin në faqen e tyre të internetit.
Kam krijuar korniza me besnikëri të lartë për çdo faqe të faqes sime të internetit, kështu që e dija mirë se si do ta krijoja këtë ndërfaqe. Pasi u tregova ndërfaqen time mësuesve të mi, mora këshillën për ta bërë sfondin pak më gri dhe butonat të bardhë, dhe rezultati ishte i mirë sipas mendimit tim.
Hapi 3: Krijimi i bazës së të dhënave
Hapi tjetër logjik ishte të filloja të mendoja se cilat të dhëna doja të ruaja në bazën e të dhënave MySQL. Nuk ka aq shumë njerëz që duan të dinë për vakumin e tyre, kështu që unë shkova me tabela për përdoruesit dhe të dhënat e tyre të hyrjes, si dhe tabela për sensorë (bateri, distancë dhe enë pluhuri).
Imazhi ju tregon paraqitjen e tabelave të mia, të vizatuara në MySQL Workbench, me të gjitha marrëdhëniet midis tabelave.
Për përdoruesit e mi, doja të mbaja shënime mbi emrin dhe mbiemrin e tyre për të personalizuar ndërfaqen dhe emailet. Sigurisht për të dërguar e-mail, më duhej edhe adresa e tyre e-mail. Unë gjithashtu shtova një tabelë për të mbajtur gjurmët në lidhje me preferencën e e-mail të përdoruesve të mi (nëse ata duan apo jo të marrin email). Gjëja e fundit që doja të ruaja tek përdoruesit, është roli i tyre për pajisjen. Unë i ndaj përdoruesit si administratorë dhe përdorues normalë. Administratorët kanë të drejtë të shtojnë, heqin dhe menaxhojnë përdoruesit në sistem, ndërsa përdoruesit normalë nuk mund të kenë qasje në këto mjete.
Tabela tjetër përmban "deviceruns", të cilat janë drejtimet aktuale që ka bërë pajisja. Deviceruns janë në pronësi të një përdoruesi të caktuar (personi që filloi vrapimin) dhe kanë një kohë fillimi dhe mbarimi, për të llogaritur kohën e ekzekutimit.
Një tabelë tjetër përdoret për të lidhur sensordata me secilin devicerun. Vetë sensorët ruhen në një tabelë tjetër, që përmban id -në, emrin dhe përshkrimin e tyre.
Hapi 4: Lidhja e pjesëve së bashku
Pas krijimit të skemës së bazës së të dhënave, fillova të përdor tabela dhe instalime elektrike për të lidhur të gjitha pjesët së bashku në një prototip pune.
Hapi 5: Vendosja e Raspberry Pi
Për të shkarkuar imazhin më të fundit të Raspbian, shkoni në faqen e internetit të Raspbian. Këtu mund të zgjidhni cilën shpërndarje dëshironi të shkarkoni. Për funksionim më të shpejtë, mund të shkarkoni shpërndarjen pa kokë, për më pak përdorim RAM, ose të shkarkoni desktopin me GUI nëse preferoni një ndërfaqe grafike të përdoruesit.
Për të instaluar sistemin operativ, thjesht shkarkoni Etcher, është një mjet GUI për të shkruar imazhin në kartën tuaj mikro SD shpejt dhe me lehtësi.
Për të aktivizuar modalitetin pa kokë, në mënyrë që të keni qasje në pi, do t'ju duhet të instaloni Putty në kompjuterin tuaj. Hapi tjetër është të shkoni te dosja Boot e krijuar nga Etcher dhe të hapni skedarin cmdline.txt me redaktuesin tuaj të preferuar të tekstit, ish Programmers Notepad. Shtoni këtë tekst në fund të skedarit:
ip = 169.254.10.1
Vetëm sigurohuni që të mos krijoni një linjë të re, shtojeni këtë në fund të rreshtit!
Tjetra, kthehuni në rrënjën e dosjes Boot dhe krijoni një skedar të quajtur ssh. Mos shtoni asnjë shtrirje, kjo do të sigurojë që serveri SSH të fillojë sa herë që Pi juaj fillon. Tani thjesht vendosni kartën SD në Pi tuaj, lidhni një burim të mjaftueshëm energjie me Pi tuaj dhe shtoni një kabllo ethernet midis Pi dhe kompjuterit tuaj.
Hapni stuko dhe shkruani adresën IP: 169.254.10.1. Tani klikoni YES dhe regjistrohuni, emri i parazgjedhur i përdoruesit është pi dhe fjalëkalimi është mjedër.
Tjetra, ekzekutoni komandën e mëposhtme për t'u azhurnuar:
sudo apt-merrni përditësim -y && sudo apt-merrni azhurnim -y && sudo apt-merrni dist-upgrade -y
Hapi i fundit është të krijoni një përkthyes virtual Python në Raspberry Pi tuaj, kjo do të ekzekutojë kodin tuaj. Për ta bërë këtë, thjesht hapni stuko dhe shkruani sa vijon:
projekt sudo mkdir1
cd project1 python3 -m pip install -upgrade pip setuptools wheel virtualenv python3 -m venv --system -site -packages venv
Hapi 6: Shkrimi i aplikacionit në internet
Pas lidhjes së çdo pjese dhe vendosjes së Raspberry Pi, fillova të shkruaj aplikacionin tim kryesor në internet duke përdorur Flask dhe Jinja2. Flask është një kornizë backend e lehtë për t’u përdorur për Python, dhe Jinja2 është gjuha e modelimit që kam përdorur. Me Jinja, ju mund të krijoni skedarë normalë HTML me sythe for, nëse struktura etj.
Ndërsa kodifikoja pjesën e pasme, unë gjithashtu shkrova pjesën e përparme të aplikacionit, duke përfshirë HTML, CSS dhe JavaScript për disa elementë. Kam përdorur metodën ITCSS dhe shënimin BEM për fletët e mia të stilit.
Përveç aplikacionit kryesor në internet, krijova edhe 2 programe të tjera kryesore. Njëra është shkruar për të dërguar adresën IP të pajisjes tek përdoruesit në listë. Çdo përdorues i regjistruar që ka pranuar të marrë email, do të marrë një postë me një lidhje për të filluar ndërfaqen në internet. Ky program funksionon si një shërbim sistematik.
Skedari tjetër kryesor është për pajisjen aktuale. Kjo kryesore mund të thirret përmes aplikacionit tim Flask, për të filluar dhe ndaluar pajisjen dhe për të mbledhur të dhëna. Të dhënat e grumbulluara gjithashtu ngarkohen në bazën e të dhënave të pajisjes përmes kësaj kryesore. Këto të dhëna pastaj mund të vizualizohen në ueb-aplikacion.
Ueb-aplikacioni është i lidhur me pajisjen e drejtuar kryesore me Python Threading. Kur një përdorues klikon butonin e fillimit, krijohet një fije për të drejtuar pajisjen në sfond. Ndërkohë, përdoruesi mund të shfletojë në mënyrë perfekte përmes aplikacionit. Kur klikoni stop, kjo fije ndalet dhe kështu pajisja ndalon.
Hapi 7: Krijimi i pjesëve për të përfunduar zorrën
Pasi shkrova pjesën më të madhe të aplikacionit, fillova të modifikoj shtresën e pajisjes, në mënyrë që sensorët e mi dhe pjesët e tjera të përshtaten në të vërtetë. Për ta bërë këtë, bleva një fletë poliuretani në një dyqan lokal DIY dhe fillova të pres 2 kllapa. Kam përdorur këtë fletë poliuretani pasi nuk ka të ngjarë të ndahet në copa gjatë prerjes, dhe sepse është mjaft fleksibël, gjë që është perfekte pasi roboti im ka një formë rrethore.
Kllapa e parë është bërë për të mbushur një vrimë në pjesën e sipërme, ku përdorej një ekran. Unë e zëvendësova ekranin me një çelës ndezës/fikës në mënyrë që bateritë të mund të fiken në të vërtetë.
Kllapa tjetër është një mbështetje për sensorët e mi tejzanor HC-SR04 që janë të pozicionuar në pjesën e përparme të pajisjes.
Gjëja e fundit që mbetet për të bërë, ishte prerja e një vrime në përforcimet e njërës prej rrotave dhe futja e një magneti, në mënyrë që të mund të monitoroja rrotullimet e rrotës.
Pasi mbarova këto kllapa, gjithashtu i lyeva me bojë me bojën që më kishte mbetur, për ta bërë atë të përshtatet me modelin.
Hapi 8: Kodi
Për të instaluar programin, shkarkoni skedarin code.zip dhe hapeni atë në drejtorinë project1.
Tjetra, kryeni këtë komandë në një terminal në Raspbian ose Putty:
sudo cp project1/conf/project-1*/etc/systemd/system/
sudo cp project1/conf/project1-*/etc/systemd/system/sudo systemctl daemon-ringarkoni sudo systemctl aktivizoni projektin-1* sudo systemctl aktivizoni projektin 1* sudo systemctl rinisni nginx
Tjetra, hapni bazën e të dhënave që keni krijuar dhe krijoni një përdorues të ri me një fjalëkalim të grumbulluar Argon2. Tani mund ta përdorni programin.
Shijoni!
Recommended:
Automatizimi llafazan -- Audio Nga Arduino -- Automatizimi i kontrolluar nga zëri -- HC - 05 Moduli Bluetooth: 9 hapa (me fotografi)
Automatizimi llafazan || Audio Nga Arduino || Automatizimi i kontrolluar nga zëri || HC - 05 Moduli Bluetooth: …………………………. Ju lutemi SUBSCRIBE në kanalin tim në YouTube për më shumë video …. …. Në këtë video ne kemi ndërtuar një Automatizim Bisedues .. Kur do të dërgoni një komandë zanore përmes celularit, atëherë ai do të ndezë pajisjet shtëpiake dhe do të dërgojë reagime për
12x12 LEDX nga arratisja nga Tarkov: 10 hapa (me fotografi)
12x12 LEDX Nga Arratisja nga Tarkov: Një herë pas podcastit të komunitetit EFT rus ku një nga të ftuarit tha se artikujt e shtrenjtë, si LEDX, duhet të zënë një numër më të madh të lojërave elektronike në kontejnerë të sigurt … Kjo nuk ndodhi në 0.12,6 patch, por ndodhi në punëtorinë time
Tekst për të folur Klikoni në një UChip të mundësuar nga ARM, dhe SBC të tjera të mundësuara nga ARM: 3 hapa
Tekst për të folur Klikoni në një UChip të mundësuar nga ARMbasic, dhe SBC të tjera të mundësuara nga ARMbasic: Hyrje: Ditë e mirë. Emri im është Tod. Unë jam një profesionist i hapësirës dhe mbrojtjes që është gjithashtu një zemërgjerë në zemër. Frymëzim: Duke ardhur nga epoka e dial-up BBS, Mikrokontrolluesit 8-bit, kompjuterët personal Kaypro/Commodore/Tandy/TI-994A, kur R
Automatizimi në shtëpi i kontrolluar nga zëri i frymëzuar nga COVID-19: 5 hapa
Automatizimi i Kontrolluar i Zërit i Frymëzuar nga COVID-19: Gjatë 4 viteve të fundit, kam provuar 3 ose 4 variacione të ndryshme të kontrolleve të shtëpisë me bazë Arduino. Për lehtësinë e të gjithëve këtu është historia kronologjike e disa prej zhvillimeve të mia. I udhëzueshëm 1 - në tetor 2015 përdori komunikimin IR dhe RF
Ndërfaqja Njeri-Kompjuter: Funksioni i një shtrënguesi (bërë nga Kirigami) nga Lëvizja e kyçeve duke përdorur EMG .: 7 hapa
Ndërfaqja Njeri-Kompjuter: Funksioni i një shtrënguesi (bërë nga Kirigami) nga Lëvizja e kyçeve duke përdorur EMG .: Pra, kjo ishte përpjekja ime e parë në një ndërfaqe njeri-kompjuter. Kam kapur sinjalet e aktivizimit të muskujve të lëvizjes sime të dorës duke përdorur një sensor EMG, e përpunova atë përmes python dhe arduino dhe aktivizoi një gripper të bazuar në origami