Агуулгын хүснэгт:

Хаягдалаас бүтээсэн пипбой: 26 алхам (зурагтай)
Хаягдалаас бүтээсэн пипбой: 26 алхам (зурагтай)

Видео: Хаягдалаас бүтээсэн пипбой: 26 алхам (зурагтай)

Видео: Хаягдалаас бүтээсэн пипбой: 26 алхам (зурагтай)
Видео: Фрида испустила дух, теперь фас на волка ► 18 Прохождение Dark Souls 3 2024, Долдугаар сарын
Anonim
Image
Image
Пипбойгийн зүрхийг бүтээх
Пипбойгийн зүрхийг бүтээх

Энэ бол гаражийн санамсаргүй хогноос барьсан миний электрон бүрэлдэхүүн хэсгүүдийн дайралтаас үүдэлтэй миний ажилладаг Пипбой юм. Надад энэ нь хэцүү ажил байсан бөгөөд надад хэдэн сар ажилласан тул үүнийг эхлэгчдэд зориулсан иж бүрэн төсөл гэж ангилахгүй. Шаардлагатай ур чадварууд нь хуванцар, модон эдлэл, электроник, кодчилол юм. Их биеийг янз бүрийн хаягдал хуванцараар хайчилж гагнаж хийдэг. Би Raspberry Pi 0-ийг микро хянагч болгон ашиглаж, дэлгэцийн толгойг GPIO тээглүүрийн нэг хэсэгт суулгасан байв. Үлдсэн тээглүүрийг LED жолоодох, товчлуур/хяналтыг холбоход ашигладаг. Би төслийг дуусгахын тулд Python дээр зарим демо дэлгэцтэй "Pipboy" загварын хэрэглэгчийн интерфэйс бичсэн.

Миний төслийн зорилго бол:

  • Ажиллаж байх ёстой байсан, өөрөөр хэлбэл юм хийсэн дэлгэцтэй байх шаардлагатай байсан
  • Fallout дахь UI -ийн хамгийн чухал хэсэг нь миний хувьд үргэлж ялгаатай байсан өөр өөр дэлгэцүүдийг сонгохын тулд "залгах" -тай байхыг би хүсч байсан.
  • Барилга угсралтын ажлыг гаражид эсвэл оффис дээр байсан эд зүйлсийг ашиглан хийж дуусгах ёстой байсан (энэ нь амжилтанд хүрээгүй, гэхдээ би ойртсон - үүний 90% -иас дээш нь миний аль хэдийн хэвтэж байсан зүйлс эсвэл эд зүйлс байсан)
  • Өмсдөг байх шаардлагатай

Надад байгаагүй нэг зорилго бол үүнийг тоглоомын аль нэг загварыг яг хуулбарлах явдал байсан юм. Би аливаа зүйлийг "хэв маягаар" бүтээхийг илүүд үздэг. намайг арай илүү бүтээлч болгох боломж олго. Эцэст нь хэлэхэд, та эдгээрийг худалдаж авах боломжтой гэдгийг би мэднэ, гэхдээ энэ нь бас чухал биш байсан;)

Хангамж

Хангамж

  • Өргөн цооног хоолой (ус зайлуулах хоолой гэх мэт)
  • Хаягдал хуванцар (биеийг бүтээх болон гоёл чимэглэлийн зориулалттай)
  • Жижиг сав
  • Хөөс шалны дэвсгэр
  • Raspberry Pi
  • 3.5 "дэлгэцтэй
  • KY040 Ротари кодлогч
  • 3х LED
  • 2x түлхэх товчлуур
  • Powerbank
  • Цахилгаан утас
  • Боолт, цавуу, будаг, дүүргэгч гэх мэт

Багаж хэрэгсэл

  • Драймел
  • Таслагч ба зүлгүүрийн хавсралт бүхий олон хэрэгсэл
  • Өрөмдлөг
  • Файлууд
  • Гагнуурын төмөр
  • Халуун цавуу буу
  • Шураг жолооч
  • Хурц хутга
  • Харсан

Алхам 1: Пипбойгийн зүрх сэтгэлийг бий болгох

Пипбойгийн зүрхийг бүтээх
Пипбойгийн зүрхийг бүтээх

Миний хийх ёстой хамгийн эхний зүйл бол ажиллах боломжтой хэлбэрийн хүчин зүйлээр дэлгэц, микро хянагч авах боломжтой байх явдал байв. Би Raspberry PI -ийн GPIO тээглүүр дээр малгай хэлбэрээр байрладаг 3.5 инчийн дэлгэцтэй байсан тул үүнийг ашиглахаар шийдлээ. Linux -ийг ажиллуулах ёстой дэлгэцийг таних хэд хэдэн алхам.

Хоёрдахь зурган дээр харж байгаа шиг би дэлгэцийг дэмжихийн тулд хайрцган дээр наасан жижиг картон/хөөс тавцан нэмсэн. Би энэ хэсгийг маш их зохицуулах болно гэдгээ мэдэж байсан бөгөөд дэмжлэггүйн улмаас тээглүүр эсвэл дэлгэцийг эвдэхийг хүсээгүй. Эцэст нь энэ нь солигдсон боловч бүтээх явцад энэ нь нэмэлт хамгаалалт болсон юм.

Хожим нь бүтээх явцад би энэ тохиргоонд гүйцэтгэлийн асуудалтай тулгарч байсныг тэмдэглэх нь зүйтэй бөгөөд голчлон Pi болон дэлгэцийн хоорондох интерфэйсийг шинэчлэх хурд бий болсон тул би үүнийг дараа нь бүтээх явцад оруулах болно. Үүнийг дахин хийсэн тул би энд өөр өөр тоног төхөөрөмжийг авч үзэх болно.

Үүнд хэрэгтэй хэдэн холбоосыг энд оруулав.

www.raspberrypi.org/forums/viewtopic.php?t…

www.raspberrypi.org/forums/viewtopic.php?t…

www.raspberrypi.org/forums/viewtopic.php?f…

learn.sparkfun.com/tutorials/serial-periph…

Би үүнтэй холбоотой github -д энэ ажлыг гүйцэтгэхийн тулд би юу хийсэн тухай зарим тэмдэглэлийг оруулах болно (хэдийгээр миний уншсан сэдвээр энэ нь тодорхой тохиолдлууд/драйверуудын хувьд хэрхэн ажилладаг талаар маш олон янз байдаг, тиймээс таны тээрэм өөр байж болно.).

Алхам 2: Картононы прототип

Картон прототип
Картон прототип
Картон прототип
Картон прототип
Картон прототип
Картон прототип

Би биедээ ашиглаж болох хуучин суваг/хоолойг олсон боловч дэлгэцийн бодит хэсэг болон хяналтын самбарын загварыг гаргах шаардлагатай болсон. Үүний тулд би дөнгөж картон хийц хийж, маск соронзон хальс ашиглан хоолойд бэхлэв. Эхнийх нь энгийн "хайрцаг" байсан боловч хэтэрхий энгийн санагдсан тул дэлгэцийн хэсгийг илүү сонирхолтой болгох үүднээс өөрчилж, хяналтын самбарын тусдаа хэсгийг нэмж оруулав. Энэ нь их бага хэмжээгээр эцсийн загвар болсон (таны харж байгаагаар хэд хэдэн тохируулга хийгдсэн боловч ойрхон байна).

Алхам 3: Прототипээс загвар руу

Прототипээс загвар хүртэл
Прототипээс загвар хүртэл
Прототипээс загвар хүртэл
Прототипээс загвар хүртэл
Прототипээс загвар хүртэл
Прототипээс загвар хүртэл

Одоо надад сэтгэл хангалуун байсан прототип байсан бөгөөд би картоныг тэгшлээд загвар болгон хувиргаж, хуучин компьютерийн хайрцагны нэг хэсэгт шилжүүлэв. Үүнтэй төстэй хатуу хуванцар ажиллах болно, би зүгээр л гартаа өгөх ёстой хогоо ашиглаж байсан. Тэмдэглэгээ хийсний дараа би үндсэн хэсгүүдийг угсарч эхлэхийн тулд хэсгүүдийг хайчилж авав. Энд хэрэгтэй зөвлөгөө бол хуванцарыг тэмдэглэх, дараа нь огтлох ажлыг хөнгөвчлөхийн тулд би эхлээд тайрах ёстой газруудаа маск туузаар хучсан бөгөөд энэ нь загварыг хуванцар дээр зурах илүү хялбар аргыг надад өгсөн юм. мөн би анхны зүсэлт хийхдээ зүсэх дискийг хальтирч унахыг зогсооход туслах ямар нэг зүйл.

Алхам 4: Дэлгэц ба Пи -ийн хэргийг нэмнэ үү

Дэлгэц ба Pi -д зориулсан кейс нэмэх
Дэлгэц ба Pi -д зориулсан кейс нэмэх
Дэлгэц ба Pi -д зориулсан кейс нэмэх
Дэлгэц ба Pi -д зориулсан кейс нэмэх

Дэлгэцийн талбайн буланг муруй болгохыг хүсч байсан бөгөөд надад Пи -г барьж, харуулах зүйл хэрэгтэй байсан - миний шийдэл бол өөрт байгаа жижиг хуванцар савыг ашиглах явдал байв. Би биеийн дээд хэсгийн нүхийг хайчилж, савыг үүгээр наасан. Дараа нь би бүх талыг нь наасан. Гагнуурыг бэхжүүлэхийн тулд би энд маш их жигд натри агуулсан супер цавуу хэрэглэсэн. Хожим нь би бүгдийг нь цэгцэлж, илүү "цутгасан" мэдрэмжийг өгөхийн тулд бүгдийг дүүргэж, бөглөж/зүлгэжээ.

Алхам 5: Хяналтын самбарыг давтана уу

Хяналтын самбарыг давтана уу
Хяналтын самбарыг давтана уу
Хяналтын самбарыг давтана уу
Хяналтын самбарыг давтана уу
Хяналтын самбарыг давтана уу
Хяналтын самбарыг давтана уу

Дараа нь би яг ижил загварыг шилжүүлж, хайчилж, нааж, хяналтын самбарын орон сууцыг хийв.

Алхам 6: Хоолойг хайчилж ав

Хоолойг хайчилж ав
Хоолойг хайчилж ав

Миний харж байгаагаар миний үндсэн электрон эд ангиудыг байрлуулахаар төлөвлөж буй контейнер нь хар хуванцар бүрхүүл дотор бахархаж байна, энэ нь хоолойд нүх гаргах ёстой гэсэн үг юм. Би будаг хийх соронзон хальсыг дахин хайчлах газраа жагсааж, хоолойны дөрвөлжин хэсгийг хайчилж ав.

Алхам 7: Bezel

Bezel
Bezel
Bezel
Bezel

Санамсаргүй байдлаар надад тулгарсан нэг бэрхшээл бол савны ирмэг хүртэл дэлгэцийн эргэн тойрон дахь хэсгийг дүүргэх зориулалттай бүрхүүл гаргахыг оролдох явдал байв. Харамсалтай нь дэлгэцийг хэрхэн яаж бүтээх нь дизайнд ямар ч ашиггүй (цоорхой эсвэл бусад зүйл гэх мэт) угсрахад тус болохгүй тул хүрээ нь дэлгэцийг байрандаа барих ёстой байв. Миний анхны оролдлого (энд харсан) хуванцар, хөөсний холимог байсан. Эцэст нь би үүнийг хэд хэдэн удаа давтаж дууссан бөгөөд энэ нь барилгын хамгийн хэцүү хэсгүүдийн нэг болсон юм. Жижиг хүлцэл, нарийн ширхэгтэй байдал нь өөрөө болон дэлгэцийн аль алиныг нь улам дордуулсан.

Алхам 8: Батерейны туршилт

Батерейны туршилт
Батерейны туршилт
Батерейны туршилт
Батерейны туршилт
Батерейны туршилт
Батерейны туршилт

Энэ үед би үүнийг сүлжээнээс тэжээгддэг USB -ээс хамааралгүйгээр хэрхэн ажиллуулах талаар бодлоо. Би янз бүрийн батерейг туршиж үзэхэд Raspberry Pi + дэлгэц нь тийм ч их хүч чадал аваагүй бөгөөд миний жижигхэн батерейны нэгийг ч ажиллуулж байгаад маш их баяртай байсан (үзэсгэлэнгийн үнэгүй бэлэг). Багц нь барилгын доторх цоорхойд бүрэн нийцсэн тул энэ нь үнэхээр азтай хэрэг байсан (хожим зураг). Одоо бид биеийн үндсэн эд ангиудыг түр зуур соронзон хальсаар холбож, анхны туршилтаа гар дээрээ асаах боломжтой боллоо!

Алхам 9: Тохирох байдлыг шалгах

Фит тест хийх
Фит тест хийх
Фит тест хийх
Фит тест хийх
Фит тест хийх
Фит тест хийх

Эндээс би бүрэлдэхүүн хэсгүүдийн доод хэсэгт нэвтрэхийн тулд цөмийн хоолойг хаана өөрчилснөө харж болно. Пи контейнерийн нэг талд байрлах зайнд зай сайн суулгаснаар би хэрхэн азтай болохыг харж болно. Эцэст нь бонд цэвэрлэх, дүүргэх, зүлгэх процессыг эхлүүлж, эцсийн өнгийг мэдрэхийн тулд туршилтын бүрээс хийв (энэ үе шатанд би үүнийг дахин олон удаа зүлгэж, бараг бүх праймер явах болно гэдгийг би мэдэж байсан., гэхдээ энэ нь хэрхэн харагдахыг мэдэхийг хүсч байсан).

Алхам 10: Хяналт ба дэлгэрэнгүй мэдээллийг нэмнэ үү

Хяналт ба дэлгэрэнгүй мэдээллийг нэмэх
Хяналт ба дэлгэрэнгүй мэдээллийг нэмэх
Хяналт ба дэлгэрэнгүй мэдээллийг нэмэх
Хяналт ба дэлгэрэнгүй мэдээллийг нэмэх
Хяналт ба дэлгэрэнгүй мэдээллийг нэмэх
Хяналт ба дэлгэрэнгүй мэдээллийг нэмэх

Би хэд хэдэн улаан/шар/ногоон LED хэмжигч, эргэдэг залгуур, дор хаяж 2 товчлууртай болохыг хүсч байсан. Эдгээр нь бүгд хяналтын самбарын хэсэгт суурилагдсан бөгөөд зүгээр л зөв нүхийг өрөмдсөн хэрэг юм. Би мөн их хэмжээний хаягдал хуванцар эд ангиудыг нэмж эхлүүлэв (үндсэндээ иж бүрдэл хийх).

Алхам 11: Bezel №3 -ийг дахин бүтээх

Bezel №3 -ийг дахин бүтээх
Bezel №3 -ийг дахин бүтээх
Bezel №3 -ийг дахин бүтээх
Bezel №3 -ийг дахин бүтээх
Bezel №3 -ийг дахин бүтээх
Bezel №3 -ийг дахин бүтээх

Өмнө дурьдсанчлан, би энэ бүтээцэд зориулж халхавчтай тэмцэж, хэд хэдэн удаа сэргээсэн. Энэ бол миний гацсан гурав дахь давталт юм. Миний энд хийх арга бол хатуу хавтанг ашиглаж, нэгээс нөгөөгөөсөө илүү сэтгэдэг 2 өөр хэлбэрийг хайчилж, дараа нь хооронд нь нааж (хавчуулж) дунд зургийг бүрдүүлэх явдал юм. Эдгээр дүрсүүд нь дөрвөлжин дэлгэцийг дотор нь суулгаж, дэлгэцийг савны дотор байрлуулсан (3 -р зураг шиг). Энэ нь надад маш жижиг 4 боолтыг бэхэлгээ болгон ашиглахад хангалттай материал өгсөн юм. Эргээд харахад би угсрах зохистой сонголттой (эсвэл тухайн үед надад байгаагүй 3D принтер ашигладаг) дэлгэцийг олж харах болно.

Алхам 12: Электроникийн прототип хийх

Электроникийн прототип хийх
Электроникийн прототип хийх
Электроникийн прототип хийх
Электроникийн прототип хийх

Би энгийн схемүүдээ байрлуулахын тулд талхны хавтанг ашигладаг бөгөөд төслийн энэ хэсгийг ихэвчлэн үндсэн корпусын өөр орон зайд хийдэг тул би үүнийг өөр Raspberry PI -тэй хослуулдаг. Энд би 3 -р загварыг ашигласан бөгөөд энэ нь надад шууд холбогдож IDE -ийг ажиллуулахад илүү их хүч өгсөн юм. Энэ нь надад хурдан кодын загвар гаргах ажлыг арай хялбар болгосон. Алсаас холбох/код/дибаг хийх өөр олон арга бий, энэ бол миний хийхийг хүсч буй зүйл юм.

Энд байгаа загвар нь нэлээд урагшаа чиглэсэн, бидэнд байгаа;

  1. Ротари кодлогч - энэ нь дарах чиглэл ба товчлуурыг шийдвэрлэхийн тулд GPIO зүү ба газардуулгыг ашигладаг.
  2. Хос түлхэх товчлуурууд нь зөвхөн нэг GPIO зүү, нийтлэг газар ашигладаг
  3. 3 LED нь тус бүрийг эсэргүүцэх эсэргүүцэлтэй, нийтлэг ойлголтод хүрдэг, гэхдээ тус бүрийг GPIO зүү тус бүрээр нь шийдвэрлэх боломжтой.

Энэ нь надад хэмжигчдээ зориулагдсан 3 LED, пипбой дээрх дэлгэцээр эргэлдэх кодчилогч, үйлдлийг удирдах 3 товчлуур (нэг нь эргэлддэг кодлогч дээр, хоёр нь тусдаа утастай) өгсөн. Энэ бол миний тохирох бүх зүйл байсан бөгөөд дэлгэц нь олон тооны зүү авсны дараа Pi GPIO -ийн стандарт байршилд байгаа зүйлийг бараг л иддэг. Гэсэн хэдий ч энэ нь миний зорилгод нийцсэн юм.

Хоёрдахь зураг нь миний явсан эцсийн дотоод зохион байгуулалтыг бараг харуулав. Би энд хэсэг хугацаанд бүрэлдэхүүн хэсгүүдийг жолоодох арга замыг туршиж, үүнийг бүтцийн биед оруулахаас өмнө бүгдийг нь шалгаж үзсэн. Бүх код github дотор байна.

Ротари кодлогчдын тухай тэмдэглэл. Би GPIO өндөр/бага өөрчлөлтийг хянаж, тэдгээрийг эргүүлэх байрлалд байршуулахын тулд өөрийн Rotary Encoder төлөвт машинаа бичихэд маш их цаг зарцуулсан. Би энд холимог амжилтанд хүрсэн, үүнийг "ихэнх" тохиолдлуудад ажиллуулж чадсан, гэхдээ үргэлж давтан тохиолдлууд, (de) үсрэх гэх мэт зүйлүүд байдаг. Бэлэн номын санг ашиглах нь хамаагүй хялбар бөгөөд Python -д суулгахад тохиромжтой номын сан байдаг. Би үүнийг эцэст нь ашигласан бөгөөд энэ нь асуудлыг шийдвэрлэхэд олон жил зарцуулахаас илүү барилгын хөгжилтэй хэсэгт анхаарлаа төвлөрүүлэх боломжийг олгосон юм. Үүний талаархи бүх мэдээллийг эх кодонд оруулсан болно.

Хэрэв та Raspberry Pi, GPIO, электроникийн чиглэлээр анхлан сурч байгаа бол дээрх зохион байгуулалтыг хийхэд шаардлагатай бүх зүйлийг танд зааж өгөх дараах хичээлүүдийг зөвлөж байна.

projects.raspberrypi.org/en/projects/physi…

thepihut.com/blogs/raspberry-pi-tutorials/…

Алхам 13: Электроникийг биед нэвтрүүлэх

Электроникийг биед нэвтрүүлэх
Электроникийг биед нэвтрүүлэх
Электроникийг биед нэвтрүүлэх
Электроникийг биед нэвтрүүлэх
Электроникийг биед нэвтрүүлэх
Электроникийг биед нэвтрүүлэх

Би талхны самбар ашиглан байрлуулсны дараа эдгээрийг пипбойны биед хэрхэн яаж суулгах талаар бодож эхлэх цаг болжээ. Би ирээдүйд ямар нэгэн зүйлийг засах эсвэл өөрчлөх шаардлагатай бол бүх электрон эд ангиудыг задалж, устгах боломжтой болгохоор шийдсэн. Үүнийг хийхийн тулд би бүх дэд хэсгүүдийг дюпонт холбогч ашиглан залгах боломжтой болгохоор шийдсэн.

Зарим өргөтгөлийн утсан дээр гагнуур хийж, үзүүрийг нь тусгаарлахын тулд утсыг боолт ашиглан хийсэн тул энэ нь биенээс угсрах, задлах боломжийг олгосон (жишээ нь турших, дараа нь будах гэх мэт). Ротари кодлогч нь дупонт холбогчийг хүлээн авах боломжтой тээглүүртэй байсан тул зарим утсыг зөв урттай болгох шаардлагатай байв.

LED -ууд арай илүү ажилласан - үүний тулд би өөрт байгаа жаахан хаягдал хуванцарыг ашиглахаар шийдсэн. Дараа нь би тэдгээрийг халуунаар нь нааж, эсэргүүцэгч ба утсыг гагнав. Энэ нь надад тохирох, арилгах боломжтой зайлуулах төхөөрөмжийг хийж, будах, өнгөлөх ажлыг илүү хялбар болгосон.

Миний гагнах нь аймшигтай гэдгийг анхаарна уу, тиймээс би үүнийг энгийн байлгаж, хэт нарийн/нарийн зүйлээс зайлсхийсэн. Эцсийн зураг дээр би бас маш жижиг хэмжээтэй (5x5) өргөн самбартай байсан бөгөөд эдгээрийн аль нэгийг ашиглан GPIO руу бүх зүйлийг холбох самбарыг ашигласан. Ялангуяа энэ нь миний ашиглаж болох нийтлэг төмөр замыг бий болгоход тустай байсан бөгөөд олон тооны газардуулгын утас Пи рүү буцаж орохоос зайлсхийх болно.

Дараа нь би утсыг Pi руу дамжуулж, GPIO руу холбохын тулд савны янз бүрийн нүхийг хайчилж авав. Энэхүү загвар нь шаардлагатай бол бүх зүйлийг тайлах боломжийг надад олгосон (барилгын ажлыг дуусгаж байхдаа хэд хэдэн удаа хийсэн зүйл).

Алхам 14: Фитийг нарийн тааруулах

Фитийг нарийн тааруулах
Фитийг нарийн тааруулах
Фитийг нарийн тааруулах
Фитийг нарийн тааруулах

Энэ үед би "тохирох" асуудалтай тулгарсан. Нэгдүгээрт, утсандаа дюпон холбогчийг ашигласан нь өндрийн хангалттай зай байхгүй тул дэлгэцийн малгайг байрлуулж зүү дээр бэхлэхэд хэцүү байсан гэсэн үг юм. Би үүнийг худалдаж авах замаар шийдсэн (энэ бол миний энэ төслийн хувьд худалдаж авсан цөөхөн зүйлүүдийн нэг юм) жижиг GPIO зүү өргөтгөгчийг ашиглан дэлгэцийн малгайгаа өндөрт суулгаж, үлдсэн GPIO тээглүүрт дюпонт холбогч ашиглан орох зай үлдээх боломжтой болсон.

Би ч бас савны дотор талын хажуугийн хэсэг хийх зорилгоор хөөсөн шалны дэвсгэрийн жижиг хэсгүүдийг хайчилж авснаар Pi + дэлгэцийг зөв газар байрлуулж, эргэн тойронд нь зогсоож чадсан.

Алхам 15: Ротари кодлогчыг чимэглээрэй

Ротари кодчилогчийг чимэглээрэй
Ротари кодчилогчийг чимэглээрэй

Ротари кодлогч нь ихэвчлэн (минийхтэй адил) орчин үеийн "hi fi" загварын гялалзсан гоёмсог товчлууртай ирдэг. Энэ нь бүтцийн хувьд огт өөр шинж чанартай байсан тул би өөр зүйл бодож олох хэрэгтэй болсон. Миний санамсаргүй хайрцганд би нэлээд эрт хагалсан өрөмдлөгийн хуучин шүдтэй таарсан. Энэ нь сайн харагдаж байсан ч эргэлдэх кодлогчтой тохирохгүй байв. Энд миний шийдэл бол эргүүлэх залгуурт тохирох нэгийг олох хүртлээ янз бүрийн хананы залгуурыг туршиж үзээд дараа нь хэлбэрийг нь хайчилж, өрөмдлөгийн цоолборыг дугуй хэлбэртэй кодлогч дээр байрлуулахын тулд илүү тохиромжтой сэдэв болгон ашиглах явдал байв. хяналт.

Алхам 16: Дотор доторлогоо

Дотор доторлогоо
Дотор доторлогоо
Дотор доторлогоо
Дотор доторлогоо

Илүү хөөсөн шалны хавтан! Энэ удаад би тэдгээрийг илүү тохь тухтай болгохын тулд зөөлөн доторлогоог хийжээ. Хөөсний нүхийг хайчилж авснаар би Пи савны хийдэг "бөөн" хэсгийг шингээж чадсан юм. Ерөнхийдөө энэ нь түүнийг илүү элэгддэг болгосон. Эдгээр зургуудад харуулаагүй байгаа ч би үүнийг үндсэн биенээсээ арай том болгосноос үзүүр дээр нь харагдуулсан бөгөөд үүнийг сүүлд нь зурсан бөгөөд энэ нь бэлэн болсон зүйлд бага зэрэг ялгаа, сонирхол нэмэхэд тусалсан юм.

Алхам 17: Дэлгэрэнгүй мэдээллийг нэмж оруулах

Дэлгэрэнгүй мэдээллийг нэмж байна
Дэлгэрэнгүй мэдээллийг нэмж байна
Дэлгэрэнгүй мэдээллийг нэмж байна
Дэлгэрэнгүй мэдээллийг нэмж байна

Гоёл чимэглэл нэмж, илүү сонирхолтой болгох цаг болжээ. Нэгдүгээрт, би бага зэрэг харааны сонирхол төрүүлэхийн тулд нэг нүүрэн дээр хэдэн ширхэг хуванцар тууз нэмж оруулав. Дараа нь би зарим терминал дээр хуурамч утас нэмж оруулаад би биедээ өрөмдсөн нүх рүү түлхэв. Энэ бүхэн сүүлд өөр өөр өнгөөр будсан байв.

Алхам 18: Биеийн будгийг будаж дуусгах

Биеийн будгийг будаж, дуусгах
Биеийн будгийг будаж, дуусгах
Биеийн будгийг будаж, дуусгах
Биеийн будгийг будаж, дуусгах
Биеийн будгийг будаж, дуусгах
Биеийн будгийг будаж, дуусгах

Би хуучирсан, ямар ч байсан сайн ашиглагддаг байсан шиг цэвэрхэн өнгөлгөөний талаар тийм ч их санаа зовдоггүй байсан (үнэн хэрэгтээ би эргэж ирж, хэзээ нэгэн цагт үүн дээр илүү их цаг агаар хийж чадна). Гэхдээ би үүнийг санамсаргүй хогноос цуглуулаагүй (яг ийм байсан ч гэсэн) тууштай, бүрэн гүйцэд объект шиг харагдуулахыг хүсч байсан. Би зүлгэх, дүүргэх (миллипут бол хуванцарыг сонгох миний дүүргэгч) олон удаа давтсан. Дараа нь хэд хэдэн давхар праймер ба будгаар будаж, бүх холболтыг жигд болгоно. Дараа нь илүү их зүлгэж, илүү дүүргэж, будах болно.

Сэтгэл хангалуун байгаа биеийнхээ төрхийг мэдэрсний дараа би зарим нарийн ширийн зүйлийг нэмж эхлэв. Утасны торны мэдрэмжийг өгөхийн тулд би удирдлага дээрх сараалж дээр үрэлт, будаг ашигласан. Би мөн нийлэг ашиглан будгийн жижиг нарийн ширийн зүйлийг энд тэнд нэмсэн.

Би санамсаргүй наалт цуглуулж, эффектийг дуусгахын тулд цөөн хэдэн зүйлийг нэмж оруулав. Дараа нь би холимог будгаар угааж угааж цэвэрлэхэд хэцүү газарт хүрэхэд хэцүү хэсэг рүү тоос, шороо нэмж оруулав. Энэ нь одоогоор хэтэрхий нарийн зүйл байж магадгүй, би дараа нь эргэж ирээд нэмж оруулах болно.

Алхам 19: Кодлох

Кодлох
Кодлох

Энэ төслийн миний хүсэл тэмүүллийн нэг хэсэг бол түүнийг жинхэнэ пипбой шиг хариу үйлдэл үзүүлэх явдал байсан бөгөөд миний хувьд тоглоомын хамгийн чухал хэсэг бол залгах товчлуурыг өөр өөр дэлгэц хооронд эргүүлэх явдал юм. Үүнд хүрэхийн тулд би цуврал дэлгэцийг харуулах, тэдгээрийн хооронд гүйлгэх боломжийг олгох пипбой хэрэглэгчийн интерфэйс бичихээр шийдлээ. Би дэлгэцийн агуулгыг амархан өөрчилж болох зүйл болгож, дэлгэц нэмэх, хасах боломжтой болгохыг хүсч байсан.

Би үүнийг Raspberry Pi, GPIO гэх мэт маш сайн дэмждэг тул Python хэл дээр бичихээр сонгосон. Python нь миний мэддэг хэлнүүдийн жагсаалтад нэлээд доогуур байдаг тул энэ бол миний хувьд маш том сургалтын муруй байсан бөгөөд кодын ихэнх хэсэг нь үр дүнд нь замбараагүй болсон. Би энд хийхийг хүссэн бүх зүйлээ бүрэн дуусаагүй байгаа тул үүнийг цаг хугацааны явцад шинэчлэх болно, гэхдээ бүх үндсэн ойлголтууд байгаа тул одоо хуваалцахад хангалттай ойрхон байна.

UI кодын миний дизайн нэлээд урагштай, дэлгэцийг тохируулах, GPIO -ийг тохируулах, дэлгэцийг ачаалах, хязгааргүй шинэчлэлтийн циклд орох, хэрэглэгчийн үйл явдлыг хүлээж, шаардлагатай бол дэлгэцийг шинэчлэх үндсэн Python скрипт байдаг. Нэмж дурдахад UI дэлгэцийг урьдчилан гаргахад туслах янз бүрийн дэмжлэгийн скриптүүд байдаг.

Ашигласан гол номын сангууд:

  • pygame: Би үүнийг UI ажиллуулах хөдөлгүүр болгон ашигладаг бөгөөд энэ нь дурын график зурах, зураг, фонт удирдах, бүтэн дэлгэц үзэх гэх мэт боломжийг олгодог.
  • pyky040: Энэ нь эргүүлэх залгуурыг удирдах боломжийг олгодог бөгөөд энэ нь надад маш их цагийг хэмнэсэн (үүнийг гаргасан Рафаэль Янси -д маш их баярлалаа.
  • RPi. GPIO: GPIO сайн жолоодохын тулд би энд хэд хэдэн сонголттой байсан боловч энэ нь надад хүссэн уян хатан байдлын түвшинг өгсөн, ялангуяа сэлбэг GPIO -ийг өөр 3.3v болгон эргүүлэх кодлогч жолоодох гэх мэт.
  • Дуу чимээ: Перлиний дуу чимээг бий болгохын тулд радио дэлгэцийн хувьд илүү байгалийн мэт санамсаргүй долгионы хэлбэрийг бий болгох боломжийг надад олгосон
  • Дараалал: Би эргэлдэж буй кодлогчоос болсон үйл явдлын цаг, LCD дэлгэцийн шинэчлэлтийн хурд маш удаан байсан тул бухимдалтай алдаа гарлаа. Эцэст нь би үүнийг шийдэх арга бол эргэлтэт кодлогчоос ирж буй үйл явдлыг дарааллаар нь дараалуулж, дэлгэцийг шинэчлэх үед нэг нэгээр нь сонгох явдал байв.
  • os, sys, threading, time: бүгдийг стандарт питоны функцэд ашигладаг

Дэлгэцийг зохицуулах дизайны талаархи тэмдэглэл. Дэлгэцийг код доторх нэрсийн жагсаалт гэж тодорхойлдог. Жагсаалтын оруулга бүр нь-p.webp

Эдгээр файлуудын агуулгыг өөр газар (гараар эсвэл бусад скриптээр) үүсгэсэн бөгөөд гаралтыг-p.webp

Санамсаргүй радио дэлгэцийн долгионы хэлбэр гэх мэт цөөн хэдэн зүйлийг кодчилдог хачин үл хамаарах зүйлүүд байдаг бөгөөд үүнийг бодит цаг хугацаанд тооцоолж, хөдөлгөөнт байдлаар дүрсэлдэг.

Хэрэв аналоги туслах юм бол UI дизайныг маш бүдүүлэг, энгийн вэб хөтөч гэж бодоорой - "дэлгэц" бүр нь үнэхээр энгийн вэб хуудас шиг бөгөөд зөвхөн нэг png, нэг txt файл эсвэл энэ хоёрын хослолоос бүрдэнэ. Тэдгээрийн агуулга нь бие даасан бөгөөд хөтөч вэб хуудсыг зурдаг шиг UI -ээр зурдаг.

Энд ашигласан үндсэн номын сангийн холбоосууд энд байна:

www.pygame.org/news

pypi.org/project/pyky040/

pypi.org/project/noise/

Алхам 20: Статистикийн дэлгэц

Статистик дэлгэц
Статистик дэлгэц

Сонгодог пипбой силуэт статистик дэлгэцгүйгээр ямар ч пипбой бүрэн гүйцэд болохгүй. Үүний тулд миний нэг найз статик-p.webp

Алхам 21: Бараа материалын дэлгэц

Бараа материалын дэлгэц
Бараа материалын дэлгэц

Pi төслүүдэд үргэлж хэрэгтэй байдаг зүйл бол DHCP гэх мэт IP хаяг гэх мэт үндсэн мэдээллийг харуулах арга юм. Би бараа материалын дэлгэцийг Pi "бараа материал" - ямар CPU, санах ой, IP хаяг гэх мэтийг харуулахын тулд хэт ачаалахаар шийдсэн. Би энэ мэдээллийг цуглуулахын тулд жижигхэн Линукс скрипт бичсэн бөгөөд үүнийг UI систем аваад дараа нь харуулах зохих нэртэй текст (.txt) файл руу дахин чиглүүлэх болно. Ийм байдлаар хэрэв би өөр газар байгаа бол скриптийг халж, шинэ IP хаягийг агуулсан шинэ.txt файлыг авах боломжтой.

Алхам 22: Газрын зургийн дэлгэц

Газрын зургийн дэлгэц
Газрын зургийн дэлгэц

Энэ дэлгэц нь ажиллахад илүү төвөгтэй дэлгэцүүдийн нэг байв. Raspberry Pi 0 нь GPS модулийг дагалддаггүй, гэхдээ би Газрын зургийг Pi байсан газарт хүчин төгөлдөр болгохыг хүссэн юм. Миний шийдэл бол Pi IP хаягийг татдаг тусдаа скрипт бөгөөд https://ipinfo.io ашиглан ойролцоо байршлыг хайж олох болно. JSON-ийн хариу үйлдэл хийгдсэн бөгөөд би координатыг хөрвүүлдэг бөгөөд ингэснээр openstreetmap.org хавтанг ойролцоогоор байрлуулах боломжтой болно.

Хавтангууд нь олон өнгөөр буудаг, гэхдээ би ногоон масштабтай зургийг Pipboy-ийн гадаад төрх байдалтай нийцүүлэхийг хүсч байсан бөгөөд яг ийм зургийг олж чадаагүй тул өнгийг дахин нэгтгэхийн тулд Python-д ногоон масштабтай шүүлтүүр бичжээ. openstreetmap хавтангийн дараа шинэ зургийг-p.webp

Дээрх процессын явцад ойролцоогоор байршил, координат бүхий текст файлыг үүсгэж, газрын зургийн хавтанг-p.webp

Алхам 23: Өгөгдлийн дэлгэц

Өгөгдлийн дэлгэц
Өгөгдлийн дэлгэц

Энэ бол зүгээр л тест карт (өөр питон скриптээр үүсгэж,-p.webp

Алхам 24: Радио дэлгэц

Радио дэлгэц
Радио дэлгэц

Газрын зургийн дэлгэцтэй зэрэгцэн энэ нь надад үнэхээр их ажил хийсэн нөгөө дэлгэц юм. Энэ бол миний анимацаар тоглосон цорын ганц дэлгэц бөгөөд ихэнхдээ зориулалтын дагуу ажилладаг боловч LCD дэлгэцийн шинэчлэлтийн хурдтай холбоотой асуудал хэвээр байна. Дэлгэцийн бүтэц нь санамсаргүй байдлаар сонгосон зарим радио нэрийг агуулсан текст файл юм (эдгээр нь дурын мөрүүд бөгөөд дэлгэц дээр жагсаалт гаргахаас өөр юу ч хийдэггүй), график талбайн тэнхлэгийг агуулсан-p.webp

Энэ бол мөчлөг бүрийн хувьд pygame давталт нь бодит ажил хийдэг цорын ганц дэлгэц бөгөөд шинэ долгионы хэлбэрийг тооцоолох, дэлгэцийн энэ хэсэгт байгаа хэсгийг арилгах, дахин зурах шаардлагатай болно.

Алхам 25: Эцсийн бодол

Image
Image
Эцсийн бодол
Эцсийн бодол

Энэ бол миний хийсэн олон сорилт, ур чадвар шаардсан хамгийн хэцүү бүтээн байгуулалт байж болох ч энэ нь бодит үр дүнгээрээ бүтээгдсэн хамгийн таатай зүйлүүдийн нэг юм. Би илүү техникийн зарим тэмдэглэл, кодын github репо -г цэгцлэх шатандаа явж байна. Би бүгдийг нь удахгүй гаргах болно, тиймээс удахгүй дахин бичих бөгөөд дэлгэрэнгүй мэдээлэл, мэдээллийг бичлэгт нэмж оруулах цаг гарна.

Хэрэв та иймэрхүү зүйл хийх гэж байгаа бол үр дүнг нь харахыг хүсч байна, хэрэв танд ямар нэгэн асуулт байвал холбоо барина уу, би танд туслахыг хүсч буй алхам бүрт нэмэлт мэдээлэл оруулахыг хичээх болно.

Алхам 26: Github дээр код нээнэ үү

Github дээр код нээнэ үү
Github дээр код нээнэ үү

Эцэст нь би Github дээр кодыг нээхэд хүрэв. Үүнийг энэ линкээс авах боломжтой:

Зөвлөмж болгож буй: